我无法更新购物车中的小计项目。我创建了带有观察checkout_cart_product_add_after的模块,我可以从项目中获得小计价格:
$subtotal = Mage::getSingleton('checkout/cart')->getQuote()->getSubtotal();
但我不能更新这个,例如:
$subtotal = $subtotal + 100;
Mage::getSingleton('checkout/session')->getQuote()->setSubtotal($subtotal);
Mage::getSingleton('checkout/cart')->getQuote()->setSubtotal($subtotal);
Mage::getSingleton('checkout/session')->getQuote()->save();
Mage::getSingleton('checkout/cart')->getQuote()->save();
编辑
如果我在我的观察者中运行,我print_r($subtotal); exit;
会得到正确的更新小计。在购物车页面中,我仍然有原始小计没有变化。
编辑 2 我正在尝试使用sales_quote_collect_totals_after事件运行 modifySubtotal 函数,但我在购物车页面上看不到更新的小计价格。以下来自 Observer.php 的 modifySubtotal 代码:
public function modifySubtotal(Varien_Event_Observer $observer)
{
$session = Mage::getSingleton('checkout/session');
$quote=$observer->getQuote();
$subtotal = $quote->getBaseSubtotal();
$subtotal = $subtotal +123;
$quote->setBaseSubtotal($subtotal);
$quote->save();
$subtotal2 = $quote->getBaseSubtotal();
//print_r($subtotal2);exit;
}
我将不胜感激任何提示和帮助。