Код писал в компоненте bitrix:sale.basket.basket
Сделал сравнение двух скидок Скидка на товар и Скидка на сумму заказа. Но как отменить все скидки на каждый товар и применить своё значение скидки.[CODE] $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'*/
)
);
$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);
foreach ($arOrder["BASKET_ITEMS"] as $arOneItem)
{
$discount_on_product_p = $arOneItem["DISCOUNT_VALUE"];
}
foreach ($arOrder["DISCOUNT_LIST"] as $key => $value)
{
foreach ($value["RESULT"]["BASKET"] as $key1 => $value1)
{
$discount_on_summu = $value1["VALUE_PERCENT"];
}
}
$discount_on_product = substr($discount_on_product_p,0,-1);
echo $discount_on_product." skidka na tovar <br>";
echo $discount_on_summu." skidka na summu zakaza<br>";
if($discount_on_product > $discount_on_summu) {
echo $discount_on_product." skidka na tovar bolshe chem skidka na summu zakaza<br>";
} else {
echo $discount_on_summu." skidka na summu zakaza bolshe chem skidka na tovar<br>";
}
/*
echo "<pre>";
print_r($arOrder);
echo "</pre>";
*/
?>
[/CODE]