Quero adicionar uma opção personalizada ao quoteitem usando o observador, que observador checkoutCartProductAddAfter evento e dispara após o produto ser adicionado ao carrinho.
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;
}
Meu observador está trabalhando, mas não consigo adicionar uma opção personalizada ao produto adicionado. forneça ajuda para adicionar opção personalizada usando o observador para adicionar apenas um produto.
product
cart
event-observer
magento-1
custom-options
Keyur Patel
fonte
fonte
Respostas:
A @Tim falou sobre esse problema no fim de semana: https://docs.google.com/presentation/d/1efPznQSVTrT1HAD1xQvCPC-Tgvr8jYok4X7ZEJhm9jE/edit
O que você deseja é o Método 2: Adicionar o seguinte evento no Config.xml
No Observer.php, adicione o seguinte método
Aqui está mais sobre este tópico:
/programming/9334115/magento-change-custom-option-value-before-adding-it-to-cart/9344336#9344336
e mais:
/programming/9412074/magento-quote-order-product-item-attribute-based-on-user-input/9496266#9496266
fonte
O evento apropriado para adicionar opções personalizadas em tempo real é
catalog_product_type_prepare_full_options
, que é acionado imediatamente antes do produto com suas opções personalizadas ser convertido em um item de cotação.Fonte: O objeto Magento buyRequest - Uma referência
Portanto, um observador pode ficar assim:
Você não pode definir um preço para esta opção personalizada adicionada dinamicamente, mas pode alterar o preço do item de cotação usando um segundo observador para
catalog_product_get_final_price
:fonte