我使用的是magento 1.7.0.2。出於某種原因,我一直收到「優惠券代碼」XXX「無效」。我調查了一下,發現了什麼問題,但我不知道如何解決。magento優惠券代碼無效
文件中:\應用\代碼\核心\法師\結帳\控制器\ 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();
,這樣做的所有的爛攤子.. 出於某種原因,如果我刪除它運行完美,但在優惠券不適用。
這怎麼解決?
檢查$ couponCode的值。 'var_dump($ couponCode);' –
$ couponCode是我在表格中輸入的數字... ,因爲您可以看到它已被打印在錯誤中。 – user2312281
這可能會導致你的'$ couponCode'變成空白:'strlen($ couponCode)? $ couponCode:''' –