私はマジェント1.7.0.2を使用しています。なぜか「クーポンコード「XXX」は無効です」と表示されます。少し調べたところ、何が問題なのかがわかりましたが、修正方法がわかりません。
ファイル内: \app\code\core\mage\checkout\controllers\cartController.php
$couponCode = (string) $this->getRequest()->getParam('coupon_code');
if ($this->getRequest()->getParam('remove') == 1) {
$couponCode = '';
}
$oldCouponCode = $this->_getQuote()->getCouponCode();
if (!strlen($couponCode) && !strlen($oldCouponCode)) {
$this->_goBack();
return;
}
try {
$this->_getQuote()->getShippingAddress()->setCollectShippingRates(true);
$this->_getQuote()->setCouponCode(strlen($couponCode) ? $couponCode : '')
->collectTotals()
->save();
if ($couponCode) {
if ($couponCode == $this->_getQuote()->getCouponCode()) {
$this->_getSession()->addSuccess(
$this->__('Coupon code "%s" was applied.',Mage::helper('core')->htmlEscape($couponCode))
);
}
else {
$this->_getSession()->addError(
$this->__('Coupon code "%s" is not valid.', Mage::helper('core')->htmlEscape($couponCode))
);
}
} else {
$this->_getSession()->addSuccess($this->__('Coupon code was canceled.'));
}
問題は、それ$this->_getQuote()->getCouponCode()
が空になることです。'' として入っています。
編集:
さらなる調査により、より具体的な問題にたどり着きました..
それは->collectTotals()->save();
すべての混乱をしていることです..何らかの理由でそれらを削除すると、完全に動作しますが、クーポンは適用されません.
これはどのように修正できますか?