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
返回到Onepage签出时如何在Magento中恢复报价?_Magento_Enterprise_Checkout_Quote - Fatal编程技术网

返回到Onepage签出时如何在Magento中恢复报价?

返回到Onepage签出时如何在Magento中恢复报价?,magento,enterprise,checkout,quote,Magento,Enterprise,Checkout,Quote,我使用的是带有Datacash 3D安全支付模块的Magento Enterprise 如果在付款过程中出现错误,我希望用户返回到onepage结账时,购物篮完好无损。当前,当用户返回到收银台时,购物篮是空的,因此它们会被转发到“收银台/购物车”,因为它们没有任何项目 我认为这可能是我的代码有问题,所以我有一个错误的初始付款操作直接重定向回onepage签出 public function redirectAction() { Mage::getSingleton('core/sessio

我使用的是带有Datacash 3D安全支付模块的Magento Enterprise

如果在付款过程中出现错误,我希望用户返回到onepage结账时,购物篮完好无损。当前,当用户返回到收银台时,购物篮是空的,因此它们会被转发到“收银台/购物车”,因为它们没有任何项目

我认为这可能是我的代码有问题,所以我有一个错误的初始付款操作直接重定向回onepage签出

 public function redirectAction() {
  Mage::getSingleton('core/session')->addError("There was a problem with the payment gateway. Please try again");
  $session = Mage::getSingleton('checkout/session');
  return $this->_redirect('checkout/onepage/', array('_secure'=>true));
}
然而,当返回到结帐页面时,购物篮是空的。将下面的日志添加到onepage签出的索引中,我会得到“Quote”。在数据库中查找报价时,其活动状态已设置为0

 error_log("Quote ".Mage::getSingleton('checkout/session')->getQuoteId());
我在标准Magento中没有遇到过这个问题,只是在Enterprise中遇到了这个问题。有人遇到过这个问题吗?理想情况下,我不希望客户不得不再次向购物篮中添加产品。这就像它与某种Magento企业模块冲突一样


提前感谢您的帮助

基本上你回答了自己的问题。加载报价(如果不可用)并执行以下操作:

$yourQuote()->setIsActive(true);

基本上你回答了你自己的问题。加载报价(如果不可用)并执行以下操作:

$yourQuote()->setIsActive(true);

问题是需要在onepagecheckout上完成,但是错误日志显示他们没有针对会话的报价。我总是可以创建一个新的会话变量来存储它,并在以后引用它,但这似乎有点老套。理想情况下,我首先需要停止清除它的东西。我发现在Mage_Checkout_Model_Type_Onepage中,一旦开始创建订单,它总是将报价设置为非活动。你的权利只是在我的控制器的开始处加载我的报价,并将其设置为活动,当用户返回结帐时,保持篮子固定。如果用户在3DSecure过程中进行回击,您是否可以覆盖默认的签出操作,并在其开头执行此逻辑,然后执行parent::checkout();或者不管调用什么方法?问题是需要在onepagecheckout上执行,但是错误日志显示他们没有针对会话的引用。我总是可以创建一个新的会话变量来存储它,并在以后引用它,但这似乎有点老套。理想情况下,我首先需要停止清除它的东西。我发现在Mage_Checkout_Model_Type_Onepage中,一旦开始创建订单,它总是将报价设置为非活动。你的权利只是在我的控制器的开始处加载我的报价,并将其设置为活动,当用户返回结帐时,保持篮子固定。如果用户在3DSecure过程中进行回击,您是否可以覆盖默认的签出操作,并在其开头执行此逻辑,然后执行parent::checkout();或者不管这个方法叫什么?