@evomed

Как разделить заказ в маркетплейсе?

Есть такая структура.

ORDER
total

ORDER ITEM
order_id
orderable_type
orderable_id
total

TRANSACTION (поступления / выплаты у вендора)
total

Покупатель делает заказ и в одной корзине куча вендоров. Мне нужно разделить заказ по вендорам.

Пока надумал 2 способа.

1. Как описывается в документации CS-cart (сам их код не смотрел): "... потом заказ автоматически делится на несколько заказов, чтобы каждый продавец видел только свою часть исходного заказа.".

Т.е. делим заказ на несколько. Это как?

1.1. Добавить в Order parent_id? Тогда получается OrderItem нужно крепить к двум заказам (основному и дочернему), что выглядит, как каша.

1.2. Создать несколько заказов? С общим токеном для идентификации заказов в платежной системе? Тоже выглядит не совсем естественно т.к. физически (на сайте) пользователь формирует одну корзину, один заказ, и одну оплату в системе. Чую есть здесь подводные камни, но пока вариант кажется наиболее жизнеспособным.

В итоге, если разделять заказы на несколько (любым способом) нужно прописать order_id в Transaction. И тогда транзакция будет принадлежать заказу, что выглядит логично.

2. Прописываем в OrderItem transaction_id и когда пользователь совершает платеж сетать в order_item транзакцию. Метод простой, но логически выглядит, как костыль (OrderItem относится к сущности Order, а не к Transaction).
  • Вопрос задан
  • 31 просмотр
Решения вопроса 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
Мне нужно разделить заказ по вендорам.
Разделите логически, а не физически, используя составной ключ: код заказа, код производителя.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы