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).