Как реализовать корзину маркетплейса с оплатой каждому вендору отдельно?
Подскажите кто знает примеры маркетплейсов, где можно посмотреть реализацию, когда каждому вендору клиент оплачивает отдельно (не в одной корзине). Хочу посмотреть на примеры реализаций.
Дополнительно:
Зачем клиенту такой геморрой? всегда будете проигрывать "нормальным" маркетплейсам
Порядок должен быть!
Клиент не "оплачивает продавцу" (продавцу, а не вендору!), клиент оплачивает товар. А уже МП перечисляет деньги продавцу.
И зачем тут "не одна корзина" - не ясно.
img
Ответы:
2 решения:
1. Плохое: есть общая корзина, которая содержит несколько подкорзин - каждая такая подкорзина принадлежит отдельным вендорам. Грубо говоря, ты делаешь группировку по коду вендора в общей корзине: select * from basket group by vendor_code
2. Хорошее: клиент такого разделения не видит и оплачивает сразу все, а разделение будет уже на стороне бэка. Это более удобно для клиента, чем делать несколько различных покупок.
- Если он оплатит сразу все значит уже не каждому вендору отдельно. С подкорзинами примерно себе так и представлял, но хотелось бы увидеть примеры (о чем сей пост).
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Для реализации корзины маркетплейса с оплатой каждому вендору отдельно, вам потребуется создать систему, которая будет разделять оплаты между разными вендорами в зависимости от товаров, добавленных в корзину.
Ниже приведен пример реализации данной функциональности на PHP:
// Предположим, что у вас есть массив $cart, содержащий информацию о товарах в корзине $cart = [ ['vendor_id' => 1, 'product_id' => 1, 'price' => 10], ['vendor_id' => 2, 'product_id' => 2, 'price' => 20], ['vendor_id' => 1, 'product_id' => 3, 'price' => 15] ]; // Создаем массив, в котором ключами будут идентификаторы вендоров, а значениями - общая сумма заказа для каждого вендора $vendors_total = []; foreach ($cart as $item) { $vendor_id = $item['vendor_id']; $price = $item['price']; if (isset($vendors_total[$vendor_id])) { $vendors_total[$vendor_id] += $price; } else { $vendors_total[$vendor_id] = $price; } } // Теперь у вас есть массив $vendors_total, в котором суммы заказов для каждого вендора // Далее вы можете произвести оплату каждому вендору отдельно, используя доступные платежные системы // Пример отправки платежа вендору foreach ($vendors_total as $vendor_id => $total) { // Здесь можно использовать API платежной системы для осуществления платежа вендору // Например: // makePayment($vendor_id, $total); }
Этот код позволяет разделить сумму заказа между разными вендорами и осуществить оплату каждому вендору отдельно. Помните, что для успешной реализации данной функциональности также потребуется настройка платежных систем и обработка возвратов в случае возникновения проблем.