예제 #1
0
 /**
  * Get applied coupons
  * @return array
  */
 public function getAppliedCoupons()
 {
     if (!isset($this->appliedCodes)) {
         $quote = $this->getQuote();
         $this->appliedCodes = $this->couponService->getCouponCodesFromQuote($quote);
     }
     return $this->appliedCodes;
 }
예제 #2
0
 /**
  * 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);
     }
 }
예제 #4
0
 /**
  * Get the applied coupon codes
  * @return array
  */
 public function getAppliedCoupons()
 {
     $quote = $this->getQuote();
     return $this->couponService->getCouponCodesFromQuote($quote);
 }