回答:
1つの方法は、オブザーバーとコンバーターを使用することです。
オブザーバーは製品から見積までの属性を取得し(「テスト」という属性を使用)、コンバーターは見積から注文までの属性を取得します。
あなたの設定で:
<global>
<fieldsets>
<sales_convert_quote_item>
<test>
<to_order_item>*</to_order_item>
</test>
</sales_convert_quote_item>
</fieldsets>
<sales>
<quote>
<item>
<product_attributes>
<test />
</product_attributes>
</item>
</quote>
</sales>
<events>
<sales_quote_item_set_product>
<observers>
<YOUR_MODULE>
<class>YOUR_MODULE/observer</class>
<method>setTestAttribute</method>
</YOUR_MODULE>
</observers>
</sales_quote_item_set_product>
</events>
</global>
あなたのオブザーバーで:
public function setTestAttribute(Varien_Event_Observer $observer) {
$item = $observer->getQuoteItem();
$product = $observer->getProduct();
$item->setTest($product->getTest());
return $this;
}
これは、オブザーバーとconfig.xmlの知識を組み合わせることにより行われます。Config.xmlは、見積品目のカスタム属性定義の提供を管理し、オブザーバーは、見積に追加されたときに製品属性を見積に保存することを処理します。
そこから、config.xmlを使用してfieldset定義を呼び出します。これにより、からquote_item
への変換が処理されorder_item
ます。
完全な開示:以下の内容はAtwixからのものです。答えの下のリンク。
最初に、
sales->quote->item->product_attributes
ノードにカスタム属性を追加する必要があり ます。<sales> <quote> <item> <product_attributes> <custom_attribute /> </product_attributes> </item> </quote> </sales>
これにより、製品から見積品目に属性をコピーするときに属性にアクセスできるようになります。これが次のステップです。このタスクでは、オブザーバーが使用され、イベントが呼び出され
sales_quote_item_set_product
ます:<sales_quote_item_set_product> <observers> <yourmodule_customattribute> <class>yourmodule_customattribute/observer</class> <method>salesQuoteItemSetCustomAttribute</method> </yourmodule_customattribute> </observers> </sales_quote_item_set_product>
観察者:
public function salesQuoteItemSetCustomAttribute($observer) { $quoteItem = $observer->getQuoteItem(); $product = $observer->getProduct(); $quoteItem->setCustomAttribute($product->getCustomAttribute()); }
最後に気にする必要があるのは、属性をから
quote_item
に変換することですorder_item
。そして、これはXMLで実行できます。<fieldsets> <sales_convert_quote_item> <custom_attribute> <to_order_item>*</to_order_item> </custom_attribute> </sales_convert_quote_item> <sales_convert_order_item> <custom_attribute> <to_quote_item>*</to_quote_item> </custom_attribute> </sales_convert_order_item> </fieldsets>
出典:Atwix(誰もが勝ちです):http ://www.atwix.com/magento/custom-product-attribute-quote-order-item/
100
で50
はなく値を設定するにはどうすればよいですか?属性値が更新された場合、管理者から設定された値ではなく、更新された値を保存するにはどうすればよいですか