Chcę dodać niestandardową opcję, aby cytować za pomocą obserwatora, który obserwator kasujeCartProductAddAfter zdarzenia i uruchamia się po dodaniu produktu do koszyka.
public function checkoutCartProductAddAfter(Varien_Event_Observer $observer)
{
$item = $observer->getQuoteItem();
$item->addOption(new Varien_Object(
array(
'product' => $item->getProduct(),
'label' => 'Free Gifts',
'value' => 'Spend $50 and get gift product worth $9.99'
)
));
return;
}
Mój obserwator działa, ale nie mogę dodać niestandardowej opcji do dodanego produktu. proszę o pomoc w dodaniu niestandardowej opcji za pomocą obserwatora do właśnie dodanego produktu.
product
cart
event-observer
magento-1
custom-options
Keyur Patel
źródło
źródło
Odpowiedzi:
@Tim przemawiał na ten temat w weekend: https://docs.google.com/presentation/d/1efPznQSVTrT1HAD1xQvCPC-Tgvr8jYok4X7ZEJhm9jE/edit
Potrzebna jest metoda 2: Dodaj następujące zdarzenie w pliku Config.xml
W Observer.php dodaj następującą metodę
Oto więcej na ten temat:
/programming/9334115/magento-change-custom-option-value-before-adding-it-to-cart/9344336#9344336
i więcej:
/programming/9412074/magento-quote-order-product-item-attribute-based-on-user-input/9496266#9496266
źródło
Właściwym zdarzeniem do dodawania niestandardowych opcji w locie jest
catalog_product_type_prepare_full_options
uruchamiane tuż przed przekształceniem produktu z jego niestandardowymi opcjami w element oferty.Źródło: The Magento buyRequest Object - A Reference
Tak więc obserwator może wyglądać tak:
Nie można ustawić ceny dla tej dynamicznie dodawanej opcji niestandardowej, ale można zmienić cenę przedmiotu oferty za pomocą drugiego obserwatora w
catalog_product_get_final_price
następujący sposób:źródło