Magento的。如何重置Checkout Quote保留ID?

时间:2012-02-04 09:05:45

标签: session magento reset quote

由于在结账时与外部系统集成,我需要重置&在某些情况下为当前报价提供新的reservedId。我尝试了几种方法,没有成功

有谁知道如何实现这一目标?

或者,至少,如果无法做到这一点,如何在不强制客户注销的情况下重置整个Chekout会话? 我试过了unsetAll()clear()& resetCheckout()处的Mage_Checkout_Model_Session方法,但它们似乎无法解决问题

2 个答案:

答案 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上为我工作。