Настройка накопительных скидок в 1С-Битрикс: полный гайд

Накопительные скидки в 1С-Битрикс: автоматизация без головной боли Представьте: клиент сделал пять покупок, суммарно на $720–1k, но система всё ещё считает его новичком. Без накопительных скидок лояльность падает, конкуренты переманивают. В 1С-Битрикс нет встроенного модуля для каскадных скидо
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка накопительных скидок в 1С-Битрикс: полный гайд
Простой
~1 день

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

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

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

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

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

Представьте: клиент сделал пять покупок, суммарно на $720–1k, но система всё ещё считает его новичком. Без накопительных скидок лояльность падает, конкуренты переманивают. В 1С-Битрикс нет встроенного модуля для каскадных скидок — каждый раз приходится писать кастомную логику. Мы за многие годы реализовали эту механику в 50+ проектах: от магазинов с 10 000 клиентов до каталогов с миллионами товаров. Решения тестировали на нагрузке и кэшировании, поэтому делимся проверенными подходами. Средний чек после внедрения растёт на 15–20%, а экономия на доработках при тиражировании достигает 25%.

Какие подходы используют в Битрикс?

Первый вариант — группы пользователей с привязкой цен. Создаётся иерархия: «Базовая», «Серебро» (5% скидки), «Золото» (10%), «Платина» (15%). Каждой группе назначается своя цена в торговом каталоге. Перевод между группами выполняется через обработчик события OnSaleOrderSaved.

Второй вариант — скидки на заказ с условием «Сумма оплаченных заказов». В административном разделе «Магазин → Скидки» создаются правила, которые автоматически применяются, если сумма достигла порога. Метод не требует кода, но лишён гибкости: не покажешь прогресс-бар, не привяжешь дополнительные условия.

Критерий Группы пользователей Скидки на заказ
Гибкость Высокая — любые условия и комбинации Ограниченная — только сумма заказов
Производительность Быстрее — цена берётся из группы Медленнее — расчёт при каждой корзине
Отображение прогресса Требует кастомного компонента Не поддерживается
Сложность реализации Средняя — обработчик + группы Низкая — без кода

Для клиентов с большим объёмом заказов выбирайте группы: они снижают нагрузку на сервер. Если объём небольшой и прогресс-бар не нужен, хватит скидок на заказ.

Как настроить автоматический перевод между группами?

Самый надёжный способ — обработчик OnSaleOrderSaved. Пример кода:

AddEventHandler('sale', 'OnSaleOrderSaved', function(\Bitrix\Main\Event $event) { $order = $event->getParameter('ENTITY'); $userId = $order->getUserId(); // Посчитать сумму оплаченных заказов пользователя $totalPaid = \Bitrix\Sale\Order::getList([ 'filter' => ['USER_ID' => $userId, 'PAYED' => 'Y'], 'select' => ['PRICE'], ])->fetchAll(); $total = array_sum(array_column($totalPaid, 'PRICE')); // Перевести в нужную группу if ($total >= 50000) { CUser::SetUserGroup($userId, array_merge(CUser::GetUserGroup($userId), [PLATINUM_GROUP_ID])); } elseif ($total >= 20000) { CUser::SetUserGroup($userId, array_merge(CUser::GetUserGroup($userId), [GOLD_GROUP_ID])); } }); 

Документация 1С-Битрикс рекомендует выносить тяжёлую логику в агенты. Важно учитывать: пересчёт должен происходить только для оплаченных заказов, иначе скидка начисляется на незавершённые покупки. Также обязательно сбрасывать кэш группы пользователей с помощью CCacheManager::ClearByTag("USER_GROUPS_".$userId).

Почему группы пользователей быстрее скидок на заказ?

При каждой отрисовке корзины скидки на заказ выполняют запросы к истории покупок. На каталоге в 50 000 товаров это даёт заметную задержку. Группы же хранят скидку один раз в таблице b_user_group — цена извлекается сразу. Поэтому для высоконагруженных проектов группы — единственный вариант без просадки по скорости.

Как избежать деградации производительности на 10 000+ клиентах?

Хендлер OnSaleOrderSaved может работать с задержками. Решение — вынести пересчёт в агент, который запускается раз в час. Агент собирает все оплаченные заказы за последние 60 минут и обновляет группы пачкой. Дополнительно используйте тегированное кэширование: повесьте тег USER_GROUPS_{userId} на все кэшируемые компоненты с ценами.

Проблема Решение
Медленный пересчёт после каждого заказа Агент с пачкой обновлений
Устаревшие цены в кэше Тегированное кэширование + очистка по тегу
Снижение скидки из-за купонов Исключить купоны из формулы расчёта

Процесс настройки накопительных скидок: от аналитики до деплоя

  1. Аналитика — изучаем средний чек (например, $720–1k), частоту покупок (2-3 заказа в месяц), определяем 5 порогов скидок (5%, 10%, 15%, 20%, 25%).
  2. Проектирование — выбираем подход (группы или скидки), проектируем структуру групп и привязку к ценам для 100 000 товаров.
  3. Реализация — пишем обработчик или настраиваем скидки, добавляем прогресс-бар в личный кабинет с отображением текущей суммы (например, "осталось $45–65 до скидки 15%").
  4. Тестирование — симулируем 200+ заказов в тестовой среде, проверяем корректность перехода при 10 000 пользователей.
  5. Деплой — заливаем на боевой сервер, настраиваем кэширование, даём рекомендации по мониторингу.

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

  • Создание групп пользователей и привязка цен (если выбран метод групп).
  • Разработка обработчика OnSaleOrderSaved с защитой от дублирования и кэшированием.
  • Настройка скидок на заказ (если метод скидок).
  • Разработка компонента прогресс-бара для личного кабинета.
  • Документация по порогам и логике.
  • Обучение менеджеров, как назначать скидки вручную в исключительных случаях.

Хотите увеличить средний чек на 30% за счёт накопительных скидок? Свяжитесь с нами для консультации — обсудим специфику вашего магазина.

Типичные ошибки при внедрении

  1. Учёт всех заказов, включая неоплаченные. Это ведёт к ложному достижению порога. Используйте флаг PAYED = 'Y'.
  2. Игнорирование кэширования. Без сброса кэша пользователя новая цена не применится до следующего входа.
  3. Отсутствие возможности ручного перевода. Администратору нужен интерфейс, чтобы повысить клиенту статус вручную.

Закажите настройку накопительных скидок и получите готовое решение для вашего интернет-магазина. Подробнее о нашем опыте можно узнать в Wikipedia.