Разработка конфигуратора товаров на 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка конфигуратора товаров на 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • 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С-Битрикс

Конфигуратор товаров нужен там, где нет фиксированных SKU — компьютеры, окна, мебель, промышленное оборудование. Покупатель выбирает параметры шаг за шагом, цена и доступность пересчитываются в реальном времени, а в корзину попадает конкретная сборка. Встроенные торговые предложения (b_catalog_product_offer) справляются с несколькими измерениями, но при 5+ взаимозависимых параметрах — ломаются.

Как устроен конфигуратор

Конфигуратор — это клиент-серверное решение поверх каталога Битрикс. Фронтенд отображает шаги и обновляет интерфейс; бэкенд проверяет совместимость, считает цену, возвращает JSON.

Хранение данных. Варианта два:

  • Использовать инфоблок с торговыми предложениями и многомерными свойствами. Работает при числе комбинаций до ~10 000 — b_iblock_element_property растёт квадратично.
  • Создать собственные таблицы совместимости. Подходит для сложных матриц: каждое правило пишется в отдельную запись, индексы по полям-параметрам дают быстрый поиск.

На практике: основные данные товара — в инфоблоке, правила совместимости — в отдельной таблице. Класс ядра CIBlockElement используется для чтения базовых свойств, REST-обработчик — для проверки конфигурации.

Шаги конфигуратора и зависимости

Каждый шаг — это набор опций. Выбор на шаге N ограничивает доступные опции на шаге N+1. Реализуется через таблицу совместимости:

CREATE TABLE custom_configurator_rules (
    id          SERIAL PRIMARY KEY,
    product_id  INT NOT NULL,
    param_key   VARCHAR(100) NOT NULL,
    param_value VARCHAR(255) NOT NULL,
    depends_key VARCHAR(100) NOT NULL,
    depends_val VARCHAR(255) NOT NULL,
    available   TINYINT DEFAULT 1
);
CREATE INDEX idx_rules_product ON custom_configurator_rules (product_id, param_key, param_value);

Когда пользователь выбирает значение параметра, AJAX-запрос уходит на /bitrix/services/main/ajax.php с действием обработчика конфигуратора. Обработчик читает таблицу правил, возвращает доступные опции для следующего шага и текущую цену.

Расчёт цены

Цена конфигурации — сумма базовой цены товара плюс наценки за выбранные опции. Хранится в b_catalog_price (базовые цены) и отдельной таблице наценок:

CREATE TABLE custom_configurator_price_mod (
    id          SERIAL PRIMARY KEY,
    product_id  INT NOT NULL,
    param_key   VARCHAR(100) NOT NULL,
    param_value VARCHAR(255) NOT NULL,
    price_mod   DECIMAL(12,2) NOT NULL,  -- абсолютная наценка
    price_pct   DECIMAL(5,2)  DEFAULT 0  -- или процент
);

Обработчик собирает все выбранные опции, суммирует наценки, применяет скидки через \Bitrix\Catalog\Discount\DiscountManager — и возвращает итог клиенту.

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

Когда конфигурация завершена, в корзину добавляется обычное торговое предложение (или товар без предложений), но к нему прикрепляется JSON выбранной конфигурации как пользовательское свойство корзины:

\Bitrix\Sale\Basket::create(SITE_ID);
$basketItem = $basket->createItem('catalog', $productId);
$basketItem->setFields([
    'QUANTITY' => 1,
    'PROPS'    => [
        ['NAME' => 'Конфигурация', 'CODE' => 'CONFIGURATION', 'VALUE' => json_encode($config)],
    ],
]);

Конфигурация отображается в карточке заказа в административной части и попадает в письмо подтверждения через шаблон order_new.

Интеграция с остатками

Доступность конфигурации проверяется через \Bitrix\Catalog\ProductTable и \Bitrix\Catalog\StoreProductTable. Если один из компонентов — на складе, другой — под заказ, конфигуратор показывает реальный срок. Логика: берём минимальный остаток среди всех компонентов конфигурации.

Административная панель управления

К конфигуратору разрабатывается интерфейс в /bitrix/admin/ для управления правилами совместимости и наценками. Используем CAdminList, CAdminForm — стандартные классы административного интерфейса Битрикс. Это позволяет контент-менеджерам самостоятельно добавлять новые опции без правки кода.

Сроки

Этап Содержание Срок
Проектирование Анализ параметров, схема БД, прототип UI 3–4 дня
Бэкенд Таблицы, обработчики, расчёт цены, остатки 4–6 дней
Фронтенд UI конфигуратора, AJAX, обновление цены 3–5 дней
Корзина и заказы Передача конфигурации, отображение в заказе 2–3 дня
Административный интерфейс CRUD правил совместимости и наценок 2–3 дня
Тестирование Все комбинации, граничные случаи 2–3 дня

Итого: 2.5–4 недели в зависимости от числа параметров и сложности матрицы совместимости.

Что влияет на сложность

  • Число измерений конфигуратора (3 параметра vs 10).
  • Наличие графического предпросмотра (3D-модель, изображение результата).
  • Интеграция с 1С для актуальных остатков.
  • Мобильная адаптация многошагового UI.
  • Необходимость сохранять незавершённые конфигурации для авторизованных пользователей — через b_user_options или отдельную таблицу черновиков.