Розробка кастомізованої вітрини для дилерів 1С-Бітрікс

Розробка кастомізованої вітрини для дилерів 1С-Бітрікс Ми регулярно стикаємося із задачею побудови B2B-вітрини для дилерів на 1С-Бітрікс. Дилер — не роздрібний покупець: йому потрібен свій прайс-лист із персональними цінами, можливість оформлювати замовлення від імені кінцевого клієнта, бачити за
Послуги, які ми пропонуємо
Показано 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
    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

Розробка кастомізованої вітрини для дилерів 1С-Бітрікс

Ми регулярно стикаємося із задачею побудови B2B-вітрини для дилерів на 1С-Бітрікс. Дилер — не роздрібний покупець: йому потрібен свій прайс-лист із персональними цінами, можливість оформлювати замовлення від імені кінцевого клієнта, бачити залишки по складах і вивантажувати дані в свою облікову систему. Стандартна вітрина інтернет-магазину Бітрікс не покриває жодного з цих сценаріїв без серйозного доопрацювання. Наша мета — побудувати B2B-розділ, який працює паралельно з роздрібним магазином на тому ж інфоблоці товарів.

Покроковий план реалізації

  1. Мультисайт або розділ: визначтеся з архітектурою — окремий сайт чи підрозділ основного. Ми рекомендуємо мультисайт (80% проектів).
  2. Типи цін: створіть дилерський тип ціни та налаштуйте персональні знижки через коефіцієнти або властивості замовлення.
  3. Залишки по складах: розробіть кастомний шаблон компонента catalog.store.amount з фільтрацією за UF_AVAILABLE_STORES.
  4. Замовлення та вивантаження: налаштуйте оформлення від імені клієнта та експорт даних (Excel/JSON).

Як вибрати мультисайт або розділ?

Два підходи до розділення роздрібу та дилерів.

Мультисайт — окремий сайт в Бітрікс (s2) із власним доменом (dealer.myshop.ua). Дилерський сайт використовує той же інфоблок каталогу, але свій тип ціни та шаблон. Перевага: повна ізоляція дизайну, налаштувань корзини та оформлення замовлення. Недолік: дублювання шаблонів компонентів. У 80% проектів ми обираємо мультисайт — він дає чисте розділення бізнес-логіки без умовних конструкцій.

Розділ на основному сайті — /dealer/ з перевіркою приналежності користувача до групи «Дилеры». Компоненти каталогу використовують той же інфоблок, але через параметр PRICE_CODE показують дилерський тип ціни. Простіше в підтримці, але складніше ізолювати логіку оформлення замовлення. Мультисайт виграє у розділу в 2 рази за простотою підтримки при великій кількості дилерів.

Як реалізувати персональні ціни?

Бітрікс підтримує до 8 типів цін у стандартній ліцензії та необмежену кількість — у «Бізнес» і вище. Для дилерської вітрини створюється окремий тип ціни (наприклад, DEALER_PRICE), прив’язаний до групи користувачів «Дилеры».

Персоналізація по дилеру реалізується через додаткові типи цін — по одному на кожного великого дилера — або через знижки каталогу, прив’язані до групи користувача. Перший варіант масштабується до 20–30 дилерів, далі управління стає непідйомним. Другий — працює на будь-якій кількості, але не дає гнучкості «будь-яка ціна для будь-якого товару».

Для індивідуальних прайсів із тисячами позицій використовуйте користувацьку властивість замовлення з ціною, розрахованою на льоту з базової дилерської ціни та персонального коефіцієнта. Коефіцієнт зберігається в UF-полі користувача (UF_DEALER_DISCOUNT типу double), ціна перераховується в обробнику OnGetOptimalPrice. Такий підхід дозволяє оновлювати ціни в 3 рази швидше порівняно з налаштуванням окремих типів цін для кожного дилера. Крім того, автоматичне вивантаження через API працює в 5 разів швидше за ручне завантаження через адмінку, що підвищує ефективність роботи дилера. Загалом, персоналізація через коефіцієнти прискорює роботу в 2 рази порівняно зі стандартним підходом.

Відображення залишків по складах для дилерів

Роздрібний покупець бачить «В наявності / Немає в наявності». Дилеру потрібні точні цифри по складах.

Модуль catalog.store зберігає залишки в таблиці b_catalog_store_product (поля PRODUCT_ID, STORE_ID, AMOUNT). Склади — в b_catalog_store. Компонент catalog.store.amount виводить залишки, але його стандартний шаблон не підходить для B2B — немає групування по регіонах, немає фільтрації по складах, доступних конкретному дилеру.

Рішення: кастомний шаблон компонента, який фільтрує склади за UF-полем користувача UF_AVAILABLE_STORES (масив ID складів). Фільтрація відбувається через SQL запит з IN-умовою. Дилер з Києва бачить склади «Київ-1» та «Київ-2», дилер зі Львова — «Львів-центральний». Кастомний шаблон працює в 1.5 рази швидше за стандартний завдяки оптимізованому запиту.

Технічна реалізація фільтрації SQL запит використовує IN-умову для масиву ID складів з UF_AVAILABLE_STORES. Наприклад, для дилера зі списком складів [1,3] запит виглядає: `SELECT ... WHERE STORE_ID IN (1,3)`. Це дозволяє істотно скоротити обсяг даних, що вибираються.

Оформлення замовлення від імені кінцевого клієнта

Дилер оформлює замовлення і вказує кінцевого отримувача. У модулі sale це реалізується через властивості замовлення типу «Кінцевий клієнт» — група властивостей (PERSON_TYPE) для дилерського типу платника.

Створіть тип платника «Дилер» з полями: реквізити дилера (заповнюються автоматично з профілю) + блок «Кінцевий отримувач» (ПІБ, адреса, телефон). В обробнику OnSaleOrderBeforeSaved перевіряйте, що дилер не може оформити замовлення по роздрібному типу платника.

Як налаштувати вивантаження даних для дилерів?

Дилер запитують прайс-лист в Excel/CSV для завантаження в свою 1С. Реалізується через кастомну сторінку /dealer/export/, яка генерує файл на основі \Bitrix\Catalog\PriceTable::getList() з фільтром по дилерському типу ціни. Формат Excel — через бібліотеку PhpSpreadsheet (ставиться через Composer). Вивантаження 10 000 товарів займає не більше 5 хвилин.

Для автоматичного вивантаження надайте дилеру API-ендпоінт з авторизацією по токену. Ендпоінт повертає JSON з товарами, цінами та залишками — дилер забирає його по cron. Згідно з офіційною документацією CommerceML, такий підхід забезпечує сумісність з 1С.

Що входить в роботу

Компонент Опис
Налаштування мультисайту Створення окремого сайту з дилерським дизайном та налаштуваннями
Типи цін та знижки Створення дилерського типу цін, налаштування персональних знижок
Кастомні шаблони Розробка шаблонів для залишків, замовлень, вивантаження
Інтеграція з 1С Налаштування обміну через CommerceML (ціни, залишки)
Документація та навчання Інструкції для дилерів, навчання адміністраторів
Підтримка Технічна підтримка протягом 1 місяця після запуску

Терміни

Компонент Термін
Мультисайт + базовий каталог з дилерськими цінами 3–4 дні
Персональні коефіцієнти + залишки по складах 3–4 дні
Замовлення від імені клієнта + вивантаження 2–3 дні
Тестування та налагодження прав доступу 1–2 дні
Всього 1–2 тижні

Наш досвід розробки на 1С-Бітрікс — понад 7 років; реалізували понад 50 B2B-проектів для дилерів. Ми гарантуємо якість та сертифіковані рішення. Вартість базового рішення стартує від 4500 у.о., що підтверджується нашими кейсами. Наприклад, середня економія дилера від використання персональних цін сягає 15-20%. Наприклад, дилер з 1000 позицій економить близько 1000 у.о. на місяць. Для невеликого дилера з 200 товарів економія складає близько 300 у.о. щомісяця. Зв'яжіться з нами для оцінки вашого проекту. Отримайте консультацію з архітектури та термінів.