Налаштування окремих кошиків за продавцями на маркетплейсі 1С-Bitrix
Коли покупець додає товари від різних продавців, виникає питання: як оформити замовлення? Єдине замовлення (як на Wildberries) або кілька окремих (як на Авіто)? Обидва варіанти реалізуються на Bitrix, але вимагають різних підходів.
Варіант 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 тижнів.







