Я использую 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()
приходит пустой. Он входит как ".
Edit:
Дальнейшее исследование привело меня к более конкретной проблемы ..
Сво ->collectTotals()->save();
, что делает все беспорядок .. По какой-то причине, если я удалить их он отлично работает, но купон не применяется.
Как это можно исправить?
Проверьте значение $ couponCode. 'var_dump ($ couponCode);' –
$ couponCode - это число, которое я ввел в форму ... , поскольку вы можете видеть, что его печатают уже в ошибке. – user2312281
Это может привести к тому, что ваш '$ couponCode' станет пустым:' strlen ($ couponCode)? $ couponCode: '' ' –