如何在 Magento 中使用 getQuoteItem() 将可配置产品添加到购物车中
我想为所有类型的产品设置自定义价格。我正在听观察者 checkout_cart_product_add_after 的声音。在它的函数中,我使用以下代码来设置产品的自定义价格。
$newPrice = $_POST["txtprice"];
$event = $observer->getEvent();
$minPrice = $observer->getProduct()->getMinPrice();
$quoteItem = $event->getQuoteItem();
if($newPrice > $minPrice){
$quoteItem->setCustomPrice($newPrice);
$quoteItem->setOriginalCustomPrice($newPrice);
$quoteItem->getProduct()->setIsSuperMode(true);
}
该代码适用于简单的产品。对于可配置产品,它不起作用。购物车的可配置项目不会设置在 $quoteItem 对象中。因此我无法使用 $quoteItem 设置自定义价格。
I want to set custom price for all types of products. I am listening to the observer checkout_cart_product_add_after. In it's function I am using the following code to set custom price for products.
$newPrice = $_POST["txtprice"];
$event = $observer->getEvent();
$minPrice = $observer->getProduct()->getMinPrice();
$quoteItem = $event->getQuoteItem();
if($newPrice > $minPrice){
$quoteItem->setCustomPrice($newPrice);
$quoteItem->setOriginalCustomPrice($newPrice);
$quoteItem->getProduct()->setIsSuperMode(true);
}
This code works fine for simple products. For configurable products it is not working. A configurable item of the cart doesn't get set int the $quoteItem object. And so I can't get the custom price to set using $quoteItem.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
请参阅我在此处编辑的答案:
对于可配置产品,您需要检查
$item->getParentItem()
,如该答案中的示例代码所示:事件:checkout_cart_product_add_after
事件:checkout_cart_update_items_after
See the answer I've edited here:
For configurable products, you need to check for
$item->getParentItem()
as in the sample code from that answer:Event: checkout_cart_product_add_after
Event: checkout_cart_update_items_after