Magento网站paypal支付会遇到这个问题,当我们使用第三方支付工具paypal支付的时候,用户付款不成功或者取消了订单再返回网站时,发现购物车里面的产品已经被清空了,如果是客户主动cancel的还好,但是如果是操作失误的原因而未能付款,客户会非常不满意。
VCPHP网站模板下面通过这个方法帮大家解决这个问题,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();
}
替换原来的文件即可