Настройка сезонного ценообразования на 1С-Битрикс

Представьте: каталог из 10 000 позиций, сезонные наценки на зимние товары стартуют 1 октября. Ручное обновление цен — 800 человеко-часов в год. Ошибка в одной цене — потеря маржи или жалобы клиентов. Наш агент решает это за 10 минут с полным бэкапом и сбросом кэша. За 5 лет мы реализовали десятки
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка сезонного ценообразования на 1С-Битрикс
Простой
~1 день

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

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

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

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

Представьте: каталог из 10 000 позиций, сезонные наценки на зимние товары стартуют 1 октября. Ручное обновление цен — 800 человеко-часов в год. Ошибка в одной цене — потеря маржи или жалобы клиентов. Наш агент решает это за 10 минут с полным бэкапом и сбросом кэша.

За 5 лет мы реализовали десятки таких решений для каталогов от 1000 до 100 000 товаров. Сезонные изменения цен — это не только скидки, но и наценки: зимние куртки дорожают в октябре, новогодние наборы идут с наценкой в декабре, летние товары уценяются в августе. В Битрикс это решается через правила каталога с условием по дате или через плановые агенты, которые меняют цены по расписанию.

Почему стоит автоматизировать сезонные цены?

Ручное обновление цен на 50 000 товаров занимает 2-3 дня и чревато ошибками. Один пропущенный товар — потеря прибыли или недовольство клиентов. Агент делает это за 10 минут с полным бэкапом. В случае сбоя агент восстановит цены из резервной таблицы, исключив простои.

Как агент сезонного ценообразования гарантирует отказоустойчивость?

Перед любым изменением мы сохраняем исходные цены в таблицу bl_price_backup. Агент проверяет записи в bl_seasonal_pricing, где дата начала совпадает с сегодняшней, и применяет коэффициент. Если агент падает на середине, он просто не выставляет флаг applied — при следующем запуске он продолжит с того же места. После успешного применения всех батчей сбрасывается тегированный кэш.

Официальная документация 1С-Битрикс подтверждает: «Агенты выполняются системой по расписанию и могут быть использованы для автоматизации любых процессов».

Почему агентный подход эффективнее правил каталога для наценок?

Стандартные скидки каталога (правила в b_catalog_discount) не поддерживают наценки — только уменьшение цены. Для повышения цен мы создаём выделенный тип цены bl_season_price и агент, который по расписанию переключает товары на этот тип. Агент работает в 10 раз быстрее стандартного cron, потому что использует батчи по 500 записей и тегированный кэш.

Пример: агент сезонной наценки с бэкапом

Храним расписание в таблице bl_seasonal_pricing:

Поле Описание
name Название сезона («Зимняя коллекция»)
active_from Дата начала
active_to Дата окончания
modifier Коэффициент цены (1.15 = +15%)
iblock_section_id Раздел каталога (NULL = весь каталог)
applied Флаг, применено ли изменение

Агент проверяет записи, где active_from = TODAY и applied = 0, применяет коэффициент и ставит флаг. Перед изменением сохраняем исходные цены в bl_price_backup:

\Bitrix\Catalog\PriceTable::updateMulti( ['CATALOG_GROUP_ID' => 1, 'PRODUCT_ID' => $productIds], ['PRICE' => new \Bitrix\Main\DB\SqlExpression('PRICE * ?f', 1.15)] ); 

После обновления сбрасываем кэш: \Bitrix\Main\Data\Cache::clearByTag('b_catalog'). Для больших каталогов (10 000+ товаров) делаем батчами по 500 с паузами в 2 секунды.

Фрагмент кода агента (упрощённо)
class SeasonalPricingAgent { public static function apply(): string { $rows = \Bitrix\Seasonal\PricingTable::getList([ 'filter' => ['=ACTIVE_FROM' => date('Y-m-d'), '=APPLIED' => false], ])->fetchAll(); foreach ($rows as $row) { // сохраняем бэкап, обновляем цены, инвалидируем кэш } return 'SeasonalPricingAgent::apply();'; } } 

Сравнение подходов к сезонному ценообразованию

Метод Скидки Наценки Скорость применения на 10 000 товаров
Правила каталога Да, до -99% Нет Мгновенно (хранятся в БД)
Агент с бэкапом Да, любой коэффициент Да, любой модификатор ~2 минуты (с батчами и кэшем)
Гибрид (правила + агент) Да Да ~3 минуты (двойная запись)

Что входит в работу

  • Создание таблиц bl_seasonal_pricing и bl_price_backup с миграциями
  • Разработка агента применения и агента восстановления цен
  • Настройка правил каталога для скидочных периодов
  • Интеграция с кэшем (тегированный сброс)
  • Документация по установке и эксплуатации
  • Обучение администраторов
  • Поддержка 2 недели после запуска

Процесс работы

  1. Аналитика — изучаем каталог, сезонные циклы, текущую логику ценообразования
  2. Проектирование — выбираем метод (скидки, наценки, гибрид), определяем таблицы и агентов
  3. Реализация — пишем код, миграции, тесты (unit + интеграционные)
  4. Тестирование — проверяем на staging с копией каталога, замеряем производительность
  5. Деплой — выкатываем на прод, мониторим первые сутки

Наши метрики

  • 5+ лет опыта с Битрикс и Битрикс24
  • 100+ проектов по автоматизации ценообразования
  • Средняя экономия бюджета клиента — до $360–520 за сезон за счёт отказа от ручного труда
  • Снижение трудозатрат на сумму более $270–390
  • 98% аптайм агентов (мониторинг через Bitrix\Main\Diag\ExceptionHandler)

Типичные ошибки и как их избежать

  • Потеря данных при сбое агента — всегда делайте бэкап исходных цен перед изменением
  • Зависание кэша — после массового обновления цены на витрине не меняются. Решение: clearByTag с делением на батчи
  • Некорректное округление — для цен с копейками используйте Math::round($price, 2) при сохранении

Получите консультацию по вашему проекту — мы подберём оптимальное решение. Свяжитесь с нами, чтобы обсудить проект бесплатно. Мы оценим объём работ и предложим решение для вашего каталога.