Пример #1
0
 /**
  * calculateDiscountAndDelivery
  */
 protected function calculateDiscountAndDelivery(&$basket)
 {
     $Delivery = new ecommerce_delivery();
     // order exists?
     if ($this->orderFinished($basket['id'], $this->GET['order_id'])) {
         $Promotion = new ecommerce_promotion();
         $Promotion->setCacheable(false);
         // get data from database
         $code = $Promotion->getPromotionCodeForOrder($this->GET['order_id']);
         $verify_code = false;
         $this->Basket->calculateBasketDiscount($basket, $code, $verify_code);
         $basket['delivery'] = $Delivery->getDeliveryByOrderId($this->GET['order_id']);
     } else {
         // calculate data
         $code = $_SESSION['promotion_code'];
         $verify_code = true;
         $promotion_detail = $this->Basket->calculateBasketDiscount($basket, $code, $verify_code);
         $this->Basket->saveDiscount($basket);
         if ($this->guest_customer) {
             $basket['delivery'] = $Delivery->calculateDeliveryForCountry($basket, $this->delivery_options['carrier_id'], $this->delivery_country, $promotion_detail);
         } else {
             $basket['delivery'] = $Delivery->calculateDelivery($basket, $this->delivery_options['carrier_id'], $this->delivery_address_id, $promotion_detail);
         }
         // this only applies when using wizard checkout
         if ($basket['delivery'] == false) {
             $this->redirectToDeliveryOptionsPage();
         }
     }
 }
Пример #2
0
 /**
  * get promotion code
  */
 function getPromotionCode($order_id)
 {
     if (!is_numeric($order_id)) {
         return false;
     }
     require_once 'models/ecommerce/ecommerce_promotion.php';
     $Promotion = new ecommerce_promotion();
     return $Promotion->getPromotionCodeForOrder($order_id);
 }