以编程方式更新购物车我正在接入sales_quote_save_after
事件清除程序。首先作为测试,我试图让购物车中的物品变成0,然后我会在其他方面进行修改。Magento:通过事件
我遇到了麻烦。我可以改变单位价格没有问题,但是当我重新计算购物车总数时,价格将恢复到原始价格。
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();
}
任何人都可以指向我维持新的价格,同时重新计算总数?
你在quote_save_before或quote_save_after触发呢?你的问题说_after,但你的功能被命名为_before。 另外你为什么要确保这只运行一次?从内存来看,我相信save事件会被多次调用,所以在你的句柄运行后,它可能会被后来的Magento代码重置。 – ScottSB