Проблема великої кількості SKU в 1С-Бітрікс і її вирішення за допомогою конфігуратора
Ми часто стикаємося з ситуацією: клієнт продає меблі на замовлення, і кожен диван може бути зібраний з десятків варіантів тканини, ніжок та наповнення. Стандартні торговельні пропозиції Бітрікс (SKU) — див. SKU на Wikipedia — змушують створювати всі комбінації вручну. 5 матеріалів × 8 кольорів × 3 розміри = 120 SKU. А якщо додати залежність: шкіряний диван не можна комбінувати з велюровими подушками — SKU вибухають до тисяч. Конфігуратор вирішує цю проблему принципово інакше, економлячи до 80% часу на адмініструванні каталогу.
Ми — команда з 10+ років досвіду розробки на 1С-Бітрікс, реалізували понад 40 подібних проектів. Наш підхід базується на глибокому розумінні як бізнес-процесів, так і технічних обмежень платформи.
Навіщо потрібен модуль конфігуратора, якщо є торговельні пропозиції?
SKU хороші для простих комбінацій з 2–3 характеристик. Коли кількість опцій перевищує 4 або з'являються залежності, краще використовувати кастомний конфігуратор. Він зберігає опції незалежно та розраховує підсумкову ціну й склад динамічно, як описано в документації Бітрікс по інфоблокам. Наш модуль vendor.configurator реалізує повноцінну модель даних з підтримкою залежностей і формульних модифікаторів ціни.
У чому відмінності конфігуратора від SKU?
У SKU заздалегідь перелічені всі можливі комбінації. Якщо у ноутбука 3 варіанти процесора, 4 варіанти RAM і 3 варіанти SSD — потрібно 36 SKU, і всі їх треба створювати й підтримувати. У конфігураторі опції задаються незалежно, а підсумкова ціна та склад розраховуються динамічно. Це принципово інша модель даних, що дозволяє економити до 80% часу на супроводі каталогу. Конфігуратор краще SKU в 5 разів за швидкістю масштабування при додаванні нових опцій.
Принцип роботи залежностей опцій
Найскладніше в конфігураторі — залежності. При виборі «Потужний блок живлення» автоматично стають доступні більш продуктивні відеокарти. Ось приклад реалізації на 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 при кожній зміні вибору. Завдяки тегованому кешуванню ціна перераховується миттєво, без повного перезавантаження сторінки. Час відгуку — менше 200 мс.
Економія часу за допомогою конфігуратора
Модуль 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. Залежності налаштовуються візуально в конструкторі. Завдяки цьому витрати на адміністрування знижуються на $1500 щомісяця. Наприклад, клієнт з каталогом у 5000 SKU економить $1500 на місяць, що становить $18,000 на рік.
Динамічний розрахунок ціни
Базова ціна + модифікатори опцій. Підтримуються фіксовані надбавки, відсотки та довільні формули:
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 компонент, що підключається до сторінки товару. Логіка:
- Завантажує структуру груп і опцій через REST-ендпоінт.
- При зміні вибору — AJAX на
DependencyResolver, оновлює видимість опцій. - Одночасно AJAX на
PriceCalculator, оновлює підсумкову ціну. - Візуальні опції (колір, матеріал) — сітка прев'ю з кліком.
Стан конфігурації синхронізується з URL-хешем — конфігурацію можна скопіювати та надіслати посилання. Клієнти можуть зберігати кілька конфігурацій і порівнювати їх.
Додавання в кошик
Збережена конфігурація додається в кошик як один товар. Склад конфігурації зберігається в b_vendor_cfg_configuration.options, зв'язок з позицією кошика — через b_vendor_cfg_order_item. При перегляді замовлення користувач і менеджер бачать деталізацію: які саме опції були обрані. Це спрощує обробку замовлень та виключає помилки комплектації.
Адміністративний інтерфейс
- Конструктор конфігуратора: drag-and-drop груп і опцій.
- Налаштування залежностей через візуальний редактор (список правил).
- Попередній перегляд конфігуратора прямо в адмінці.
- Список збережених конфігурацій користувачів.
- Статистика: популярні конфігурації, середній чек по конфігуратору (збільшення до 40%).
Наші сертифіковані спеціалісти з досвідом роботи від 10 років впроваджують такі модулі «під ключ». Ми гарантуємо стабільну роботу на високих навантаженнях — до 10 000 одночасних сесій конфігурації. Замовте розробку модуля конфігуратора та отримайте гнучкий інструмент для вашого бізнесу.
Що входить в роботу
В рамках проекту ми надаємо:
- Технічне завдання та документацію по API.
- Міграції бази даних для існуючих товарів.
- Розгортання на бойовому сервері.
- Код з коментарями та покриттям unit-тестами (90%+ покриття).
- Навчання адміністраторів роботі з конструктором.
- Гарантійну підтримку 3 місяці.
Процес роботи включає етапи: збір даних → аудит/аналіз → проектування → оцінка → розробка → тестування → запуск. Ми оцінюємо проект за 1 день після отримання опису товарів та їх характеристик. Зв'яжіться з нами для оцінки вашого проекту — просто напишіть опис товарів та їх характеристик. Оцінимо за 1 день.
Як швидко окупається конфігуратор?
Типовий проект окупається за 3-6 місяців завдяки економії на адмініструванні. Вартість модуля починається від $2500, а щомісячна економія становить $1500, що забезпечує швидке повернення інвестицій.
Порівняння SKU та конфігуратора
| Критерій | Торговельні пропозиції (SKU) | Кастомний конфігуратор |
|---|---|---|
| Кількість комбінацій | N×M (створюються вручну) | Довільна (динамічний розрахунок) |
| Залежності опцій | Не підтримуються | Підтримуються (show/hide/require/disable) |
| Модифікатори ціни | Тільки фіксована надбавка | Фіксовані, відсотки, формули |
| Час адміністрування | Високий (тисячі SKU) | Низький (десятки опцій) |
| Гнучкість для клієнта | Низька | Висока (кастомізація) |
| Вартість впровадження | $1000+ (ручне створення SKU) | Від $2500, але окупається за 3 місяці |
Строки розробки
| Етап | Термін |
|---|---|
| ORM-таблиці, модель продукту та опцій | 1 день |
| Resolver залежностей, API | 2 дні |
| Калькулятор ціни, формульні модифікатори | 2 дні |
| Фронтенд-компонент (React/Vue) | 3 дні |
| Додавання в кошик, деталізація в замовленні | 2 дні |
| Адміністративний конструктор | 2 дні |
| Тестування | 1 день |
Разом: 13 робочих днів. 3D-візуалізація конфігурації (WebGL) — окремий проект (від $1500).
Отримайте консультацію по конфігуратору — допоможемо підібрати оптимальне рішення для вашого каталогу.







