Купон в 1С-Битрикс различается не только скидкой, но и режимом применения — сколько раз и кому им можно воспользоваться. От выбора типа зависит, спишется ли промокод после первого заказа или будет работать до бесконечности.
Три типа купонов в Битрикс
В модуле sale у каждого купона правила корзины есть поле «Тип купона» (в API — константа класса \Bitrix\Sale\Internals\DiscountCouponTable). Оно определяет, как система ведёт себя после успешного оформления заказа:
- Одноразовый (
TYPE_ONE_TIME) — списывается после первого же оформленного заказа и больше не действует ни для кого. - Многоразовый на один заказ (
TYPE_ONE_ROW) — действует ограниченное число раз; после исчерпания лимита деактивируется. - Неограниченный (
TYPE_BASKET_ROW) — применяется без учёта количества использований, работает пока активно само правило корзины.
Тип задаётся в карточке купона в разделе Магазин → Маркетинг → Правила работы с корзиной при добавлении купонов к правилу. Скидку определяет правило, а поведение промокода — именно тип.
Одноразовый купон
Одноразовый купон рассчитан на единственное применение. Как только покупатель оформил заказ с этим кодом, купон переходит в статус «применён» и больше недоступен — ни этому, ни другому пользователю. Это самый строгий режим.
Такой тип уместен для персональных предложений: приветственный бонус конкретному клиенту, компенсация за проблемный заказ, индивидуальная скидка для переговоров. Каждому получателю выдаётся свой уникальный код — массово одноразовые купоны генерируют сериями, чтобы у каждого адресата рассылки был отдельный промокод.
Многоразовый купон (на один заказ)
Многоразовый купон типа TYPE_ONE_ROW позволяет применить один и тот же код ограниченное число раз, но в каждом отдельном заказе он учитывается однократно. Лимит задаётся вручную и после исчерпания промокод перестаёт действовать.
Это удобно для акций с контролируемым охватом: «первым 100 покупателям скидка по коду START100». Код один и тот же, публикуется открыто, а система сама остановит его, когда счётчик применений дойдёт до лимита.
- Один код — много клиентов, но в рамках заданного количества.
- В одном заказе купон уменьшает стоимость один раз, повторно в той же корзине не суммируется.
- После достижения лимита купон автоматически становится недействительным.
Неограниченный купон
Неограниченный купон работает без счётчика применений — им можно пользоваться сколько угодно раз, пока активно связанное правило корзины и не истёк срок действия. По сути это публичный промокод «на всё время акции».
Подходит для постоянных механик: код в подписи писем, промокод блогера, скидка для участников программы лояльности. Ограничить его можно только сроком действия (поля «Активен с» / «Активен по») и условиями самого правила корзины — например, минимальной суммой заказа.
Когда какой тип выбрать
Выбор типа — это баланс между охватом и контролем расходов на скидки. Ориентируйтесь на цель промоакции:
| Тип | Код | Число применений | Типовой сценарий |
|---|---|---|---|
| Одноразовый | Уникальный | 1 раз | Персональный бонус, компенсация |
| Многоразовый | Общий | По лимиту | «Первым N покупателям» |
| Неограниченный | Общий | Без ограничений | Публичная акция на срок |
Практическое правило: чем выше скидка и риск злоупотреблений — тем строже тип. Крупные бонусы делайте одноразовыми и персональными, небольшие имиджевые скидки можно оставить неограниченными.
Ограничение по числу и по пользователю
Помимо типа купона, охват регулируется условиями правила корзины. В конструкторе условий можно добавить проверку по группе пользователей — тогда скидка применится только зарегистрированным клиентам определённой группы, даже если код общий.
Ограничение «на пользователя» в стандартном модуле реализуется через связку механик:
- для строго персональных предложений — одноразовый тип плюс уникальный код каждому клиенту;
- для ограничения по группе — условие правила корзины по
Группа пользователя; - для лимита на количество заказов от одного человека — как правило, требуется доработка на событиях
OnSaleOrderBeforeSaved, где проверяется история применений купона данным покупателем.
Контроль применённых купонов
Отследить, кто и когда воспользовался промокодом, можно в админке и через API. В карточке правила корзины у каждого купона отображается статус и счётчик применений, а полная история хранится в таблице применённых купонов заказов.
- В разделе
Магазин → Маркетинг → Правила работы с корзинойоткрываете правило и видите список купонов с их состоянием. - Программно данные доступны через
\Bitrix\Sale\Internals\DiscountCouponTable(сами купоны и их счётчики) и связанные записи заказов. - Поле
USE_COUNTу купона показывает число фактических применений — по нему видно, исчерпан ли лимит.
Для маркетинговых отчётов удобно выгружать применения в разрезе заказов: так видно реальную конверсию промокода и сумму выданных скидок.
Итог
Тип купона в 1С-Битрикс задаёт правила игры: одноразовый — для персональных предложений с уникальным кодом, многоразовый — для акций с контролируемым лимитом, неограниченный — для публичных промокодов на срок. Скидку определяет правило корзины, а поведение кода — именно тип, поэтому их всегда настраивают в паре. Ограничения по пользователю и жёсткий контроль «один раз на человека» часто выходят за рамки штатных механик.
Если нужно выстроить сложную купонную логику, персональные лимиты или отчётность по применениям — мы проектируем и дорабатываем магазины на Битрикс под конкретные маркетинговые задачи, аккуратно расширяя стандартный модуль скидок без потери обновляемости.
Частые вопросы
Чем одноразовый купон отличается от многоразового?
Одноразовый списывается после первого же оформленного заказа и больше не действует ни для кого. Многоразовый работает заданное число раз, пока не исчерпан лимит применений.
Что значит неограниченный купон?
Это купон без счётчика применений — им можно пользоваться сколько угодно раз, пока активно правило корзины и не истёк срок действия. Ограничить его можно только датами и условиями правила.
Когда купон считается применённым?
В момент оформления заказа, а не оплаты. Поэтому даже неоплаченный отменённый заказ у одноразового купона уже спишет его — вернуть код можно только вручную в админке.
Как сделать код, работающий по одному разу на каждого клиента?
Штатно это делается генерацией серии уникальных одноразовых купонов — каждому клиенту свой код. Один общий код с лимитом на человека требует доработки на событиях оформления заказа.
Можно ли ограничить купон по группе пользователей?
Да, через условие правила корзины по группе пользователя. Тогда скидка применится только клиентам нужной группы, даже если сам код общий и публичный.
Где посмотреть, сколько раз использован купон?
В карточке правила корзины в разделе Магазин → Маркетинг → Правила работы с корзиной у каждого купона виден статус и счётчик. Программно данные доступны через DiscountCouponTable и поле USE_COUNT.
Суммируется ли многоразовый купон внутри одного заказа?
Нет. В рамках одного заказа купон уменьшает стоимость один раз, повторно в той же корзине он не применяется, даже если тип многоразовый.
Какой тип выбрать для крупной скидки?
Одноразовый с уникальным кодом на каждого получателя. Чем выше скидка и риск утечки, тем строже должен быть тип — неограниченные коды легко попадают на купонные агрегаторы.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.