Главная » Интернет-магазин » Заказы » Купоны и промокоды в Битрикс

Купоны и промокоды в Битрикс

Схема применения купона и промокода в интернет-магазине 1С-Битрикс

Купоны и промокоды — типовой механизм модуля продаж для точечных разовых скидок, не требующих постоянного правила. Разберём, как они устроены в 1С-Битрикс, чем отличаются от обычных правил скидок каталога и на что обратить внимание при настройке ограничений.

Где настраиваются купоны

Купоны создаются в разделе Маркетинг → Скидки → Купоны и всегда привязаны к конкретному правилу скидки — сам купон не задаёт размер скидки напрямую, он лишь активирует существующее правило при вводе кода покупателем в корзине.

Одноразовые и многоразовые купоны

Тип купона определяет, сколько раз он может быть использован: одноразовый деактивируется сразу после первого успешного применения, многоразовый допускает использование заданное число раз или без ограничения по количеству, но чаще всего с ограничением по сроку действия. Выбор типа стоит делать исходя из маркетингового сценария: персональный промокод для конкретного клиента — одноразовый, промокод для массовой email-рассылки — многоразовый с общим лимитом.

Нужна помощь с Битрикс?





    Программная генерация купонов

    <?php
    
    use Bitrix\Main\Loader;
    
    Loader::includeModule('sale');
    
    $couponData = CSaleCoupon::Add([
        'DISCOUNT_ID' => $discountId,
        'ACTIVE' => 'Y',
        'TYPE' => CSaleCoupon::TYPE_ONE_TIME,
        'ACTIVE_FROM' => date('d.m.Y'),
        'ACTIVE_TO' => date('d.m.Y', strtotime('+30 days')),
    ]);
    
    echo $couponData['COUPON']; // сгенерированный код купона

    Программная генерация полезна для сценариев вроде "промокод на день рождения" или "купон за подписку на рассылку", где код должен создаваться автоматически по событию, а не вводиться вручную администратором в интерфейсе.

    Проверка купона перед применением

    <?php
    
    $coupon = CSaleCoupon::GetByCoupon($couponCode);
    
    if (!$coupon || $coupon['ACTIVE'] !== 'Y') {
        // купон не найден или деактивирован
    }
    
    if ($coupon['ACTIVE_TO'] && strtotime($coupon['ACTIVE_TO']) < time()) {
        // срок действия истёк
    }

    При кастомной форме ввода купона (не через штатный компонент корзины) эти проверки нужно продублировать вручную — штатный компонент делает их сам, но при написании собственной логики оформления заказа ответственность за проверку переходит к разработчику.

    Ограничение купона по категории или сумме заказа

    Само правило скидки, к которому привязан купон, может ограничивать область действия — конкретным разделом каталога, минимальной суммой заказа, определённой группой пользователей. Купон в этом случае лишь активирует правило, но не расширяет и не сужает его условия — расхождение между ожиданием "купон даёт скидку на всё" и фактическим ограничением правила часто становится источником обращений в поддержку от покупателей.

    Комбинирование нескольких купонов

    По умолчанию поведение при применении нескольких купонов одновременно (если корзина это допускает) зависит от настроек совместного применения скидок в разделе Маркетинг → Скидки → Настройки. Без явной настройки суммирования купоны могут применяться не так, как ожидает бизнес-логика магазина, — например, взаимно исключать друг друга там, где ожидалось сложение скидок.

    Частые ошибки

    • Проверка купона пропущена в кастомной форме оформления. Истёкший или деактивированный купон принимается без ошибки.
    • Ожидание, что купон переопределяет условия правила скидки. Купон только активирует правило, а не меняет его область действия.
    • Не настроено поведение при нескольких купонах в корзине. Непредсказуемый результат вместо ожидаемого суммирования или выбора большей скидки.

    Итог

    Купон в 1С-Битрикс — это способ активации существующего правила скидки по коду, а не самостоятельная сущность со своими условиями. При программной генерации и кастомных формах ввода важно вручную дублировать проверки активности и срока действия, которые штатный компонент корзины делает автоматически.

    Нужна помощь с Битрикс?

    Исправим ошибку, доработаем сайт, ускорим Битрикс или поможем разобраться с проблемой.

    Услуги
    Инструменты
    База знаний