Налаштування накопительних скидок 1С-Bitrix
Накопительні скидки — механізм, при якому розмір скидки покупця зростає по мірі збільшення сумарної суми його покупок. У Bitrix це реалізується через зв'язку модулів sale (скидки на замовлення) та логіку груп користувачів: при досягненні порога покупець автоматично переходить у групу з більшою скидкою.
Принцип роботи через групи користувачів
Стандартний підхід у Bitrix для накопительних скидок:
- Створити кілька груп покупців з зростаючими скидками: «Срібло» (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 з умовою за сумою накопленних покупок. У Магазин → Скидки → Додати скидку:
- Умова: «Сума замовлень користувача» — вбудована умова в конструкторі скидок
- Тип: відсоткова скидка
- Групи: «Всі зареєстровані користувачі»
Дані про суму замовлень користувача Bitrix зберігає в b_sale_user — поле DISCOUNT_VALUE. Воно оновлюється при зміні статусу замовлення.
Налаштування порогів та сповіщень
Для виводу покупцю прогресу до наступного рівня у особистому кабінеті потребується кастомний компонент, який:
- Читає поточну суму покупок з
b_sale_user.DISCOUNT_VALUE - Обчислює, скільки залишилося до наступного порога
- Відображає прогрес-бар
Строки виконання
Налаштування накопительних скидок через групи користувачів з автоматичним переведенням — 4–8 годин. З кастомним блоком у особистому кабінеті — 1–2 робочі дні.







