经常遇到这个问题,当我们使用第三方支付工具Gateway如paypal支付的时候,如果用户付款不成功或者取消了订单再返回网站时,发现购物车里面的产品已经被清空了,如果是客户主动cancel的还好,但是如果是操作失误的原因而未能付款,客户会非常抓狂。
通过下面这个方法可以解决这个问题,Magento通常的方法是如果判定为第三方的gateway 作为支付工具的话直接save quote
$this->getOnepage()->getQuote()->save();
我们的应对方法是,判定如果页面转向第三方支付gateway 如 paypal则不保存 quote,这样就不会清空shopping cart
app/code/core/Mage/Checkout/controllers/OnepageController.php
找到这段代码
$this->getOnepage()->getQuote()->save();
if (isset($redirectUrl)) {
$result['redirect'] = $redirectUrl;
}
改成
//$this->getOnepage()->getQuote()->save();
if (isset($redirectUrl)) {
$result['redirect'] = $redirectUrl;
}
else {
$this->getOnepage()->getQuote()->save();
}
替换原来的文件即可
(责任编辑:好模板) |