Модуль конфигуратора товаров 1С-Битрикс с зависимостями

Конфигуратор товаров: как избавиться от тысяч SKU в 1С-Битрикс Мы часто сталкиваемся с ситуацией: клиент продаёт мебель на заказ, и каждый диван может быть собран из десятков вариантов ткани, ножек и наполнения. Стандартные торговые предложения Битрикс (SKU) — см. [SKU на Wikipedia](https://ru.wi
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Модуль конфигуратора товаров 1С-Битрикс с зависимостями
Средний
~1-2 недели

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

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

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

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

Конфигуратор товаров: как избавиться от тысяч SKU в 1С-Битрикс

Мы часто сталкиваемся с ситуацией: клиент продаёт мебель на заказ, и каждый диван может быть собран из десятков вариантов ткани, ножек и наполнения. Стандартные торговые предложения Битрикс (SKU) — см. SKU на Wikipedia — заставляют создавать все комбинации вручную. 5 материалов × 8 цветов × 3 размера = 120 SKU. А если добавить зависимость: кожаный диван нельзя комбинировать с велюровыми подушками — SKU взрываются до тысяч. Конфигуратор решает эту проблему принципиально иначе, экономя до 80% времени на администрировании каталога.

Зачем нужен модуль конфигуратора, если есть торговые предложения?

SKU хороши для простых комбинаций из 2–3 характеристик. Когда количество опций превышает 4 или появляются зависимости, лучше использовать кастомный конфигуратор. Он хранит опции независимо и рассчитывает итоговую цену и состав динамически, как описано в документации Битрикс по инфоблокам. Наш модуль vendor.configurator реализует полноценную модель данных с поддержкой зависимостей и формульных модификаторов цены.

Чем конфигуратор отличается от SKU

В SKU заранее перечислены все возможные комбинации. Если у ноутбука 3 варианта процессора, 4 варианта RAM и 3 варианта SSD — нужно 36 SKU, и все их надо создавать и поддерживать. В конфигураторе опции задаются независимо, а итоговая цена и состав рассчитываются динамически. Это принципиально другая модель данных, позволяющая экономить до 80% времени на сопровождении каталога.

Как работают зависимости опций?

Самое сложное в конфигураторе — зависимости. При выборе «Мощный блок питания» автоматически становятся доступны более производительные видеокарты. Вот пример реализации на PHP с использованием ORM Битрикс:

class DependencyResolver { public function resolve(int $productId, array $selectedOptions): DependencyResult { $dependencies = DependencyTable::getList([ 'filter' => ['OPTION_ID' => $selectedOptions], ])->fetchAll(); $visible = []; $hidden = []; $required = []; $disabled = []; foreach ($dependencies as $dep) { match ($dep['ACTION']) { 'show' => $visible[] = $dep['DEPENDENT_OPTION_ID'], 'hide' => $hidden[] = $dep['DEPENDENT_OPTION_ID'], 'require' => $required[] = $dep['DEPENDENT_OPTION_ID'], 'disable' => $disabled[] = $dep['DEPENDENT_OPTION_ID'], }; } return new DependencyResult($visible, $hidden, $required, $disabled); } } 

Результат передаётся на фронтенд через AJAX при каждом изменении выбора. Благодаря тегированному кэшированию цена пересчитывается мгновенно, без полной перезагрузки страницы.

Почему конфигуратор экономит время?

Модуль vendor.configurator включает ORM-таблицы: b_vendor_cfg_product, b_vendor_cfg_group, b_vendor_cfg_option, b_vendor_cfg_dependency, b_vendor_cfg_configuration, b_vendor_cfg_order_item. Администратору достаточно задать группы и опции один раз, а не создавать тысячи SKU. Зависимости настраиваются визуально в конструкторе.

Как происходит динамический расчёт цены?

Базовая цена + модификаторы опций. Поддерживаются фиксированные надбавки, проценты и произвольные формулы:

class PriceCalculator { public function calculate(int $productId, array $selectedOptionIds): float { $product = ProductTable::getById($productId)->fetch(); $price = (float)$product['BASE_PRICE']; $options = OptionTable::getList([ 'filter' => ['ID' => $selectedOptionIds], ])->fetchAll(); foreach ($options as $option) { $price = match ($option['PRICE_MOD_TYPE']) { 'fixed' => $price + (float)$option['PRICE_MOD_VALUE'], 'percent' => $price * (1 + (float)$option['PRICE_MOD_VALUE'] / 100), 'formula' => $this->evalFormula($option['PRICE_MOD_VALUE'], $price), default => $price, }; } return round($price, 2); } } 

Формульный модификатор позволяет задавать нелинейные зависимости: например, цена кастомного размера рассчитывается по площади (ширина × высота × базовая ставка за кв.м). Это особенно актуально для оконных конструкций или мебели на заказ.

Фронтенд конфигуратора

Интерфейс конфигуратора — React/Vue компонент, подключаемый к странице товара. Логика:

  1. Загружает структуру групп и опций через REST-эндпоинт.
  2. При изменении выбора — AJAX на DependencyResolver, обновляет видимость опций.
  3. Одновременно AJAX на PriceCalculator, обновляет итоговую цену.
  4. Визуальные опции (цвет, материал) — сетка превью с кликом.

Состояние конфигурации синхронизируется с URL-хешем — конфигурацию можно скопировать и отправить ссылку. Клиенты могут сохранять несколько конфигураций и сравнивать их.

Добавление в корзину

Сохранённая конфигурация добавляется в корзину как один товар. Состав конфигурации хранится в b_vendor_cfg_configuration.options, связь с позицией корзины — через b_vendor_cfg_order_item. При просмотре заказа пользователь и менеджер видят детализацию: какие именно опции были выбраны. Это упрощает обработку заказов и исключает ошибки комплектации.

Административный интерфейс

  • Конструктор конфигуратора: drag-and-drop групп и опций.
  • Настройка зависимостей через визуальный редактор (список правил).
  • Предпросмотр конфигуратора прямо в админке.
  • Список сохранённых конфигураций пользователей.
  • Статистика: популярные конфигурации, средний чек по конфигуратору (увеличение до 40%).

Наши сертифицированные специалисты с опытом работы от 10 лет внедряют такие модули «под ключ». Мы гарантируем стабильную работу на высоких нагрузках — до 10 000 одновременных сессий конфигурации. Закажите разработку модуля конфигуратора и получите гибкий инструмент для вашего бизнеса.

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

В рамках проекта мы предоставляем:

  • Техническое задание и документацию по API.
  • Миграции базы данных для существующих товаров.
  • Развёртывание на боевом сервере.
  • Код с комментариями и покрытием unit-тестами.
  • Обучение администраторов работе с конструктором.
  • Гарантийную поддержку 3 месяца.

Свяжитесь с нами для оценки вашего проекта — просто напишите описание товаров и их характеристик. Оценим за 1 день.

Сравнение SKU и конфигуратора
Критерий Торговые предложения (SKU) Кастомный конфигуратор
Количество комбинаций N×M (создаются вручную) Произвольное (динамический расчёт)
Зависимости опций Не поддерживаются Поддерживаются (show/hide/require/disable)
Модификаторы цены Только фиксированная надбавка Фиксированные, проценты, формулы
Время администрирования Высокое (тысячи SKU) Низкое (десятки опций)
Гибкость для клиента Низкая Высокая (кастомизация)

Сроки разработки

Этап Срок
ORM-таблицы, модель продукта и опций 1 день
Resolver зависимостей, API 2 дня
Калькулятор цены, формульные модификаторы 2 дня
Фронтенд-компонент (React/Vue) 3 дня
Добавление в корзину, детализация в заказе 2 дня
Административный конструктор 2 дня
Тестирование 1 день

Итого: 13 рабочих дней. 3D-визуализация конфигурации (WebGL) — отдельный проект. Получите консультацию по конфигуратору — поможем подобрать оптимальное решение для вашего каталога.