Настройка цен по объему заказа 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка цен по объему заказа 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • 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
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка цен по объему заказа 1С-Битрикс

Оптовые скидки по объёму — стандартная задача для B2B-магазинов: купи 10 штук — одна цена, 50 штук — дешевле, от 100 — минимальная цена. В Битрикс это реализуется через систему типов цен или через скидки каталога с условиями по количеству. Оба подхода рабочие, но с разной механикой.

Подход 1: Типы цен по количеству

В каталоге Битрикс можно создать несколько типов цен (b_catalog_group): «Розница», «Оптовая 10+», «Оптовая 50+». Для каждого товара заводятся несколько записей в b_catalog_price с разными CATALOG_GROUP_ID. Пользователям назначаются группы, каждая группа видит свой тип цены.

Проблема: группы пользователей назначаются заранее, а не динамически при достижении порога в корзине. Метод подходит для постоянных оптовых клиентов, но не для разовых накопительных скидок «в этом заказе».

Подход 2: Скидки каталога с условием по количеству

Более гибкий вариант — скидки через b_catalog_discount. В административном разделе: «Магазин → Правила каталога» → создаём правило с условием «Количество товара >=» и действием «Уменьшить цену товара на X%».

Структура скидки:

  • Условие: catalog_PRODUCT_QUANTITY >= 10 (количество конкретного товара в корзине)
  • Действие: DISCOUNT_PERCENT = 10 (скидка 10%)
  • Приоритет: несколько правил для разных порогов

Битрикс применяет скидки при пересчёте корзины через \Bitrix\Sale\Discount. Важно: условие по количеству проверяется на уровне позиции в корзине, а не всей корзины. Для суммарного объёма заказа (все товары вместе) нужны правила корзины из b_sale_discount.

Подход 3: Объёмные скидки через правила корзины

Правила корзины (b_sale_discount) позволяют задать условие «Сумма заказа >=» или написать собственное условие через PHP. Для порогов по суммарному количеству — создаём правило с кастомным условием:

Тип условия: "Собственное условие"
Класс условия: наследник \Bitrix\Sale\Discount\Condition\Base
Логика: подсчитать суммарное количество товаров в корзине >= N

Это требует написания PHP-класса и регистрации его через Bitrix\Sale\Discount\Discount::registerConditionsList().

Отображение шкалы скидок на странице товара

Покажите покупателю шкалу: 1–9 шт — 100 руб/шт, 10–49 шт — 90 руб/шт, от 50 шт — 80 руб/шт. Данные для шкалы берутся из b_catalog_price (при подходе с типами цен) или вычисляются из b_catalog_discount через \Bitrix\Catalog\DiscountTable. Шкала рендерится в шаблоне компонента catalog.element как HTML-таблица.

Что настраиваем

  • Типы цен в b_catalog_group и заполнение b_catalog_price для оптовых порогов (для B2B с фиксированными группами)
  • Правила каталога в b_catalog_discount с условиями по количеству (для динамических порогов)
  • Шаблон отображения шкалы скидок на странице товара
  • Корректное отображение итоговой цены в корзине при смене количества (AJAX-пересчёт)