Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- require_once Mage::getModuleDir('controllers', "Mage_Checkout").DS."IndexController.php";
- class Amit_CustomCheckout_OnepageController extends Mage_Checkout_OnepageController
- {
- public function applycouponAction(){ /**
- * No reason continue with empty shopping cart
- */
- if (!$this->getOnepage()->getQuote()->getItemsCount()) {
- $result['error']=true;
- $result['message']=$this->__('No item in cart.');
- $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
- return;
- }
- $couponCode = (string) $this->getRequest()->getParam('coupon_code');
- if ($this->getRequest()->getParam('remove') == 1) {
- $couponCode = '';
- }
- $oldCouponCode = $this->getOnepage()->getQuote()->getCouponCode();
- if (!strlen($couponCode) && !strlen($oldCouponCode)) {
- $result['error']=true;
- $result['message']=$this->__('Coupon code "%s" is not valid.', Mage::helper('core')->escapeHtml($couponCode));
- $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
- return;
- }
- try {
- $codeLength = strlen($couponCode);
- $isCodeLengthValid = $codeLength && $codeLength <= Mage_Checkout_Helper_Cart::COUPON_CODE_MAX_LENGTH;
- $this->getOnepage()->getQuote()->getShippingAddress()->setCollectShippingRates(true);
- $this->getOnepage()->getQuote()->setCouponCode($isCodeLengthValid ? $couponCode : '')
- ->collectTotals()
- ->save();
- $result=array();
- if ($codeLength) {
- if ($isCodeLengthValid && $couponCode == $this->getOnepage()->getQuote()->getCouponCode()) {
- $result['error']=false;
- $result['message']=$this->__('Coupon code "%s" was applied.', Mage::helper('core')->escapeHtml($couponCode));
- $result['html']=$this->_getReviewHtml();
- } else {
- $result['error']=true;
- $result['message']=$this->__('Coupon code "%s" is not valid.', Mage::helper('core')->escapeHtml($couponCode));
- }
- } else {
- $result['error']=false;
- $result['message']=$this->__('Coupon code was canceled.');
- $result['html']=$this->_getReviewHtml();
- }
- } catch (Mage_Core_Exception $e) {
- $this->_getSession()->addError($e->getMessage());
- $result['error']=true;
- $result['message']=$this->__('Cannot apply the coupon code.');
- } catch (Exception $e) {
- $result['error']=true;
- $result['message']=$this->__('Cannot apply the coupon code.');
- Mage::logException($e);
- }
- $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
- }
- }
Add Comment
Please, Sign In to add comment