/** * Get applied coupons * @return array */ public function getAppliedCoupons() { if (!isset($this->appliedCodes)) { $quote = $this->getQuote(); $this->appliedCodes = $this->couponService->getCouponCodesFromQuote($quote); } return $this->appliedCodes; }
/** * Warn if maximum coupons are used * @param Varien_Event_Observer */ public function warnMaximumCoupons(Varien_Event_Observer $observer) { $checkoutSession = $this->getCheckoutSession(); $quote = $checkoutSession->getQuote(); $couponCodes = $this->couponService->getCouponCodesFromQuote($quote); $cartCouponsCount = count($couponCodes); $maxCouponsCount = Mage::getStoreConfig('promo/multiple_coupons/max_num_coupons'); if ($cartCouponsCount >= $maxCouponsCount) { $checkoutSession->addNotice(Mage::helper('core')->__('You have entered the maximum number of allowed coupons. If you wish to enter another, please delete one first.')); } }
/** * Validate the coupon usage for given address * @param Mage_Sales_Model_Quote_Address */ protected function validateCouponUsage(Mage_Sales_Model_Quote_Address $address) { $quote = $address->getQuote(); $customerId = $quote->getCustomerId(); $couponCodes = $this->couponService->getCouponCodesFromQuote($quote); $newCodes = $couponCodes; foreach ($couponCodes as $index => $couponCode) { $isValid = $this->isValidCouponUsage($couponCode, $customerId); if (!$isValid) { unset($newCodes[$index]); } } if ($newCodes != $couponCodes) { $couponCode = implode(',', $newCodes); $quote->setCouponCode($couponCode); } }
/** * Get the applied coupon codes * @return array */ public function getAppliedCoupons() { $quote = $this->getQuote(); return $this->couponService->getCouponCodesFromQuote($quote); }