Накопительная скидка — это скидка, размер которой зависит не от текущей корзины, а от суммы всех покупок клиента за всё время или за период. В 1С-Битрикс она собирается из двух частей: учёта накоплений в модуле «Интернет-магазин» и правила работы с корзиной, которое читает накопленную сумму. Разберём, как связать одно с другим и не наступить на типичные грабли.
Что такое накопительная скидка и чем она отличается
Обычная скидка на сумму заказа смотрит только на текущую корзину: набрал на 5 000 ₽ — получил процент здесь и сейчас. Накопительная работает иначе — она учитывает историю: чем больше клиент купил суммарно, тем выше его персональная скидка на будущие заказы.
- Скидка от суммы заказа — разовая, зависит от корзины, действует один раз.
- Накопительная скидка — постоянная, привязана к покупателю, растёт по мере накопления оборота.
В терминах Битрикса накопительная скидка — это не отдельная «кнопка», а связка настроек: система должна считать и хранить сумму покупок пользователя, а правило работы с корзиной — использовать эту сумму как условие. Поэтому настройка идёт в два этапа: сначала включаем учёт, потом создаём правило.
Как Битрикс считает накопленную сумму
За накопления отвечает модуль sale (Интернет-магазин). При оформлении и, что важнее, при смене статуса заказа система пересчитывает суммарный оборот покупателя и сохраняет его в свойствах пользователя. Именно эта величина потом сравнивается с порогами скидки.
Ключевой вопрос — какие заказы учитывать. Битрикс позволяет накапливать по:
- всем заказам покупателя;
- только оплаченным заказам;
- только выполненным (доставленным/завершённым) заказам.
Пересчёт происходит по событиям заказа. Если статусы меняются пакетно (импорт из 1С, массовая смена), сумма покупок обновится не мгновенно — учитывайте это при интеграции обмена заказами.
Настройка учёта накоплений в модуле
Параметры учёта живут в настройках модуля «Интернет-магазин»: Настройки → Настройки продукта → Настройки модулей → Интернет-магазин (/bitrix/admin/settings.php?mid=sale). Здесь задаётся, включён ли учёт суммы покупок и какие заказы в него попадают.
- Включаем сохранение суммы покупок покупателя.
- Выбираем тип суммы для накопления — по всем / по оплаченным / по выполненным заказам.
- При необходимости задаём период накопления (например, за последний год), если программа лояльности «сгорающая».
После сохранения система начнёт вести накопленную сумму. Для уже существующих клиентов её, возможно, придётся пересчитать разово — свежая настройка не задним числом переберёт всю историю заказов автоматически; такой пересчёт обычно запускают отдельным скриптом на API \Bitrix\Sale.
Создаём правило накопительной скидки
Сама скидка настраивается как правило работы с корзиной: Магазин → Маркетинг → Правила работы с корзиной. Обычная скидка на товар/каталог для этой задачи не подходит — нужна именно корзинная логика с условием по покупателю.
- Создаём новое правило, задаём название, сайт и период действия.
- В блоке условий добавляем условие, зависящее от
суммы покупок пользователя(общий оборот клиента). - В действии указываем скидку — процент на корзину или на группу товаров.
- Выставляем приоритет и, при необходимости, флаг прекращения дальнейшего применения скидок.
Условие сравнивает накопленную сумму с порогом: «сумма покупок пользователя больше или равна 30 000 ₽ → скидка 5%». Чтобы скидка не действовала на всех подряд, правило обычно ограничивают группой пользователей (например, «Зарегистрированные» или отдельная группа «Постоянные клиенты»).
Пороговая лестница скидок
Программа лояльности почти всегда ступенчатая: чем больше оборот — тем выше процент. В Битрикс это делается несколькими правилами (по одному на ступень) либо одним правилом с несколькими условиями по диапазонам. Чаще берут отдельные правила — их проще включать/выключать и сортировать по приоритету.
| Накопленная сумма | Скидка | Приоритет |
|---|---|---|
| от 30 000 ₽ | 3% | 10 |
| от 70 000 ₽ | 5% | 20 |
| от 150 000 ₽ | 7% | 30 |
Чтобы клиенту применялась только одна, максимальная подходящая ступень, у старших правил ставят выше приоритет и включают прекращение дальнейшего применения. Иначе движок скидок может сложить проценты разных ступеней, и клиент с оборотом 150 000 ₽ получит 3+5+7% вместо 7%.
Подводные камни: суммирование, пересчёт, производительность
Накопительные скидки редко существуют в вакууме — рядом всегда есть акции, купоны и разовые скидки. Проблемы возникают на их стыке.
- Суммирование. По умолчанию несколько правил могут складываться. Продумайте приоритеты и флаг «прекратить применение», чтобы накопительная не суммировалась с акционной, если это не задумано.
- Акционные товары. Часто требуется, чтобы накопительная скидка не распространялась на товары, уже участвующие в акции. Это решается ограничением области действия правила по группам товаров.
- Пересчёт истории. При запуске программы для действующей базы нужен разовый пересчёт накопленной суммы по прошлым заказам.
- Производительность. Каждое активное правило корзины — это дополнительные вычисления при расчёте корзины. Держите набор правил компактным.
Проверка и отладка
Перед публикацией накопительную программу обязательно проверяют на тестовых заказах, а не «на глаз».
- Заведите тестового покупателя, оформите и оплатите заказы так, чтобы перейти нужный порог.
- Убедитесь, что накопленная сумма в профиле пользователя обновилась после смены статуса.
- Положите товар в корзину и проверьте, что применилась именно нужная ступень, а проценты не сложились.
- Проверьте поведение на товарах, исключённых из скидки, и в связке с активными акциями.
Если скидка не применяется, идите по цепочке: активно ли правило и попадает ли дата в период, входит ли пользователь в нужную группу, обновилась ли накопленная сумма, не перекрывает ли правило более приоритетное с флагом прекращения. В сложных случаях помогает лог применения скидок и трассировка условий движка \Bitrix\Sale\Discount.
Итог
Накопительная скидка в 1С-Битрикс — это связка из двух частей: учёта суммы покупок в настройках модуля «Интернет-магазин» и правила работы с корзиной, которое читает эту сумму и превращает её в процент. Ключевые решения — какие заказы считать (обычно только оплаченные), как выстроить пороговую лестницу и как исключить нежелательное суммирование через приоритеты и флаг прекращения применения.
Если программа лояльности выходит нетривиальной — со ступенями, исключениями, сгоранием накоплений и обменом заказами из 1С — мы поможем её спроектировать, настроить и отладить так, чтобы она считала верно и не тормозила корзину. Обращайтесь к нашей команде за разработкой, интеграцией с 1С и поддержкой магазина.
Частые вопросы
Чем накопительная скидка отличается от скидки на сумму заказа?
Скидка на сумму заказа зависит от текущей корзины и действует разово. Накопительная привязана к покупателю и зависит от суммы всех его покупок за всё время или за период.
Где в Битрикс включается учёт накоплений?
В настройках модуля «Интернет-магазин»: Настройки → Настройки продукта → Настройки модулей → Интернет-магазин. Там включается сохранение суммы покупок и выбирается, какие заказы учитывать.
Какие заказы лучше учитывать при накоплении?
Как правило, только оплаченные или выполненные заказы. Если считать по всем заказам, клиент может получить скидку за неоплаченные и отменённые покупки.
Как сделать ступенчатую скидку по порогам?
Создайте отдельное правило работы с корзиной на каждую ступень с условием по сумме покупок и разными приоритетами. Старшим ступеням дайте выше приоритет и флаг прекращения применения.
Почему складываются проценты разных ступеней?
По умолчанию правила корзины могут суммироваться. Чтобы применялась только одна, максимальная ступень, настройте приоритеты и включите прекращение дальнейшего применения скидок.
Что делать с уже существующими клиентами при запуске программы?
Накопленную сумму по прошлым заказам нужно пересчитать разово — свежая настройка не переберёт всю историю автоматически. Пересчёт обычно выполняют скриптом на API модуля sale.
Учитываются ли заказы из 1С в накоплениях?
Да, если смена статуса заказа на оплачен или выполнен корректно триггерит пересчёт накоплений на стороне сайта. При обмене с 1С это нужно проверять отдельно.
Можно ли исключить акционные товары из накопительной скидки?
Да. В правиле работы с корзиной ограничьте область действия по группам товаров, чтобы накопительная скидка не применялась к товарам, уже участвующим в акции.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.