gpt4 book ai didi

php - Magento:通过事件以编程方式更新购物车

转载 作者:行者123 更新时间:2023-12-05 08:59:30 26 4
gpt4 key购买 nike

我正在连接到 sales_quote_save_after 事件调度程序。首先,作为测试,我尝试获取购物车中的商品并将它们的价格更改为 0。在我这样做之后,我将构建一些其他内容。

我遇到了麻烦。我可以毫无问题地更改单价,但当我重新计算购物车总价时,价格又恢复为原始价格。

public function sales_quote_save_before($observer) {

if (Mage::registry('basket_observer_executed')) {
return $this;
}

$quote = $observer->getEvent()->getQuote();

foreach ($quote->getAllItems() as $item) {
if($item->getId()) {
$item->setCustomPrice(0);
}
}

Mage::register('basket_observer_executed', true);

$quote->save();
$quote->setTotalsCollectedFlag(false)->collectTotals();
}

谁能指出我在重新计算总数的同时保持新价格?

最佳答案

我会尝试使用不同的事件。我总是使用 checkout_cart_save_after 来执行类似的操作。使用我提到的事件,使用以下代码:

$cart = $observer->getData('cart');

$quote = $cart->getData('quote');

$items = $quote->getAllVisibleItems();

foreach($items as $item)
{
$item->setCustomPrice(0);
$item->setOriginalCustomPrice(0);
$item->getProduct()->setIsSuperMode(true);
$item->save();
}
$quote->save();
$quote->setTotalsCollectedFlag(false)->collectTotals();

关于php - Magento:通过事件以编程方式更新购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14362702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com