На каком этапе оплаты лучше всего создавать Order?
Я сперва думал создавать ордер при переходе на страницу оформления заказа. Но вижу в таком подходе много минусов.
1. Если перезагружать эту страницу, то будут создаваться новые ордера. А играться с редиректом не очень хорошо (имхо).
2. Если в процессе оформления я захочу добавить ещё один товар в корзину - то будет создан новый ордер, а старый будет неоплаченным и будет загрязнять базу.
Вопрос - может лучше создавать ордер после получения ответа от платёжного сервиса? Но тогда наверно тоже могут быть подводные камни.
PS. Видел ещё один вариант - это когда сначала создается сущность Checkout, а после оплаты - сущность Order.
basket - invoice - order
Три сущности
Корзина - гуляем просто по магазину
Предзаказ - договариваемся что,куда,почем
Заказ - уже договорные отношения, которые надо исполнять