Magento:Paypal付款不成功返回后不要清空购物车产品的解决方案

经常遇到这个问题,当我们使用第三方支付工具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();
        }
 
替换原来的文件即可
原文地址:https://www.cnblogs.com/focai/p/4347293.html