Розробка конфігуратора товарів на Vue.js для 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Розробка конфігуратора товарів на Vue.js для 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

Розробка конфігуратора товарів на Vue.js для 1С-Бітрікс

Конфігуратор товарів — це інтерактивний інструмент, де користувач збирає продукт із варіантів (колір, розмір, комплектація, опції), а ціна, зображення та наявність оновлюються в реальному часі. Бітрікс надає дані про торгові пропозиції, Vue — реактивний інтерфейс.

Торгові пропозиції (SKU) у Бітрікс

Конфігуратор працює з торговими пропозиціями — підтипом b_iblock_element, прив'язаним до батьківського товару через b_iblock_element_property (властивість типу «прив'язка до елемента» або через CIBlockElement::GetList з PROPERTY_CML2_LINK).

Структура даних для конфігуратора:

// Отримуємо всі SKU з їхніми властивостями
$offers = \CCatalogSKU::GetOffersList(
    [$productId],
    $offerIblockId,
    ['ACTIVE' => 'Y'],
    ['ID', 'PROPERTY_COLOR', 'PROPERTY_SIZE', 'CATALOG_PRICE_1', 'CATALOG_QUANTITY']
);

Передаємо у Vue як window.__PRODUCT_CONFIG__:

{
    offers: [
        { id: 101, props: { color: 'red', size: 'M' }, price: 1500, quantity: 5 },
        { id: 102, props: { color: 'red', size: 'L' }, price: 1500, quantity: 0 },
        // ...
    ],
    propertyDefs: {
        color: { name: 'Колір', values: { red: { name: 'Червоний', hex: '#FF0000' } } },
        size:  { name: 'Розмір', values: { M: { name: 'M' }, L: { name: 'L' } } },
    }
}

Логіка вибору SKU

Центральна частина конфігуратора — функція знаходження SKU за обраними параметрами:

const selectedProps = reactive({ color: null, size: null });

const matchedOffer = computed(() => {
    return offers.find(offer =>
        Object.entries(selectedProps).every(([key, val]) =>
            val === null || offer.props[key] === val
        )
    ) ?? null;
});

// Доступні значення з урахуванням вже обраних параметрів
function getAvailableValues(propKey) {
    return offers
        .filter(offer =>
            Object.entries(selectedProps)
                .filter(([k]) => k !== propKey)
                .every(([k, v]) => v === null || offer.props[k] === v)
        )
        .map(offer => offer.props[propKey]);
}

Недоступні комбінації (немає в наявності) — сіріють, але не приховуються: користувач бачить, що варіант існує.

Динамічне оновлення зображень

При виборі кольору або матеріалу — зміна головного зображення товару. Зображення прив'язані до SKU у b_iblock_element_property (властивість типу «файл»):

const currentImages = computed(() => {
    if (matchedOffer.value) {
        return matchedOffer.value.images; // З даних пропозиції
    }
    return defaultImages; // Зображення базового товару
});

Перехід між зображеннями — через <transition> Vue або простою CSS-анімацією.

Конфігуратор із залежними параметрами

Складніший випадок: вибір моделі → доступні конфігурації → доступні опції. Кожен рівень фільтрує наступний. Реалізується через computed із каскадною фільтрацією offers.

Для складних конфігураторів (складання ПК, меблі на замовлення) — ієрархічне дерево вибору з кроками (wizard), де кожен крок підвантажує допустимі варіанти наступного через AJAX.

Приклад із практики

Виробник вікон: конфігуратор із 6 параметрами (тип профілю, склопакет, колір, відкривання, розмір, додаткові опції). Кількість SKU — кілька тисяч. Усі дані завантажувалися при відкритті сторінки (JSON 800 КБ). Рішення: ліниве завантаження — при кожному кроці wizard запитуємо з сервера допустимі значення наступного параметра з актуальними цінами. Розмір початкового запиту — 15 КБ. Швидкість завантаження конфігуратора суттєво зросла.

Терміни виконання

Варіант Термін
Базовий конфігуратор (колір, розмір) від 4 до 7 робочих днів
Із залежними параметрами та динамічними зображеннями від 8 до 12 робочих днів
Складний wizard із розрахунком вартості в реальному часі від 15 до 25 робочих днів