Мы часто сталкиваемся с ситуацией, когда менеджер хочет запустить скидку в пятницу в 18:00 и снять в понедельник в 09:00 — без ручного вмешательства. Наш опыт показывает, что модуль catalog поддерживает скидки с диапазоном дат, но на практике настройка ломается из-за неправильного выбора типа скидки, игнорирования кэша и конфликтов между правилами корзины и каталога. Например, один клиент потерял 15% выручки за неделю, потому что акционная цена обновлялась только после ручного сброса кэша. Предлагаем настройку под ключ: гарантируем корректную работу, а сроки оценим за 1–2 дня. Экономия от автоматизации достигает 30% бюджета на сопровождение акций.
Какие механизмы скидок доступны в Битрикс?
В Битрикс параллельно работают два движка скидок, и путать их — главная ошибка. Скидки каталога применяются на этапе показа цены, правила корзины — при расчёте заказа. Для акционных цен по расписанию однозначно выбирайте скидки каталога — они в 3 раза быстрее обрабатываются на странице списка товаров и не зависят от состава корзины.
| Параметр | Скидки каталога | Правила корзины |
|---|---|---|
| Место применения | Этап показа цены | Этап оформления заказа |
| Таблица | b_catalog_discount |
b_sale_discount |
| Период действия | ACTIVE_FROM / ACTIVE_TO |
ACTIVE_FROM / ACTIVE_TO |
| Кэширование | Да (компоненты каталога) | Да (корзина) |
| Рекомендация | Акции по расписанию | Гибкие правила (подарки, накопительные) |
Скидки каталога официально рекомендованы для временных акций.
Как настроить скидку каталога по расписанию?
- Перейдите в Магазин → Скидки на товары → Добавить скидку.
- Установите активность «Да».
- Задайте дату начала и окончания — это окно акции.
- Выберите тип скидки: процент или фиксированная сумма.
- Настройте условия применения: раздел, товар, группа пользователей.
- Укажите приоритет — порядок применения.
- Включите флаг «Прекратить применение», чтобы акционная цена не суммировалась с накопительной.
Как автоматизировать сложные расписания с помощью агентов?
Для повторяющихся акций (каждую пятницу, каждый первый день месяца) полей 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 проектов с автоматизацией акций.







