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

Настройка персональных скидок по группам клиентов 1С-Битрикс Менеджер создаёт «скидку 15% для VIP-клиентов» в админке Битрикса, назначает её группе пользователей. Заходит тестовый VIP-аккаунт — скидка не применяется. Причина: скидка создана в «Торговом каталоге», но пользователь не входит в нужну
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка персональных скидок по группам клиентов 1С-Битрикс
Простой
~1 день

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

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

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1459
  • 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С Предприятие для компании МИРСАНБЕЛ
    882
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    808
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1163

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

Менеджер создаёт «скидку 15% для VIP-клиентов» в админке Битрикса, назначает её группе пользователей. Заходит тестовый VIP-аккаунт — скидка не применяется. Причина: скидка создана в «Торговом каталоге», но пользователь не входит в нужную группу, потому что менеджер перепутал «группу покупателей» (модуль sale) с «группой пользователей» (модуль main). В Битриксе это разные сущности, и путаница между ними — источник большинства проблем с персональными скидками.

Наша команда за 7 лет работы с Битрикс настроила системы персональных скидок для более чем 30 интернет-магазинов различного профиля: от B2B-порталов до розничных маркетплейсов. Мы досконально знаем архитектуру скидок и типовые ошибки, которые допускают разработчики при интеграции. Правильная настройка увеличивает средний чек на 15–25% и удерживает VIP-клиентов, что напрямую отражается на LTV. Наши решения включают гибкую систему условий, учитывающих статус клиента, историю покупок и корзину, а также интеграцию с CRM для сегментации аудитории.

Архитектура скидок в Битриксе

Модуль sale управляет скидками через \Bitrix\Sale\Discount. Скидки могут применяться к:

  • Группам пользователей (b_user_group — таблица main-модуля)
  • Отдельным пользователям (через расширенные условия)
  • Покупателям с определённой историей заказов (накопительные скидки)

Для назначения скидки группе: в административном интерфейсе «Магазин → Правила работы с ценами» — выбрать тип «Скидка на товар» или «Скидка на заказ», в условиях указать «Покупатель состоит в группе». Группы берутся из b_user_group.

Создание группы и привязка пользователей

Группы пользователей создаются в «Настройки → Группы пользователей». Программно:

$group = new \CGroup(); $groupId = $group->Add([ 'NAME' => 'VIP-клиенты', 'DESCRIPTION' => 'Скидка 15% на весь каталог', 'ACTIVE' => 'Y', 'SORT' => 100, ]); 

Добавить пользователя в группу:

$user = new \CUser(); $user->Update($userId, ['GROUP_ID' => array_merge($currentGroups, [$groupId])]); 

Или через CUser::SetUserGroup($userId, $groups) — перезаписывает все группы, поэтому обязательно передавать текущие группы вместе с новой.

Автоматическое назначение группы по условиям

Для автоматического перевода покупателя в VIP-группу при достижении порога суммы заказов — обработчик события OnSaleOrderSaved:

AddEventHandler('sale', 'OnSaleOrderSaved', function(\Bitrix\Main\Event $event) { $order = $event->getParameter('ENTITY'); $userId = (int)$order->getUserId(); if (!$userId) return; // Считаем сумму оплаченных заказов $total = 0; $res = \Bitrix\Sale\Order::getList([ 'filter' => ['USER_ID' => $userId, 'PAYED' => 'Y'], 'select' => ['PRICE'], ]); while ($row = $res->fetch()) { $total += $row['PRICE']; } $vipThreshold = 50000; // долларов $vipGroupId = 5; $dbUser = \CUser::GetByID($userId)->Fetch(); $currentGroups = array_map('intval', explode(',', $dbUser['GROUP_IDS'] ?? '')); if ($total >= $vipThreshold && !in_array($vipGroupId, $currentGroups)) { $currentGroups[] = $vipGroupId; (new \CUser())->Update($userId, ['GROUP_ID' => $currentGroups]); } }); 

Скидки на торговые предложения (SKU)

Если скидка назначена на товар-родитель, она применяется и к торговым предложениям. Но если нужна скидка только на конкретный SKU — условие в правиле цены должно указывать на инфоблок предложений. В настройках правила: «Тип инфоблока» → выбрать инфоблок предложений, раздел или конкретные элементы.

Отображение персональной цены

Стандартный компонент catalog.element отображает цену через $arResult['CATALOG_PRICE_*'], где * — тип цены. Скидки для групп применяются через \CCatalogProduct::GetOptimalPrice(), который учитывает правила цен и группы текущего пользователя. Если страница кешируется — цена в кеше может быть без скидки.

Решение: выносить блок цены в отдельный некешируемый компонент или запрашивать актуальную цену через AJAX после загрузки страницы. Второй подход лучше для производительности при высоком трафике.

Детальное описание процесса

Интеграция требует тщательного планирования и анализа текущих процессов в вашей компании. Мы проводим аудит существующих систем, определяем точки интеграции и возможные конфликты. На каждом этапе предоставляем подробную документацию и проводим тестирование на staging-среде перед запуском в production. Наши решения разработаны с учётом лучших практик индустрии и позволяют значительно снизить операционные затраты.

Наша гарантия качества

Мы берём на себя полную ответственность за качество выполненной работы. В течение 12 месяцев после завершения проекта исправляем любые обнаруженные проблемы абсолютно бесплатно. Техническая поддержка включает консультации, обучение вашей команды и помощь при возникновении вопросов. Каждый проект завершается итоговым отчётом с описанием реализованного функционала, рекомендациями по оптимизации и планом развития системы.

Примеры успешных проектов

За время работы мы реализовали интеграции для компаний разного размера: от небольших интернет-магазинов до крупных оптовых дистрибьюторов. Каждый проект требовал индивидуального подхода, и мы гордимся результатом, который значительно улучшил эффективность работы наших клиентов.

Преимущества нашего подхода

Мы обеспечиваем комплексное решение, а не отдельные исправления. Каждый проект включает документирование, тестирование и обучение команды. Нашим клиентам нравится, что мы не просто выполняем работу, но и объясняем каждый шаг процесса, давая возможность вашей команде в будущем самостоятельно поддерживать систему. Со своей стороны, мы гарантируем помощь в течение года после завершения проекта.

Контакты и следующие шаги

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