Apa cara yang benar di Magento agar atribut produk tetap bertahan untuk mengutip item dan akhirnya memesan item?
Apakah sesederhana config XML kecil atau itu adalah proses manual melihat sebelum menyimpan acara dan sebagainya?
Apa cara yang benar di Magento agar atribut produk tetap bertahan untuk mengutip item dan akhirnya memesan item?
Apakah sesederhana config XML kecil atau itu adalah proses manual melihat sebelum menyimpan acara dan sebagainya?
Jawaban:
salah satu caranya adalah dengan menggunakan pengamat dan konverter.
pengamat akan mendapatkan atribut dari produk ke kutipan (menggunakan atribut yang disebut 'test'), dan konverter mendapatkan atribut dari kutipan ke pesanan.
dalam konfigurasi Anda:
<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>
di pengamat Anda:
public function setTestAttribute(Varien_Event_Observer $observer) {
$item = $observer->getQuoteItem();
$product = $observer->getProduct();
$item->setTest($product->getTest());
return $this;
}
Ini dilakukan dengan menggabungkan pengetahuan Anda tentang pengamat dan config.xml. Config.xml akan mengelola penyediaan definisi atribut khusus pada item penawaran, dan seorang pengamat akan menangani penyimpanan atribut produk ke penawaran ketika ditambahkan ke penawaran.
Dari sana, Anda menggunakan config.xml untuk memanggil definisi fieldset, yang akan menangani konversi dari quote_item
menjadi order_item
.
Pengungkapan penuh: Konten di bawah ini dari Atwix. Tautan di bawah jawabannya.
Pada awalnya, Anda harus menambahkan atribut khusus ke
sales->quote->item->product_attributes
simpul:<sales> <quote> <item> <product_attributes> <custom_attribute /> </product_attributes> </item> </quote> </sales>
Ini membuat atribut dapat diakses ketika kita akan menyalinnya dari produk untuk mengutip item - yang merupakan langkah kita selanjutnya. Untuk tugas ini pengamat digunakan, dan acara tersebut akan dipanggil
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>
Pengamat:
public function salesQuoteItemSetCustomAttribute($observer) { $quoteItem = $observer->getQuoteItem(); $product = $observer->getProduct(); $quoteItem->setCustomAttribute($product->getCustomAttribute()); }
Hal terakhir yang perlu kita perhatikan - adalah mengubah atribut dari
quote_item
menjadiorder_item
. Dan ini bisa dilakukan dengan 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>
Sumber: Atwix (yang penuh dengan kemenangan): http://www.atwix.com/magento/custom-product-attribute-quote-order-item/
100
alih-alih 50
dalam item kutipan? Jika nilai atribut diperbarui, bagaimana cara menyimpan nilai yang diperbarui itu dan bukan yang ditetapkan dari admin