Я хочу добавить пользовательскую опцию для цитирования с помощью обозревателя, который наблюдает событие checkoutCartProductAddAfter и срабатывает после добавления товара в корзину.
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;
}
Мой обозреватель работает, но я не могу добавить пользовательский параметр для добавленного продукта. Пожалуйста, предоставьте помощь, чтобы добавить пользовательскую опцию с помощью обозревателя только что добавленного продукта.
product
cart
event-observer
magento-1
custom-options
Кейур Патель
источник
источник
Ответы:
@Tim рассказал об этой проблеме в выходные дни: https://docs.google.com/presentation/d/1efPznQSVTrT1HAD1xQvCPC-Tgvr8jYok4X7ZEJhm9jE/edit
То, что вы хотите, это метод 2: Добавить следующее событие в Config.xml
В Observer.php добавить следующий метод
Вот еще об этой теме:
/programming/9334115/magento-change-custom-option-value-before-adding-it-to-cart/9344336#9344336
и более:
/programming/9412074/magento-quote-order-product-item-attribute-based-on-user-input/9496266#9496266
источник
Событие подходящее для добавления пользовательских параметров на лету - это событие
catalog_product_type_prepare_full_options
, которое инициируется непосредственно перед преобразованием продукта с его пользовательскими параметрами в элемент предложения.Источник: Объект Magento buyRequest - Ссылка
Таким образом, наблюдатель может выглядеть так:
Вы не можете установить цену для этой динамически добавленной пользовательской опции, но вы можете изменить цену элемента цитаты с помощью второго наблюдателя,
catalog_product_get_final_price
например:источник