2012-02-04 52 views
1

由於在結帳期間與外部系統集成,我需要重置&在某些情況下爲當前報價提供新的reservedId。我已經嘗試了幾種方法,但沒有成功Magento。如何重置結帳報價保留ID?

有誰知道如何做到這一點?

或者,至少,如果這不可能,我如何重置整個Chekout會話而不強制客戶註銷? 我試着unsetAll()clear() & resetCheckout()方法在Mage_Checkout_Model_Session,但他們似乎沒有這樣的伎倆

+1

嗯,你有沒有嘗試像'setReservedId(null)'? – Zyava

回答

3

由於Zyava已經提出,只是在做setReservedOrderId(null)做到了......

我已經試過了以前,但問題是(我認爲)我是這樣做的JavaScript控制流動 現在裏面我只是將有一個標誌爲一個新的會話變量&剛剛突破的過程與

$this->_ajaxRedirectResponse(); 
return; 

然後,回來的時候結帳,如果設置了標誌,使...

Mage::getSingleton('checkout/session')->getQuote()->setReservedOrderId(null); 

的伎倆& Magento的創建報價

+0

您應該接受自己的答案,以正確地幫助其他具有相同問題的SO用戶。 – Zyava

+0

好的...完成了!謝謝 –

+0

嗨,我正在嘗試做類似的事情。由於我已經與第三方支付網關集成,一旦付款由於任何原因失敗,我需要將訂單保存爲pending_payment狀態,並將其重定向到購物車頁面,並在頂部顯示錯誤消息。但我也想保持購物車充滿。但是由於報價被保存爲訂單,我無法保留購物車。 – ivn

1

像勞爾新reservedOrderId說,將Mage::getSingleton('checkout/session')->getQuote()->setReservedOrderId(null);在結帳頁面的頂部重置reserved_order_id。但是,爲了保持空值,您必須保存報價。 所以,代碼將是Mage::getSingleton('checkout/session')->getQuote()->setReservedOrderId(null)-save();它在Magento CE 1.7上爲我工作。