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

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Розробка конфігуратора товарів на 1С-Бітрікс
Середня
~1-2 тижні
Часті питання

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

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Розробка конфігуратора товарів для 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 або окрему таблицю чернеток.