Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 马根托。如何重置签出报价保留Id?_Session_Magento_Reset_Quote - Fatal编程技术网

Session 马根托。如何重置签出报价保留Id?

Session 马根托。如何重置签出报价保留Id?,session,magento,reset,quote,Session,Magento,Reset,Quote,由于在结账期间与外部系统集成,我需要在某些情况下为当前报价重置并提供新的reservedId。我试过几种方法,但没有成功 有人知道如何做到这一点吗 或者,至少,如果这不可能,我如何在不强制客户注销的情况下重置整个Chekout会话? 我在Mage\u Checkout\u Model\u会话中尝试了unsetAll()、clear()和resetCheckout()方法,但它们似乎没有像建议的那样发挥作用,只是做了setReservedOrderId(null) 我以前试过,但问题是(我想)我是

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

有人知道如何做到这一点吗

或者,至少,如果这不可能,我如何在不强制客户注销的情况下重置整个Chekout会话? 我在
Mage\u Checkout\u Model\u会话中尝试了
unsetAll()
clear()
resetCheckout()
方法,但它们似乎没有像建议的那样发挥作用,只是做了
setReservedOrderId(null)

我以前试过,但问题是(我想)我是在Javascript控制器流中这样做的 现在我只是在那里放置一个标志作为一个新的会话变量&只是用

$this->_ajaxRedirectResponse();
return;
然后,当返回结账时,如果设置了标志,则

Mage::getSingleton('checkout/session')->getQuote()->setReservedOrderId(null);
技巧&Magento是否按照建议为报价创建了一个新的reservedOrderId,只需执行
设置reservedOrderId(null)
就可以了

我以前试过,但问题是(我想)我是在Javascript控制器流中这样做的 现在我只是在那里放置一个标志作为一个新的会话变量&只是用

$this->_ajaxRedirectResponse();
return;
然后,当返回结账时,如果设置了标志,则

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

技巧和Magento是否像Raul说的那样为报价创建了一个新的reservedOrderId,放置
Mage::getSingleton('checkout/session')->getQuote()->setReservedOrderId(null)重置保留订单id
。但是,为了保持null,您必须保存报价。
因此,代码应该是
Mage::getSingleton('checkout/session')->getQuote()->setReservedOrderId(null)-save()它在MagentoCE1.7上对我有效。

就像劳尔说的,放置
Mage::getSingleton('checkout/session')->getQuote()->setReservedOrderId(null)重置保留订单id
。但是,为了保持null,您必须保存报价。
因此,代码应该是
Mage::getSingleton('checkout/session')->getQuote()->setReservedOrderId(null)-save()
它在Magento CE 1.7上对我有效。

嗯,你有没有尝试过类似于
setReservedId(null)
?嗯,你有没有尝试过类似于
setReservedId(null)
?你应该接受自己的正确答案,以帮助其他SO用户解决同样的问题。你好,我正在尝试做类似的事情。由于我与第三方支付网关集成,一旦由于任何原因导致支付失败,我需要将订单保存为挂起支付状态,并将其重定向到购物车页面,顶部显示错误消息。但我也想把车装满。但由于报价已保存到订单中,我无法保留购物车。如果我抛出异常,保留的订单id将保持不变,当客户更正其详细信息并重试时,它不允许他们继续,因为外部支付网关总是需要一个新的订单id。我是否可以在支付失败时第一次抛出异常,然后
setReservedOrderId(null)
,这样,当他们更正其详细信息并重试时,如果您放置
Mage::getSingleton,订单就会正常运行('checkout/session')->getQuote()->setReservedOrderId(null)
在checkout One Page初始模板的顶部,然后您可以抛出异常并将用户重定向到购物车。然后,当usaer再次开始结帐过程时,报价单id将被重置。您应该接受自己的答案为正确,以帮助其他SO用户解决同样的问题。您好,我正在尝试做类似的事情。因为我有一个与第三方支付网关集成,一旦由于任何原因导致支付失败,我需要将订单保存为挂起支付状态,并将其重定向到购物车页面,顶部显示错误消息。但我也希望保持购物车已满。但由于报价已保存到订单中,我无法保留购物车。如果我通过异常情况下,保留订单id保持不变,当客户更正其详细信息并重试时,由于外部支付网关始终需要新的订单id,因此不允许继续进行。是否可以在支付失败时第一次抛出异常,然后
setReservedOrderId(null)
这样,当他们更正详细信息并重试时,如果您放置
Mage::getSingleton('checkout/session')->getQuote()->setReservedOrderId(null),那么这次的订单将正常运行
在checkout One Page初始模板的顶部,您可以抛出异常并将用户重定向到购物车。然后,当usaer再次启动签出过程时,报价单id将被重置