同じグループ製品内の複数の位置に関連する製品
-
12-12-2019 - |
質問
エンジンの画像と部品回路図の画像に基づいたグループ化された製品を作成しています。これらの回路図には、回路図の各特定の部分に番号マーカーがあり、回路図の数マーカーへの関連製品の位置を一致させることができます。
私たちの問題は、いくつかの回路図が複数の位置に同じ部分を持つことです。一例では、同じ洗濯機が1,15、および40に開くことができる。関連する製品グリッドは、その洗濯機の1つの位置を示すだけである。
関連する製品の複数の位置を許可するためにグループ化された製品をどのように構成することができるかについてのアイデアはいかなるアイデアですか?私は今数時間掘ってきました。
解決
オンラインで検索した後、別のMagentoフォーラム。私はそれがつまずく他の誰かを助けることを望んでいます。
このアプローチでは、グループ化された製品のために関連する製品グリッドにカスタム列を追加することにしました。新しい列を追加するにはファイルをコピーしました。
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
関数_prepareColumns() `私はこれを追加しました:
$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;
}
.
それから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
を変更する必要があります。
<adminhtml_catalog_product_supergroup>
の下にある新しい行を追加することによって、ノードaddColumnInputName
の下のレイアウトを変更する必要があります。
<action method="addColumnInputName">
<input_name>qty</input_name>
<input_name>position</input_name>
<input_name>diagrampos</input_name>
</action>
.
その入力フィールドに整数のコンマ区切りリストを追加することができました。グループ化された製品テンプレートへの適度なカスタマイズを使用すると、私は現在、複数のポジションで同じ関連製品SKUを表示できるようになりました。