Примерно так можно получить величину накопительной скидки для текущего юзера:
function getCumulativeDiscount()
{
$discount = 0;
$cumulativeDiscountId = 3; // id накопительной скидки
if (Loader::includeModule("sale")) {
global $USER;
$cumulativeCalc = new Bitrix\Sale\Discount\CumulativeCalculator($USER->GetID(), SITE_ID);
// сумма всех оплаченных заказов.
$orderSum = $cumulativeCalc->calculate();
$arCumulativeDiscount = CSaleDiscount::GetByID($cumulativeDiscountId);
$arDiscountRanges = unserialize($arCumulativeDiscount['ACTIONS'])['CHILDREN'][0]['DATA']['ranges'];
//ищем попадание суммы оплаченных заказов в интервалы скидок
foreach ($arDiscountRanges as $arRange) {
if ($orderSum >= $arRange['sum']) {
if ($arRange['type'] == 'P') {
$discount = $arRange['value'].'%';
} else {
$discount = $arRange['value'].' руб.';
}
}
}
}
return $discount;
} |