Ich möchte mithilfe des Observers eine benutzerdefinierte Option zum Quoteitem hinzufügen. Der Observer checkoutCartProductAddAfter-Ereignis wird ausgelöst, nachdem das Produkt dem Warenkorb hinzugefügt wurde.
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;
}
Mein Beobachter arbeitet, aber ich kann dem hinzugefügten Produkt keine benutzerdefinierte Option hinzufügen. Bitte geben Sie Hilfe zum Hinzufügen einer benutzerdefinierten Option mit dem Beobachter zum gerade hinzugefügten Produkt.
product
cart
event-observer
magento-1
custom-options
Keyur Patel
quelle
quelle
Antworten:
@Tim hielt am Wochenende einen Vortrag zu diesem Thema: https://docs.google.com/presentation/d/1efPznQSVTrT1HAD1xQvCPC-Tgvr8jYok4X7ZEJhm9jE/edit
Was Sie möchten, ist Methode 2: Folgendes Ereignis in Config.xml hinzufügen
In Observer.php füge folgende Methode hinzu
Hier ist mehr zu diesem Thema:
/programming/9334115/magento-change-custom-option-value-before-adding-it-to-cart/9344336#9344336
und mehr:
/programming/9412074/magento-quote-order-product-item-attribute-based-on-user-input/9496266#9496266
quelle
Das geeignete Ereignis zum Hinzufügen von benutzerdefinierten Optionen im laufenden Betrieb ist
catalog_product_type_prepare_full_options
, das ausgelöst wird, bevor das Produkt mit seinen benutzerdefinierten Optionen in ein Angebotselement konvertiert wird.Quelle: Das Magento buyRequest-Objekt - Eine Referenz
Ein Beobachter könnte also so aussehen:
Sie können für diese dynamisch hinzugefügte benutzerdefinierte Option keinen Preis festlegen, aber Sie können den Preis des Angebotselements mit einem zweiten Beobachter
catalog_product_get_final_price
wie folgt ändern :quelle