1

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

如果在付款过程中出现错误,我希望用户在购物篮完好无损的情况下返回单页结账。当前,当用户返回结帐时,购物篮是空的,因此他们会被转发到“结帐/购物车”,因为他们没有商品。

我认为这可能是我的代码有问题,所以我将初始付款操作直接重定向到单页结帐时出现错误。

 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));
}

然而,在返回结帐页面时,购物篮是空的。将以下日志添加到单页结帐的 indexAction 中,我得到“报价”。在数据库中查看报价已将其活动状态设置为 0。

 error_log("Quote ".Mage::getSingleton('checkout/session')->getQuoteId());

仅在 Enterprise 中使用标准 Magento 时,我没有遇到过这个问题。有没有人遇到过这个问题?理想情况下,我不希望客户不得不再次将产品添加到购物篮中。它就像它与某种 Magento Enterprise 模块冲突。

提前感谢您的帮助!

4

1 回答 1

4

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

$yourQuote()->setIsActive(true);
于 2010-12-20T12:32:35.130 回答