Настройка раздельных корзин по продавцам на маркетплейсе 1С-Битрикс
Когда покупатель добавляет товары от разных продавцов, возникает вопрос: как оформить заказ? Единый заказ (как на Wildberries) или несколько отдельных (как на Авито)? Оба варианта реализуемы на Битрикс, но требуют разных подходов.
Вариант 1: Визуально раздельные корзины, один платёж
Корзина b_sale_basket единая в БД, но интерфейс группирует позиции по UF_VENDOR_ID товара. Покупатель видит секции «Продавец А» и «Продавец Б» с отдельными суммами. Оплата — один платёж общей суммой.
При оформлении создаётся один b_sale_order, но в фоне генерируются суб-заказы для каждого продавца (таблица mp_sub_orders). Продавцы видят только свои суб-заказы.
Реализация визуального разделения в шаблоне компонента sale.basket.basket: в template.php группируем $arResult['ITEMS'] по UF_VENDOR_ID перед отображением:
$itemsByVendor = [];
foreach ($arResult['ITEMS'] as $item) {
$vendorId = CIBlockElement::GetByID($item['PRODUCT_ID'])->GetNext()['UF_VENDOR_ID'];
$itemsByVendor[$vendorId][] = $item;
}
Плюсы: один платёж, лучший UX для покупателя. Минусы: сложнее разбивать суммы при частичной отмене.
Вариант 2: Отдельные заказы для каждого продавца
При оформлении система создаёт отдельный b_sale_order на каждого продавца. Покупатель получает несколько подтверждений заказа и совершает несколько оплат (или одну через агрегатор с расщеплением).
Реализация через кастомный обработчик оформления заказа: стандартный флоу CSaleOrder::Add() заменяется кастомным, который разбивает корзину по UF_VENDOR_ID и создаёт несколько заказов в цикле.
Плюсы: каждый заказ независим, проще управлять статусами и возвратами. Минусы: неудобно для покупателя при большом количестве продавцов.
Доставка при раздельных корзинах
При единой корзине с несколькими продавцами доставка усложняется: у каждого продавца могут быть свои способы и стоимость. Возможные подходы:
- Единая доставка силами маркетплейса (платформа агрегирует все товары)
- Раздельный выбор доставки для каждого продавца (покупатель выбирает отдельно)
- Самовывоз из точки маркетплейса (общей)
Настройка доставки под конкретную схему — отдельная задача.
Сроки
Визуальное разделение корзины без изменения логики заказов — 3–5 дней. Полное разделение с созданием отдельных заказов — 1–2 недели. С кастомной логикой доставки по продавцам — до 3 недель.







