Налаштування акцій та маркетингових правил 1С-Бітрікс
Стикалися з безконтрольним накладанням знижок?
Типовий сценарій: три акції підсумовуються, даючи 70% знижки замість очікуваних 15%. Або промокод спрацьовує разом із загальною акцією, і клієнт отримує товар майже безкоштовно. В одному проекті неправильне налаштування LAST_DISCOUNT призвело до збитку в $900–1.3k за місяць. Корінь — неправильне налаштування пріоритетів і прапорця LAST_DISCOUNT. Ми налаштовуємо правила так, щоб кожна акція застосовувалася строго за умовами, а контроль підсумовування виключав збиток.
Наш досвід: 7+ років роботи з Бітрікс, понад 50 проектів з налаштування маркетингу. Згідно з документацією 1С-Бітрікс, LAST_DISCOUNT — ключовий механізм запобігання множинному застосуванню знижок. Крім того, ми використовуємо кастомні події OnSaleDiscountRuleAction для нестандартних механік. Правильне налаштування може заощадити до $450–650 на місяць на недоотриманій виручці.
Чому акції в Бітрікс можуть підсумовуватися неправильно?
Проблема виникає, коли кілька правил знижок мають однаковий пріоритет і не налаштовано прапорець «Припинити обробку». Наприклад, акція «10% на перше замовлення» та «5% на весь каталог» застосовуються разом, даючи 14.5% замість 10%. Рішення — встановити пріоритет 100 для основної акції та увімкнути LAST_DISCOUNT. Якщо потрібне підсумовування, використовуйте спільне застосування в налаштуваннях. У складних випадках ми додаємо перевірку в подію OnSaleDiscountCondition, щоб програмно контролювати застосовність.
Приклад реалізації кастомної акції з умовою
// событие OnSaleDiscountCondition class MyCondition extends \Bitrix\Sale\Discount\Condition\Base { public static function getClassName() { return __CLASS__; } public static function getControlId() { return 'MyCondition'; } public static function checkCondition(array $params, array $arOrder) { // Проверяем, что в корзине есть товар из нужной категории $basket = $arOrder['BASKET_ITEMS']; foreach ($basket as $item) { if ($item['IBLOCK_SECTION_ID'] == 42) { return true; } } return false; } } Як відрізнити знижку каталогу від маркетингового правила?
| Тип | Модуль | Область дії | Можливості |
|---|---|---|---|
| Знижка каталогу | catalog | Ціна товару до кошика | Відсоток/фікс, періоди, групи |
| Маркетингове правило | sale | Кошик | Подарунки, знижка на доставку, багато умов |
Знижки каталогу (таблиця b_catalog_discount) працюють на рівні ціни товару до кошика. Маркетингові правила (розділ «Правила роботи з кошиком») — у кошику, дозволяють давати подарунки, знижки на доставку, умовні ланцюжки. Згідно з Wikipedia, знижки каталогу — це класичні цінові знижки, а маркетингові правила — складніший механізм. Використання маркетингових правил дає на 30% більше гнучкості, ніж знижки каталогу, оскільки можна комбінувати умови та накладати обмеження.
Створення акції через конструктор
Магазин → Маркетинг → Знижки та акції → Додати:
-
Умови — конструктор на основі AND/OR:
- Сума замовлення більше X
- У кошику є товар з розділу N
- Користувач у групі G
- Використовується промокод
Дії:
- Знижка на замовлення (відсоток, фіксована)
- Знижка на товари з кошика
- Знижка на доставку
- Додати подарунок (товар з нульовою ціною)
Налаштування застосування:
- Пріоритет
- «Припинити обробку» — важливо для взаємовиключних акцій
- Спільне застосування з іншими знижками
Кастомні події
OnSaleDiscountRuleActionдозволяють реалізувати механіки в 2-3 рази швидше, ніж створення власного модуля. Наприклад, ми додавали знижку на другий товар у кошику — це зайняло 2 години замість тижня розробки.Промокоди: єдині, унікальні та прив'язані до користувача
У налаштуваннях акції вмикається купон (
Магазин → Маркетинг → Купони). Типи купонів:Тип Опис Єдиний для всіх Один код, кілька використань Унікальний Один код — одне використання Унікальний для користувача Прив'язаний до конкретного користувача Купони зберігаються в
b_sale_discount_coupon. При активації купон перевіряється через\Bitrix\Sale\DiscountCouponsManager::add. Якщо промокод не застосовується, перевіряйте активність купона, термін дії та тип — часто проблема в кешуванні даних кошика.Що робити, якщо акції не спрацьовують?
Перш за все перевірте лог помилок у
Магазин → Маркетинг → Знижки та акції → Звіт про застосування. Якщо акція не застосовується, переконайтеся, що її активність увімкнено, і умови відповідають кошику. Також подивіться на групування умов: можливо, умова «І» замість «АБО» блокує виконання. Увімкніть режим налагодження вbitrix/php_interface/dbconn.phpдля перегляду SQL-запитів:$DB->showSqlStat = true;. Це допоможе знайти проблему з кешуванням або неправильним зв'язком.Що входить в роботу?
Етап Тривалість Аудит поточних акцій 1–2 години Проектування логіки 1–3 години Реалізація через конструктор або код 3–5 годин Тестування на тестовому замовленні 1–2 години Документація та навчання 1 година - Аудит поточних акцій та правил
- Проектування логіки застосування знижок
- Реалізація через конструктор або кастомний код
- Тестування на тестовому замовленні
- Документація та навчання персоналу
- Підтримка протягом місяця після запуску
Зв'яжіться з нами для аудиту ваших маркетингових правил. Замовте консультацію, щоб уникнути збитків від некоректних знижок. Налаштування 3–5 стандартних акцій з промокодами — 3–5 годин. Складні механіки з подарунками та кастомними діями — 1–2 робочих дні. Вартість розраховується індивідуально після аналізу ТЗ. Додатково ви отримуєте гарантію на коректну роботу акцій протягом 30 днів.
Отримайте детальний аудит та план оптимізації — просто напишіть нам.







