由于在结账时与外部系统集成,我需要重置&在某些情况下为当前报价提供新的reservedId
。我尝试了几种方法,没有成功
有谁知道如何实现这一目标?
或者,至少,如果无法做到这一点,如何在不强制客户注销的情况下重置整个Chekout会话?
我试过了unsetAll()
,clear()
& resetCheckout()
处的Mage_Checkout_Model_Session
方法,但它们似乎无法解决问题
答案 0 :(得分:4)
正如Zyava建议的那样,只需setReservedOrderId(null)
做了......
我之前尝试过,但问题是(我认为)我在Javascript控制器流程中这样做了 现在我只是在那里放置一个标志作为新的会话变量&用
打破这个过程$this->_ajaxRedirectResponse();
return;
然后,当回到Checkout时,如果设置了标志,那么......
Mage::getSingleton('checkout/session')->getQuote()->setReservedOrderId(null);
诀窍& Magento为报价
创建了一个新的reservedOrderId答案 1 :(得分:1)
像Raul所说,将Mage::getSingleton('checkout/session')->getQuote()->setReservedOrderId(null);
放在结帐页面的顶部会重置reserved_order_id
。但是,为了保持null,你必须保存报价。
因此,代码将是Mage::getSingleton('checkout/session')->getQuote()->setReservedOrderId(null)-save();
它在Magento CE 1.7上为我工作。