Разработка модуля управления акциями 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Разработка модуля управления акциями 1С-Битрикс
Средний
~1-2 недели
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1330
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    924
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    672
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    815
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    714
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1051

Штатный модуль sale содержит механизм скидок через b_sale_discount — правила, основанные на условиях корзины. Это мощный инструмент, но он заточен под автоматические скидки на уровне заказа. Маркетинговые акции с баннерами, периодами, счётчиками участников, лимитами использования, механикой «купи 2 — получи 3» — всё это либо не реализуется стандартными средствами, либо требует громоздких обходных решений. Клиенты часто приходят с запросом: «сделайте акцию «купи 2 по цене 1», но в Битриксе это не скидка на товар, а полноценный бандл. Стандартные возможности не дают гибкости для условий на уровне корзины — например, скидка только для зарегистрированных пользователей или при достижении суммы с определённым артикулом. Всё это упирается в необходимость отдельного модуля. За 5+ лет разработки на Битрикс мы накопили десятки кейсов, где стандартные скидки не спасали. Модуль управления акциями закрывает этот пробел — предлагаем готовую ORM-модель, гибкий конструктор условий и интеграцию с любыми каналами продаж. Используйте готовый модуль — и забудьте о головной боли с кастомными событиями. Получите консультацию — мы поможем подобрать оптимальную конфигурацию.

Почему стандартных скидок недостаточно?

b_sale_discount — это линейные правила: скидка на сумму, на товар, на группу. Всё, что выходит за рамки — акции с купонами, бандлы, подарки при выполнении кастомных условий — требует либо костыльных событий, либо внешнего модуля. Наш подход: отдельная таблица b_vendor_promo_action с JSON-условиями и вознаграждением. Это даёт гибкость без оверхеда. Экономия времени разработки — до 60% по сравнению с кастомными решениями.

Модель данных

Модуль vendor.promo со следующими таблицами:

  • b_vendor_promo_action — акции: id, code, name, type (discount/gift/bundle/coupon/cashback), date_from, date_to, is_active, priority, usage_limit, usage_count, conditions (JSON), reward (JSON), banner_image_id, description
  • b_vendor_promo_coupon — купоны: id, action_id, code, discount_type (percent/fixed), discount_value, usage_limit, usage_count, user_id (null = общий), expires_at, is_active
  • b_vendor_promo_usage — история применения: id, action_id, coupon_id, order_id, user_id, discount_amount, applied_at
  • b_vendor_promo_gift — подарочные товары акции: id, action_id, product_id, quantity

Типы акций

  • Скидка по условию: "conditions": {"min_sum": 3000, "iblock_section_id": 12} — скидка 10% на заказы от 3000 рублей в разделе «Электроника».
  • Комплект (bundle): "type": "bundle" — при добавлении товара A в корзину товар B добавляется автоматически со скидкой. Реализуется через событие OnSaleBasketItemAdd.
  • Купон: генерация уникальных кодов в b_vendor_promo_coupon, проверка при оформлении заказа.
  • Подарок: при выполнении условий корзины — автоматически добавляется товар из b_vendor_promo_gift с ценой 0.
  • Cashback: начисление баллов программы лояльности вместо скидки.

Как работает проверка условий?

class PromoChecker
{
    public function check(PromoAction $action, \Bitrix\Sale\Order $order): CheckResult
    {
        $conditions = $action->getConditions();
        $basket     = $order->getBasket();

        if (isset($conditions['min_sum']) && $basket->getPrice() < $conditions['min_sum']) {
            return CheckResult::fail('Минимальная сумма заказа не достигнута');
        }

        if ($action->getUsageLimit() && $action->getUsageCount() >= $action->getUsageLimit()) {
            return CheckResult::fail('Лимит использования акции исчерпан');
        }

        return CheckResult::success();
    }
}

Приоритет и совместимость акций

Несколько акций могут быть активны одновременно. Параметр priority определяет порядок применения. Поле exclusive в настройках акции означает, что другие акции с ней не совмещаются.

Логика: активные акции сортируются по убыванию приоритета. Для каждой проверяется CheckResult. Если акция exclusive и прошла проверку — применяется, цикл прерывается.

Генератор купонов

Массовая генерация уникальных кодов для email-рассылок:

$generator = new CouponGenerator($action);
$coupons   = $generator->generate(1000, [
    'length'  => 8,
    'prefix'  => 'SALE-',
    'charset' => 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789',
]);
// batch insert в b_vendor_promo_coupon + CSV-файл для экспорта

Символы, похожие на цифры (O/0, I/1), исключаются из charset, чтобы избежать ошибок при ручном вводе.

Статистика акций

В административном интерфейсе по каждой акции видны:

  • Количество применений и процент от лимита
  • Суммарная скидка за период
  • Конверсия: сколько пользователей добавили купон к незавершённому заказу vs завершили оплату
  • Топ товаров, попавших под акцию
  • Динамика использования по дням (график)

Административный интерфейс

  • Список акций с фильтром по статусу, типу, дате
  • Конструктор условий и вознаграждений
  • Управление купонами: генерация пачками, деактивация, экспорт в CSV
  • Отчёт по акции с разбивкой по заказам

Что входит в разработку модуля?

Компонент Описание
ORM-таблицы Готовые D7-сущности для акций, купонов, использования
Конструктор условий Интерфейс для задания правил корзины (сумма, раздел, товар, пользователь)
Виды вознаграждений Скидка процентная/фиксированная, подарок, бандл, купон, cashback
Генератор купонов Массовая генерация с дайджест-проверкой и экспортом в CSV
Совместимость акций Приоритеты, эксклюзивность, тегирование
Статистика Отчёты по каждой акции: количество применений, скидка, конверсия
Административный интерфейс Фильтры, отчёты, управление купонами
Тестирование Нагрузочное тестирование с имитацией 1000+ одновременных проверок

Сроки разработки

Этап Срок
ORM-таблицы, модель 1 день
Проверка условий, скидки 2 дня
Подарки и бандлы 2 дня
Генератор купонов 1 день
Приоритеты и совместимость 1 день
Отчёты и статистика 1 день
Административный интерфейс 2 дня
Интеграционное тестирование 1 день

Итого: 11 рабочих дней под ключ. Интеграция с email-платформой — дополнительно 1–2 дня.

Сравнение стандартного подхода и нашего модуля

Критерий Стандартные скидки Наш модуль
Акция «купи 2 — получи 3» Требует событий и костылей Настраивается за 5 минут
Купоны для email-рассылок Нет встроенного генератора Генерация пачками 1000+ кодов
Приоритеты акций Не поддерживаются Встроенные приоритеты и exclusive
Отчёты по акциям Только базовые Конверсия, динамика, топ товаров

Свяжитесь с нами — мы оценим ваш проект и предложим оптимальное решение. Опираясь на 5+ лет опыта с Битрикс, гарантируем работоспособность модуля и его встраиваемость в существующую архитектуру. Закажите разработку модуля управления акциями и получите гибкий инструмент для маркетинговых кампаний.

Ссылка на официальную документацию: ORM D7. 1С-Битрикс: D7 ORM