Настройка купонов и промокодов 1С-Битрикс
Купоны в Битрикс — это коды, при вводе которых активируется связанное маркетинговое правило. Купон не работает сам по себе: он всегда привязан к правилу скидки в b_sale_discount. Управление купонами: Магазин → Маркетинг → Купоны.
Типы купонов
| Тип | Описание | Таблица |
|---|---|---|
| Общий (многоразовый) | Один код, несколько пользователей, неограниченное количество применений | b_sale_discount_coupon, TYPE = 1 |
| Уникальный разовый | Один код — одно использование на всех | TYPE = 2 |
| Уникальный для пользователя | Один код — одно использование для конкретного пользователя | TYPE = 3 |
Создание купона через интерфейс
Магазин → Маркетинг → Скидки и акции → [выбрать правило] → Купоны → Добавить:
- Код купона — вводится вручную или генерируется автоматически
- Тип — из таблицы выше
- Дата активации/деактивации — опционально
- Максимальное количество применений — для ограниченных акций
Для массовой генерации уникальных купонов (например, 1000 кодов для email-рассылки) используется встроенный генератор в разделе купонов или программная генерация через \Bitrix\Sale\DiscountCouponsManager.
Программная генерация купонов
$coupon = \Bitrix\Sale\DiscountCouponsManager::generateCoupon(true); // true = уникальный
\Bitrix\Sale\Internals\DiscountCouponTable::add([
'DISCOUNT_ID' => $discountId,
'ACTIVE' => 'Y',
'COUPON' => $coupon,
'TYPE' => \Bitrix\Sale\Internals\DiscountCouponTable::TYPE_ONCE,
'MAX_USE' => 1,
]);
Применение купона в корзине
Купон вводится через форму в корзине. Стандартный компонент bitrix:sale.basket.basket содержит поле ввода купона. При нажатии «Применить» вызывается \Bitrix\Sale\DiscountCouponsManager::add($coupon), который проверяет код и активирует связанное правило.
Одновременно можно применить несколько купонов, если это не запрещено настройками правил. Флаг «Прекратить обработку» (LAST_DISCOUNT = Y) в правиле блокирует применение других скидок после этого купона.
Отслеживание использования
Использованные купоны фиксируются в b_sale_discount_coupon (USE_COUNT, DATE_LAST_USE). Для аналитики: сколько раз применён купон, по каким заказам, на какую сумму — эти данные можно получить джойном b_sale_discount_coupon и b_sale_order_discount.
Сроки выполнения
Настройка системы купонов с одним типом скидки и полем ввода в корзине — 3–5 часов. Массовая генерация + интеграция с рассылкой — 1 рабочий день.







