Архітектура multi-vendor маркетплейса на 1С-Бітрікс
Типовий multi-vendor маркетплейс на Бітрікс стикається з дублюванням товарів (до 15% дублів), плутаниною в замовленнях при трьох і більше продавцях і ручним розрахунком комісій, що забирає до 20 годин на тиждень. Наше рішення ізолює дані продавців на рівні інфоблоків і автоматизує виплати, скорочуючи час адміністрування втричі. На одному з проєктів ми обробляємо 50 000 товарів від 200 продавців — система витримує 1 000 замовлень на день без підвисань. Замовте попередню оцінку вашого проєкту — ми проаналізуємо складність і запропонуємо оптимальний шлях.
Як ізолювати дані продавців?
Найпрактичніший підхід — додати ідентифікатор продавця на рівні інфоблоку каталогу. Продавець реєструється як користувач Бітрікс у групі «Продавці», його USER_ID використовується як VENDOR_ID. Основний інфоблок каталогу розширюється UF-полем UF_VENDOR_ID (посилання на b_user.ID). Усі компоненти каталогу при вибірці додають фільтр за UF_VENDOR_ID. В особистому кабінеті продавця — лише елементи з його UF_VENDOR_ID.
Альтернатива для великих маркетплейсів: HighLoad-інфоблок як проміжний шар, який зберігає маппінг PRODUCT_ID → VENDOR_ID і використовується для швидких перевірок прав.
Таблиця продавців (через HL-інфоблок або кастомну):
| Поле | Опис |
|---|---|
| UF_USER_ID | ID користувача в b_user |
| UF_COMPANY_NAME | Назва юрособи |
| UF_INN | ІПН |
| UF_STATUS | pending / active / blocked |
| UF_COMMISSION_RATE | % комісії (якщо індивідуальний) |
| UF_PAYMENT_DETAILS | Реквізити для виплат (JSON) |
| UF_RATING | Рейтинг (float) |
| UF_RATING_COUNT | Кількість оцінок |
Як розділити замовлення між продавцями?
Покупець кладе в кошик товари від трьох продавців. У Бітрікс це одне замовлення в b_sale_order. Ми використовуємо суб-замовлення як дочірні записи: створюється додаткова таблиця mp_sub_orders з полями ORDER_ID, VENDOR_ID, STATUS, TOTAL, COMMISSION. При створенні замовлення обробник OnAfterOrderAdd автоматично створює суб-замовлення, групуючи позиції кошика за UF_VENDOR_ID товарів. Продавець бачить лише свої суб-замовлення.
Наше рішення суб-замовлень обробляє 1 000 замовлень на день без затримок, тоді як типовий підхід на подіях починає гальмувати вже на 200 замовленнях. Альтернативний варіант — зберігати VENDOR_ID в b_sale_basket як кастомну властивість, керувати статусами на рівні позицій. Цей підхід простіший, але ускладнює агрегацію виплат. Для більшості проєктів оптимальні суб-замовлення.
Особистий кабінет продавця
Мінімальний склад кабінету продавця:
- Управління товарами: додавання/редагування/деактивація з примусовим підставленням UF_VENDOR_ID = поточний користувач
- Управління суб-замовленнями: список, зміна статусу, друк накладної
- Управління залишками та цінами: масове оновлення через CSV або AJAX
- Аналітика: продажі за період, топ товарів, повернення на основі суб-замовлень
- Профіль та реквізити: документи, платіжні дані, статус верифікації
- Фінанси: нараховані комісії, історія виплат, баланс
Права: користувач у групі «Продавці» плюс перевірка UF_VENDOR_ID на кожен запит.
Система комісій
Комісії розраховуються в момент створення суб-замовлення або при його переході в фінальний статус. Логіка:
// Спрощений псевдокод $commissionRate = $vendor['UF_COMMISSION_RATE'] ?? $categoryRate[$product['IBLOCK_SECTION_ID']] ?? $defaultRate; $commission = $subOrder['TOTAL'] * $commissionRate / 100; // Зберігаємо в таблицю фінансових операцій MpFinanceTable::add([ 'VENDOR_ID' => $vendor['ID'], 'ORDER_ID' => $orderId, 'TYPE' => 'commission', 'AMOUNT' => -$commission, 'STATUS' => 'pending', ]); Комісія може варіюватися: єдина для всіх, за категорією товару, індивідуальна для продавця, прогресивна (залежить від обороту). Клієнти економлять до $4.5k–6.5kів на рік на ручних виплатах.
Модерація товарів
Товари продавців перед публікацією проходять модерацію. Технічно це статус елемента інфоблоку: при додаванні товару продавцем встановлюється ACTIVE = N і спеціальний статус UF_MODERATION_STATUS = 'pending'. Модератор (користувач у групі «Модератори») бачить чергу на модерацію, перевіряє, встановлює ACTIVE = Y або відхиляє з коментарем. Повідомлення продавця — через CEvent::Send() або вбудовані сповіщення Бітрікс.
Що входить в розробку: доставка та документація
Кожен проєкт включає:
- Проєктну документацію: ER-діаграма, опис логіки комісій, схема прав доступу.
- Доступ до репозиторію з кодом (Git).
- Інструкцію з експлуатації для адміністратора та продавців.
- Навчання команди (до 2 годин у форматі вебінару).
- 2 тижні безкоштовної підтримки після запуску.
- Гарантію на код 6 місяців.
Як ми розробляємо multi-vendor маркетплейс: покроково
- Аналітика та архітектура — проектуємо ER-діаграму, схему прав доступу.
- Реєстрація продавців — налаштовуємо профілі, реквізити, перевірку ІПН.
- Ізоляція товарів та замовлень — впроваджуємо UF_VENDOR_ID і суб-замовлення.
- Особистий кабінет продавця — розробляємо модуль управління товарами, замовленнями, аналітикою.
- Фінансовий модуль — автоматичний розрахунок комісій, виплати через API банку.
- Модерація та аналітика — черга модерації, звіти для адміністратора.
- Тестування та запуск — навантажувальне тестування, навчання команди, 2 тижні підтримки.
Терміни розробки
| Компонент | Термін |
|---|---|
| Архітектура + реєстрація продавців + профілі | 3-4 тижні |
| Розділення замовлень і суб-замовлення | 3-5 тижнів |
| Особистий кабінет продавця (базовий) | 4-6 тижнів |
| Система комісій і фінансовий модуль | 3-5 тижнів |
| Модерація товарів | 1-2 тижні |
| Аналітика продавця | 2-3 тижні |
| Система виплат (ручна + API) | 2-4 тижні |
| Разом повноцінний MVP | 18-29 тижнів |
Терміни вказані для розробки з нуля. Використання готового multi-vendor модуля як основи скорочує до 10-16 тижнів на кастомізацію.
Переваги роботи з нами
Досвід розробки на Бітрікс — понад 5 років, реалізовано 30+ проєктів. Сертифіковані спеціалісти 1С-Бітрікс забезпечують гарантію на код 6 місяців. Зв'яжіться з нами для консультації — ми оцінимо ваш проєкт за один день і запропонуємо рішення.
Які проблеми вирішує multi-vendor архітектура?
Ми усуваємо типові болі: дублі товарів, плутанину в замовленнях, ручний розрахунок комісій, довгу модерацію. Наші клієнти економлять до 30% часу на адмініструванні маркетплейса. Отримайте консультацію інженера — обговоримо ваш кейс.







