YuriDan
10/23/2015 - 7:00 AM

Получить скидки товара, включая правила работы с корзиной

Получить скидки товара, включая правила работы с корзиной


$dbBasketItems = CSaleBasket::GetList(
           array("ID" => "ASC"), 
            array(
                'FUSER_ID' => CSaleBasket::GetBasketUserID(),
               'LID' => SITE_ID,
                'ORDER_ID' => 'NULL'
                ),
           false,
           false,
           array(
               'ID', 'PRODUCT_ID', 'QUANTITY', 'PRICE', 'DISCOUNT_PRICE', 'WEIGHT'
             )
          );

   $allSum = 0;
   $allWeight = 0;
   $arItems = array();
   
   while ($arBasketItems = $dbBasketItems->Fetch())
   {   
      $allSum += ($arItem["PRICE"] * $arItem["QUANTITY"]);
      $allWeight += ($arItem["WEIGHT"] * $arItem["QUANTITY"]);
      $arItems[] = $arBasketItems;
   } 

   $arOrder = array(
      'SITE_ID' => SITE_ID,
      'USER_ID' => $GLOBALS["USER"]->GetID(),
      'ORDER_PRICE' => $allSum,
      'ORDER_WEIGHT' => $allWeight,
      'BASKET_ITEMS' => $arItems
   );
   
   $arOptions = array(
      'COUNT_DISCOUNT_4_ALL_QUANTITY' => 'Y',
   );
   
   $arErrors = array();
   
   CSaleDiscount::DoProcessOrder($arOrder, $arOptions, $arErrors);

   $PRICE_ALL = 0;
   $DISCOUNT_PRICE_ALL = 0;
   $QUANTITY_ALL = 0;
      
   foreach ($arOrder["BASKET_ITEMS"] as $arOneItem)
   {
      $PRICE_ALL += $arOneItem["PRICE"] * $arOneItem["QUANTITY"];
      $DISCOUNT_PRICE_ALL += $arOneItem["DISCOUNT_PRICE"] * $arOneItem["QUANTITY"];      
      $QUANTITY_ALL += $arOneItem['QUANTITY'];
   }

   $result['PRICE_ALL'] = $PRICE_ALL;
   $result['DISCOUNT_PRICE_ALL'] = $DISCOUNT_PRICE_ALL;
   $result['QUANTITY_ALL'] = $QUANTITY_ALL;