Настройка накопительных скидок 1С-Битрикс
Накопительные скидки — механизм, при котором размер скидки покупателя растёт по мере увеличения суммарной суммы его покупок. В Битрикс это реализуется через связку модулей sale (скидки на заказ) и логику групп пользователей: при достижении порога покупатель автоматически переходит в группу с более высокой скидкой.
Принцип работы через группы пользователей
Стандартный подход в Битрикс для накопительных скидок:
- Создать несколько групп покупателей с нарастающими скидками: «Серебро» (5%), «Золото» (10%), «Платина» (15%)
- Каждой группе назначить свою группу цен в каталоге
- Настроить автоматический перевод пользователя в следующую группу при достижении порога суммы заказов
Автоматический перевод — не встроенная функция, требует обработчика события OnSaleOrderSaved:
AddEventHandler('sale', 'OnSaleOrderSaved', function(\Bitrix\Main\Event $event) {
$order = $event->getParameter('ENTITY');
$userId = $order->getUserId();
// Посчитать сумму оплаченных заказов пользователя
$totalPaid = \Bitrix\Sale\Order::getList([
'filter' => ['USER_ID' => $userId, 'PAYED' => 'Y'],
'select' => ['PRICE'],
])->fetchAll();
$total = array_sum(array_column($totalPaid, 'PRICE'));
// Перевести в нужную группу
if ($total >= 50000) {
CUser::SetUserGroup($userId, array_merge(CUser::GetUserGroup($userId), [PLATINUM_GROUP_ID]));
} elseif ($total >= 20000) {
CUser::SetUserGroup($userId, array_merge(CUser::GetUserGroup($userId), [GOLD_GROUP_ID]));
}
});
Использование скидок на заказ с накопителем
Альтернатива группам — скидки на заказ модуля sale с условием по сумме накопленных покупок. В Магазин → Скидки → Добавить скидку:
- Условие: «Сумма заказов пользователя» — встроенное условие в конструкторе скидок
- Тип: процентная скидка
- Группы: «Все зарегистрированные пользователи»
Данные о сумме заказов пользователя Битрикс хранит в b_sale_user — поле DISCOUNT_VALUE. Оно обновляется при смене статуса заказа.
Настройка порогов и уведомлений
Для вывода покупателю прогресса до следующего уровня в личном кабинете потребуется кастомный компонент, который:
- Читает текущую сумму покупок из
b_sale_user.DISCOUNT_VALUE - Вычисляет, сколько осталось до следующего порога
- Отображает прогресс-бар
Сроки выполнения
Настройка накопительных скидок через группы пользователей с автоматическим переводом — 4–8 часов. С кастомным блоком в личном кабинете — 1–2 рабочих дня.







