相关产品在同一分组产品中的多个位置
-
12-12-2019 - |
题
我们正在创建基于发动机和部分原理图的图像的分组产品。那些原理图具有用于每个特定原理图的数字标记,我们能够将相关产品的位置与原理图中的数字标记匹配。
我们的问题是某些原理图具有多个位置的相同部分。一个例子,相同的垫圈可以显示在位置1,15和40中。相关产品网格仅允许我们指示该垫圈的一个位置。
关于我们如何配置分组产品的想法,以允许相关产品的多个位置?我一直在挖几个小时,现在试图找到一种方法来向关联的产品添加额外的属性,但我没有找到任何可能性。
解决方案
在在线搜索后,我能够以另一个洋养本论坛。我将在这里重写它,希望它有助于困难的人。
对于此方法,我决定在关联的产品网格中为我的分组产品添加自定义列。要添加新列,我将复制文件:
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Super/Group.php
进入我的本地代码:app/code/localMage/Adminhtml/Block/Catalog/Product/Edit/Tab/Super/Group.php
$this->addColumn('diagrampos', array(
'header' => Mage::helper('catalog')->__('Other Position'),
'name' => 'diagrampos',
'index' => 'diagrampos',
'width' => '60px',
'editable' => true
));
.
在该文件中进一步下来,我们需要在第214行更改getSelectedGroupedProducts()
,以便我们在管理员中的更新正常保存。这是现在应该看的是如何:
public function getSelectedGroupedProducts()
{
$associatedProducts = Mage::registry('current_product')->getTypeInstance(true)
->getAssociatedProducts(Mage::registry('current_product'));
$products = array();
foreach ($associatedProducts as $product) {
$products[$product->getId()] = array(
'qty' => $product->getQty(),
'position' => $product->getPosition(),
'diagrampos' => $product->getDiagrampos()
);
}
return $products;
}
.
然后我们需要更新生成的数据库表for for catalog_product_link_attribute
。我将以下值添加为表格的新行。您可能需要根据表中的当前增量调整第一个值:
product_link_attribute_id => 6
link_type_id => 3
product_link_attribute_code => diagrampos
data_type => varchar
.
接下来,我们需要更改生成鸟码码,以便串行程序在我们的新字段上拾取。我们需要通过在app/design/adminhtml/default/default/layout/catalog.xml
下添加新行来修改节点生成icotagcode下的布局,以便它如下所示:
<action method="addColumnInputName">
<input_name>qty</input_name>
<input_name>position</input_name>
<input_name>diagrampos</input_name>
</action>
.
我现在能够在该输入字段中添加逗号分隔的整数列表。对分组的产品模板进行了适度的自定义,我现在可以在多个位置显示相同的相关产品SKU。