Разработка маркетплейсов на 1С-Битрикс
Начнём с того, что ломает большинство проектов: таблица b_sale_order и связанные с ней b_sale_basket не рассчитаны на мультивендорность из коробки. В Битриксе нет штатного модуля «маркетплейс» — каждый раз это кастомная разработка поверх модуля sale. Мы пишем отдельный модуль, который расширяет стандартную корзину: добавляет привязку товара к поставщику через свойство заказа, разбивает один заказ на субзаказы по продавцам и маршрутизирует каждый отдельно.
Модели маркетплейсов
Классический маркетплейс — оператор не держит склад. Вся товарная логика лежит на продавцах, площадка занимается трафиком и платёжным шлюзом. Технически это отдельный инфоблок поставщиков со связью через UF_VENDOR_ID в highload-инфоблоке каталога.
Гибридная модель — оператор продаёт наравне с внешними поставщиками. Главная боль: ранжирование в каталоге. Если поставщики видят, что карточки площадки всегда выше — уходят. Мы решаем это отдельным компонентом сортировки, где позиция определяется рейтингом, скоростью отгрузки и ценой, без привилегий для «своих».
Маркетплейс услуг — заявки, тендеры, эскроу. Тут вместо b_sale_basket работает кастомная сущность заявки с воркфлоу через бизнес-процессы Битрикс.
B2B-маркетплейс — договоры, акты сверки, кредитные линии, EDI. Совсем другой мир: авторизация по ИНН, мультиценовые группы через b_catalog_group, лимиты отгрузки.
Модели монетизации
| Модель | Как реализуем | Где чаще встречается |
|---|---|---|
| Комиссия с продаж | Обработчик OnSaleOrderComplete, расчёт по категории и статусу продавца |
Универсальная |
| Подписка | Кастомный модуль с cron-задачей и списанием через sale.paysystem |
B2B-площадки |
| Листинговые сборы | Счётчик в OnAfterIBlockElementAdd |
Доски объявлений |
| Продвижение | Промо-слоты через отдельный highload-инфоблок | Дополнительный доход |
| Фулфилмент | Интеграция с WMS через REST | Площадки с логистикой |
Кабинет продавца
Кабинет — сердце маркетплейса. Неудобный кабинет = пустая площадка. Стандартного решения нет, пишем с нуля на компонентах Битрикс.
-
Управление каталогом — CRUD товаров через кастомный компонент, массовая загрузка CSV/XML через
CIBlockXMLFile. Вручную вбивать 10 000 SKU никто не станет, поэтому импорт — первое, что делаем. -
Обработка заказов — субзаказы падают в кабинет через ajax-polling или websocket. Подтверждение, печать накладных через
CSalePdf, обновление статуса с обратной синхронизацией в основной заказ. - Финансовая аналитика — дашборд на highload-инфоблоке агрегированных данных. Выручка, комиссии, выплаты — детализация по товарам и периодам. Продавец видит, что продаётся, а что просто занимает витрину.
-
Настройки доставки — собственные тарифы продавца, привязка к
sale.delivery.handler. -
Коммуникация — встроенный чат без раскрытия контактов. Реализуем через модуль
imили кастомную таблицу сообщений. -
Акции — скидки, промокоды через
b_sale_discountс фильтром по vendor_id.
Модерация и контроль качества
Одна партия контрафакта убивает репутацию площадки. Поэтому модерация — не «nice to have», а обязательный слой.
-
Модерация товаров — статус
ACTIVE='N'до прохождения проверки. Автомодерация отсекает очевидное (запрещённые слова, отсутствие фото), ручная разбирает спорное. ОбработчикOnBeforeIBlockElementUpdateне даёт обойти. - Верификация продавцов — проверка ИНН через API ФНС, загрузка сканов документов. Статусы: новый → проверенный → премиум. Каждый уровень открывает лимиты по количеству товаров и комиссиям.
-
Рейтинговая система — не просто звёзды. Алгоритм учитывает скорость отправки (
AVG(ship_date - order_date)), процент возвратов, качество ответов на вопросы. - Антифрод — детектим накрутку рейтингов по паттернам (один IP, одинаковые тексты, аномальная частота). Дублирование аккаунтов ловим по ИНН и банковским реквизитам.
Система выплат продавцам
Финансовый модуль — то, ради чего продавцы приходят на площадку.
-
Расчёт комиссии — обработчик на смену статуса заказа. Комиссия зависит от категории, статуса продавца, текущих условий. Хранится в отдельной таблице
vendor_transactions. - Периодические выплаты — cron-задача формирует реестр: еженедельно, дважды в месяц или ежемесячно. Минимальная сумма выплаты, холдирование до подтверждения получения.
-
Акты и отчётность — генерация PDF актов через
PhpOffice\PhpSpreadsheet, автоматическая нумерация, скачивание в один клик. -
Холдирование — деньги удерживаются до события
OnSaleStatusOrderсо статусом «Получен». Снижает споры и возвраты. - Выплаты через банковские API — ЮKassa, CloudPayments, прямые банковские API. Продавец получает деньги без звонков и напоминаний.
Технологический стек
-
1С-Битрикс «Бизнес» или «Энтерпрайз» — модуль
sale+catalogкак фундамент. Мультивендорная обвязка — кастомные модули. -
Highload-инфоблоки — каталоги свыше 100 000 SKU. Обычные инфоблоки при таких объёмах падают на фильтрации:
CIBlockElement::GetListс десятком свойств начинает генерировать JOIN-ы на десятки таблицb_iblock_element_prop_sNN. Highload решает это плоской структурой. - Elasticsearch — полнотекстовый поиск. Пользователь пишет «кроссовки найки» — находит «Nike кроссовки». Штатный поиск Битрикса на больших каталогах неприемлемо медленный.
-
Очереди — импорт каталогов, расчёт выплат, генерация отчётов. Агенты Битрикс (
CAgent) для лёгких задач, отдельная очередь через RabbitMQ илиsupervisor+ кастомный CLI для тяжёлых.
Отраслевые маркетплейсы
Каждая ниша — свои грабли:
-
Стройматериалы — расчёт доставки крупногабарита. Паллеты, тоннаж, подъём на этаж. Обычный калькулятор доставки не справляется, пишем кастомный
sale.delivery.handler. - Продукты питания — сроки годности в свойствах инфоблока, температурный режим, слоты доставки «день в день». Ошибка в логистике = списание.
-
Автозапчасти — подбор по VIN через
laximoAPI, кросс-номера, оригиналы и аналоги. Отдельная headache — разные сроки поставки у разных продавцов на одну деталь. - Одежда — размерные сетки (EU/US/RU), высокий процент возвратов. Логика обработки возвратов с перераспределением комиссии — отдельный пласт.
- Промоборудование — B2B с тендерами, запросами КП. Карточка товара с 50+ параметрами в табличном виде.
Сроки и этапы
Пытаться запустить всё сразу — надёжный способ не запустить ничего.
- Бизнес-модель (2-3 недели) — модель монетизации, MVP-скоуп. Отсекаем 80% хотелок, которые не нужны на старте.
- Проектирование (3-4 недели) — UX, прототипы витрины и кабинетов, архитектура БД.
- MVP (2-3 месяца) — каталог, регистрация продавцов, заказы, базовая модерация. Первые реальные продажи.
-
Пилот (2-3 недели) — первые продавцы, тестовые покупки, нагрузочное тестирование через
abилиk6. - Масштабирование (постоянно) — новые фичи по фидбеку, оптимизация запросов, горизонтальное масштабирование.
MVP за 3-4 месяца. Полнофункциональная платформа — 6-12 месяцев итеративной разработки.







