观察者改变报价 Magento

Observer change Quote Magento

我需要更改引用中的 grandtotal 和 basetotal 值,我在 checkout_controller_onepage_save_shipping_method 上添加了观察者,它有效,我已经编写了更改值的逻辑,但主要问题是,我无法保存配额和它returns 我没有编辑值。我想 headers 发送的主要问题是什么,但我可以用哪种方式做到这一点?

public function checkTotals(Varien_Event_Observer $observer)
{   
    $quote      = Mage::getSingleton('checkout/type_onepage')->getQuote();

    $grandTotal = 1

    $quote->setData('grand_total', $grandTotal);
    $quote->setData('base_grand_total', $grandTotal);
    $quote->save();
}

问题没有解决。我在使用 PayPal API 时遇到问题,当其中一个扩展程序由于 PayPal 而将价格增加 2% 时,它中断了对 paypal 的 API 调用。问题出在保存方法中,重新计算配额中的总计再次从购物车中获取值,您不能只更改价格或其他任何内容。如果您想在价格上增加几个百分比,您需要在配额或价格规则中创建一些项目,或者只是在购物车中隐藏项目,这将允许更改。