Magento'da, bir ürün özelliğine bir öğeyi teklif etme ve ardından sipariş vermek için otomatik olarak ısrar etmenin doğru yolu nedir?
Küçük bir yapılandırma XML'si kadar basit mi yoksa etkinlikleri kaydetmeden önce inceleyen manuel bir işlem mi?
Magento'da, bir ürün özelliğine bir öğeyi teklif etme ve ardından sipariş vermek için otomatik olarak ısrar etmenin doğru yolu nedir?
Küçük bir yapılandırma XML'si kadar basit mi yoksa etkinlikleri kaydetmeden önce inceleyen manuel bir işlem mi?
Yanıtlar:
Bunun bir yolu gözlemci ve dönüştürücü kullanmak olacaktır.
gözlemci, niteliği üründen alıntıya ('test' adı verilen bir öznitelik kullanarak) almaktır ve dönüştürücü bu sırayı alıntıdan sırasına kadar alır.
konfigürasyonunuzda:
<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>
gözlemcinizde:
public function setTestAttribute(Varien_Event_Observer $observer) {
$item = $observer->getQuoteItem();
$product = $observer->getProduct();
$item->setTest($product->getTest());
return $this;
}
Bu, gözlemciler ve config.xml bilgilerinizi birleştirerek yapılır. Config.xml, teklif öğesindeki özel bir özellik tanımının sağlanmasını yönetir ve bir gözlemci, bir teklife eklendiğinde ürün niteliğini teklife kaydetmeyi işleyecektir.
Oradan, dönüşüm idare edecek fieldset tanımını çağırmak için config.xml kullanmak quote_itemiçin order_item.
Tam açıklama: Aşağıdaki içerik Atwix'e aittir. Cevabın altındaki bağlantı.
İlk başta,
sales->quote->item->product_attributesdüğüme özel öznitelik eklemelisiniz :<sales> <quote> <item> <product_attributes> <custom_attribute /> </product_attributes> </item> </quote> </sales>Bu, bir sonraki adımımız olan üründen alıntı ürününe kopyalayacağımız için niteliği erişilebilir kılar. Bu görev için gözlemci kullanılır ve etkinlik çağrılır
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>Gözlemci:
public function salesQuoteItemSetCustomAttribute($observer) { $quoteItem = $observer->getQuoteItem(); $product = $observer->getProduct(); $quoteItem->setCustomAttribute($product->getCustomAttribute()); }O - hakkında biz bakım gereken son şey dönüştürme gelen niteliğini
quote_itemiçinorder_item. Ve bu XML ile yapılabilir:<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>
Kaynak: Atwix (kim kazanır): http://www.atwix.com/magento/custom-product-attribute-quote-order-item/
100yerine değeri nasıl ayarlarım 50? Öznitelik değeri güncellenirse, bu güncellenen değeri nasıl