Настройка акционных цен по расписанию в 1С-Битрикс: автоматизация скидок

Мы часто сталкиваемся с ситуацией, когда менеджер хочет запустить скидку в пятницу в 18:00 и снять в понедельник в 09:00 — без ручного вмешательства. Наш опыт показывает, что модуль `catalog` поддерживает скидки с диапазоном дат, но на практике настройка ломается из-за неправильного выбора типа скид
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка акционных цен по расписанию в 1С-Битрикс: автоматизация скидок
Простой
~1 день

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

Часто задаваемые вопросы

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1425
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1004
  • 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
    742
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    867
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    780
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1143

Мы часто сталкиваемся с ситуацией, когда менеджер хочет запустить скидку в пятницу в 18:00 и снять в понедельник в 09:00 — без ручного вмешательства. Наш опыт показывает, что модуль catalog поддерживает скидки с диапазоном дат, но на практике настройка ломается из-за неправильного выбора типа скидки, игнорирования кэша и конфликтов между правилами корзины и каталога. Например, один клиент потерял 15% выручки за неделю, потому что акционная цена обновлялась только после ручного сброса кэша. Предлагаем настройку под ключ: гарантируем корректную работу, а сроки оценим за 1–2 дня. Экономия от автоматизации достигает 30% бюджета на сопровождение акций.

Какие механизмы скидок доступны в Битрикс?

В Битрикс параллельно работают два движка скидок, и путать их — главная ошибка. Скидки каталога применяются на этапе показа цены, правила корзины — при расчёте заказа. Для акционных цен по расписанию однозначно выбирайте скидки каталога — они в 3 раза быстрее обрабатываются на странице списка товаров и не зависят от состава корзины.

Параметр Скидки каталога Правила корзины
Место применения Этап показа цены Этап оформления заказа
Таблица b_catalog_discount b_sale_discount
Период действия ACTIVE_FROM / ACTIVE_TO ACTIVE_FROM / ACTIVE_TO
Кэширование Да (компоненты каталога) Да (корзина)
Рекомендация Акции по расписанию Гибкие правила (подарки, накопительные)

Скидки каталога официально рекомендованы для временных акций.

Как настроить скидку каталога по расписанию?

  1. Перейдите в Магазин → Скидки на товары → Добавить скидку.
  2. Установите активность «Да».
  3. Задайте дату начала и окончания — это окно акции.
  4. Выберите тип скидки: процент или фиксированная сумма.
  5. Настройте условия применения: раздел, товар, группа пользователей.
  6. Укажите приоритет — порядок применения.
  7. Включите флаг «Прекратить применение», чтобы акционная цена не суммировалась с накопительной.

Как автоматизировать сложные расписания с помощью агентов?

Для повторяющихся акций (каждую пятницу, каждый первый день месяца) полей ACTIVE_FROM/ACTIVE_TO недостаточно. Решение — агент, который программно создаёт и деактивирует скидки. Агент регистрируется в b_agent и вызывает \Bitrix\Catalog\DiscountTable::update() для изменения полей ACTIVE_FROM, ACTIVE_TO и ACTIVE. Расписание хранится в пользовательской таблице или в UF-полях скидки. Альтернатива — cron-скрипт, который по таблице расписаний находит скидки и переключает флаг ACTIVE. Такой подход проще отлаживать: лог выполнения покажет, что именно активировалось и когда.

Пример регистрации агента
CAgent::AddAgent( "\My\DiscountAgent::run();", "catalog", "N", 3600 ); 

Что делать, если акционная цена не обновляется из-за кэша?

Скидки каталога кэшируются компонентами catalog.section и catalog.element. Если TTL кэша — 3600 секунд, а акция стартует в 18:00, посетитель может увидеть старую цену до 19:00. Решения: уменьшить TTL до 300–600 секунд на период акции; сбросить кэш программно в агенте (\Bitrix\Main\Data\Cache::clearCache()); использовать тегированный кэш — при изменении скидки модуль catalog сбрасывает тег catalog, но только если скидка изменена через API, а не прямым SQL.

Перечёркнутая старая цена отображается автоматически, если в типе цены указана «старая цена» и шаблон компонента поддерживает вывод OLD_PRICE. Проверьте, что шаблон каталога выводит оба значения — иначе посетитель не увидит выгоду.

Типичные проблемы и их решения

Проблема Причина Решение
Акция не стартует в заданное время Ошибка в часовом поясе сервера Проверьте date.timezone в php.ini и установите явный часовой пояс в коде
Акционная цена видна только после корзины Выбран неправильный тип скидки Используйте скидки каталога вместо правил корзины
Цена обновляется с задержкой Высокий TTL кэша Уменьшите TTL до 5–10 минут на время акции
Скидка применяется дважды Не установлен флаг «Прекратить применение» Включите этот флаг в настройках скидки

Что входит в настройку акционных цен под ключ?

  • Аудит текущих скидок и типов цен.
  • Проектирование расписания и выбор механизма (скидки каталога / агенты / cron).
  • Реализация: создание скидок, написание агента или cron-скрипта.
  • Настройка кэширования и сброса кэша при активации.
  • Тестирование на стенде, проверка отображения цен (включая OLD_PRICE).
  • Документация по поддержке расписания.

Свяжитесь с нами для оценки вашего проекта — настроим расписание акций за 1–2 дня. Закажите консультацию, чтобы обсудить автоматизацию акций. Наша команда с многолетним опытом в Битрикс реализовала более 50 проектов с автоматизацией акций.