Правила работы с корзиной — это гибкий инструмент скидок модуля «Интернет-магазин» в 1С-Битрикс, который пересчитывает стоимость товаров и доставки прямо в корзине. В отличие от старых скидок каталога, правило строится из дерева условий и набора действий, поэтому одной сущностью можно описать почти любую акцию.
Что такое правило работы с корзиной
Правило работы с корзиной — это объект модуля sale (Интернет-магазин), который применяется в момент пересчёта корзины и заказа. Каждое правило состоит из двух частей: условий (когда скидка срабатывает) и действий (что именно происходит с ценой). Данные хранятся в таблице b_sale_discount, а на основе дерева условий Битрикс генерирует исполняемый PHP-код, который и проверяется при каждом расчёте.
Инструмент доступен только после перехода на объединённые (новые) скидки — то есть после конвертации данных магазина. Пока магазин работает в старом режиме, вместо правил корзины действуют классические скидки магазина с ограниченным набором условий.
Где создаются правила
В административной части раздел находится по пути Магазин → Маркетинг → Правила работы с корзиной (в ряде сборок — Магазин → Настройки → Скидки). Технически это страница /bitrix/admin/sale_discount.php. Здесь виден список всех правил с колонками активности, приоритета, сортировки и периода действия.
При создании нового правила заполняются базовые поля:
- Название — служебное, для администратора;
- Активность и Период (
Активна с/Активна по) — включение и срок акции; - Сайт — к какому сайту многосайтовой конфигурации относится правило;
- Валюта — базовая валюта для условий в деньгах;
- Приоритет и Сортировка — порядок и логика применения;
- Купон — привязка к промокодам, если скидка не публичная.
Ниже располагается визуальный конструктор, разделённый на блоки условий и действий.
Условия применения
Условия задаются в виде дерева групп. Каждая группа объединяет вложенные условия логикой И (все должны выполняться) или ИЛИ (достаточно одного). Группы можно вкладывать друг в друга, комбинируя сложную логику — например, «сумма корзины больше 5000 И (бренд = X ИЛИ категория = Y)».
Наиболее востребованные условия:
- Параметры корзины — общая сумма, количество товаров, вес;
- Товар в корзине — наличие конкретной позиции, товара из раздела, с определённым свойством или ценой;
- Покупатель — группа пользователя, факт авторизации, регион;
- Параметры заказа — способ доставки, платёжная система, свойства заказа.
Действия: что делает скидка
Блок действий определяет результат срабатывания правила. Действия так же группируются и могут применяться к разным наборам товаров. Основные типы:
| Действие | Что делает |
|---|---|
| Скидка на корзину | Уменьшает стоимость товаров на процент или фиксированную сумму |
| Скидка на товары | Действует только на выбранные позиции (раздел, бренд, конкретный товар) |
| Скидка на доставку | Снижает стоимость доставки, вплоть до бесплатной |
| Подарок | Добавляет товар в корзину с нулевой или сниженной ценой |
Для процентных скидок доступно ограничение максимальной суммы, а для действий на товары — фильтр по фактическому набору: например, «минус 20% на самый дешёвый товар из двух» реализует механику «1+1». Действия можно комбинировать в рамках одного правила, но чаще под каждую механику заводят отдельное правило.
Приоритет, сортировка и суммирование
Когда правил несколько, порядок их применения решают два поля. Приоритет задаёт уровень: правила с более высоким приоритетом обрабатываются раньше и могут блокировать нижележащие. Сортировка определяет порядок внутри одного приоритета — чем меньше число, тем раньше правило.
Ключевой флаг — «Прекращать дальнейшее применение правил». Если он включён, после срабатывания этого правила Битрикс не применяет более низкие по приоритету. Так реализуется логика «либо скидка, либо купон» без двойного суммирования.
- Правила сортируются по приоритету, затем по сортировке;
- Последовательно проверяются условия каждого правила;
- Применяются действия сработавших правил к текущей цене;
- Если встретился флаг остановки — цикл прерывается.
Купоны и промокоды
Любое правило можно сделать непубличным, привязав к нему купоны. Тогда скидка не показывается всем автоматически, а срабатывает только при вводе промокода в корзине. Купоны создаются в карточке правила и бывают трёх типов:
- Одноразовый — действует на один заказ и «сгорает»;
- Многоразовый (безлимитный) — работает без ограничений по числу применений;
- На фиксированное число применений — например, первые 100 заказов.
Купоны хранятся в таблице b_sale_discount_coupon. Для массовых рассылок удобно генерировать пул уникальных кодов, а для публичных акций — один многоразовый купон. Один заказ может использовать несколько купонов от разных правил, если суммирование не запрещено флагом остановки.
Практические нюансы
Несколько моментов, которые экономят время при настройке и отладке:
- Проверяйте на тестовой корзине. Реальный расчёт удобнее смотреть в компоненте
sale.basket.basketпод нужной группой пользователя, а не только в предпросмотре условий. - Следите за группами пользователей. Условие по группе — частая причина, когда скидка «не срабатывает»: администратор и покупатель находятся в разных группах.
- Не плодите правила без надобности. Каждое активное правило участвует в пересчёте корзины, а сложные деревья условий заметно нагружают каталог с большим числом позиций.
Итог
Правила работы с корзиной — это универсальный конструктор скидок 1С-Битрикс: дерево условий описывает, когда акция срабатывает, набор действий — что происходит с ценой и доставкой, а приоритет, сортировка и флаг остановки управляют суммированием. Купоны превращают правило в промокод. Освоив эти четыре механизма, можно собрать почти любую маркетинговую механику без правки кода.
Если акции стали сложными, конфликтуют между собой или замедляют корзину, мы помогаем спроектировать логику скидок, перенести её с прежней системы и оптимизировать расчёт под нагрузкой, чтобы правила работали предсказуемо и быстро.
Частые вопросы
Чем правила корзины отличаются от скидок каталога?
Скидки каталога меняют цену товара на уровне карточки и не зависят от состава заказа. Правила корзины работают в корзине и учитывают сумму, количество, покупателя и доставку одновременно.
Почему в магазине нет раздела «Правила работы с корзиной»?
Инструмент доступен только после перехода на объединённые скидки, то есть после конвертации данных магазина. В старом режиме действуют классические скидки магазина.
Как сделать так, чтобы две скидки не суммировались?
Включите у более приоритетного правила флаг «Прекращать дальнейшее применение правил». После его срабатывания нижележащие правила применяться не будут.
В каком порядке применяются несколько правил?
Сначала по приоритету (выше — раньше), затем по полю сортировки внутри одного приоритета. Каждое следующее правило работает уже с уменьшенной ценой.
Можно ли скидкой снизить стоимость доставки?
Да, среди действий есть «скидка на доставку», которая уменьшает её стоимость вплоть до бесплатной при выполнении условий, например суммы корзины.
Как привязать скидку к промокоду?
Создайте купон в карточке правила. Скидка станет непубличной и сработает только при вводе промокода в корзине; купоны бывают одноразовыми, многоразовыми и на фиксированное число применений.
Почему скидка не срабатывает у покупателя, хотя условия выполнены?
Частая причина — условие по группе пользователей: администратор и покупатель находятся в разных группах. Проверяйте расчёт под реальной группой клиента, а не под администратором.
Сколько правил можно создать без вреда для скорости?
Жёсткого лимита нет, но каждое активное правило участвует в пересчёте корзины. Десятки правил со сложными условиями замедляют каталог, поэтому логику стоит объединять и кэшировать.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.