как показать промо-код или код купона на странице оформления заказа в magento 1.9
Как я могу показать промо-код или код купона на странице оформления заказа в magento 1.9. И у нас может быть опция в панели администратора или мы делаем это с помощью кода? пожалуйста, помогите мне!!!
1 answers
Вы можете назвать код купона при оформлении заказа, используя следующий код:
<div class="custom-coupan">
<?php echo $this->getLayout()->createBlock('checkout/cart_coupon')
->setTemplate('checkout/cart/coupon.phtml')->toHtml(); ?>
</div>
Вам нужно добавить код по адресу:
Mag1root/приложение/дизайн/интерфейс/{пакет}/{тема}/шаблон/оформление заказа/страница/прогресс.phtml
Примечание: когда вы применяете код купона, он перенаправляется на страницу корзины, поэтому требуется правильное переопределение контроллера и перенаправление с места отправки.
Обновление I
Если нам нужно показать сообщение об успехе/ошибке при оформлении заказа страница, нам нужно создать модуль, скажем Mago_Coupon
Создать
App/etc/modules/Mago_Coupon.xml
<?xml version="1.0"?>
<config>
<modules>
<Mago_Coupon>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Checkout />
</depends>
</Mago_Coupon>
</modules>
</config>
App/code/local/Mago/Coupon/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Mago_Coupon>
<version>0.1.0</version>
</Mago_Coupon>
</modules>
<frontend>
<routers>
<coupon>
<use>standard</use>
<args>
<module>Mago_Coupon</module>
<frontName>coupon</frontName>
</args>
</coupon>
<checkout>
<args>
<modules>
<Mago_Coupon before="Mage_Checkout">Mago_Coupon</Mago_Coupon>
</modules>
</args>
</checkout>
</routers>
</frontend>
</config>
App/code/local/Mago/Coupon/controllers/CartController.php
<?php
require_once Mage::getModuleDir('controllers', 'Mage_Checkout') . DS . 'CartController.php';
class Mago_Coupon_CartController extends Mage_Checkout_CartController
{
public function couponPostAction()
{
/**
* No reason continue with empty shopping cart
*/
if (!$this->_getCart()->getQuote()->getItemsCount()) {
$this->_redirectReferer();
return;
}
$couponCode = (string) $this->getRequest()->getParam('coupon_code');
if ($this->getRequest()->getParam('remove') == 1) {
$couponCode = '';
}
$oldCouponCode = $this->_getQuote()->getCouponCode();
if (!strlen($couponCode) && !strlen($oldCouponCode)) {
$this->_redirectReferer();
return;
}
try {
$codeLength = strlen($couponCode);
$isCodeLengthValid = $codeLength && $codeLength <= Mage_Checkout_Helper_Cart::COUPON_CODE_MAX_LENGTH;
$this->_getQuote()->getShippingAddress()->setCollectShippingRates(true);
$this->_getQuote()->setCouponCode($isCodeLengthValid ? $couponCode : '')
->collectTotals()
->save();
if ($codeLength) {
if ($isCodeLengthValid && $couponCode == $this->_getQuote()->getCouponCode()) {
Mage::getSingleton('core/session')->addSuccess(
$this->__('Coupon code "%s" was applied.', Mage::helper('core')->escapeHtml($couponCode))
);
$this->_getSession()->setCartCouponCode($couponCode);
} else {
Mage::getSingleton('core/session')->addError($this->__('Coupon code "%s" is not valid.', Mage::helper('core')->escapeHtml($couponCode))
);
}
} else {
Mage::getSingleton('core/session')->addSuccess($this->__('Coupon code was canceled.'));
}
} catch (Mage_Core_Exception $e) {
$this->_getSession()->addError($e->getMessage());
} catch (Exception $e) {
$this->_getSession()->addError($this->__('Cannot apply the coupon code.'));
Mage::logException($e);
}
$this->_redirectReferer();
}
}
Теперь Mageto будет читать это couponPostAction вместо основного couponPostAction.