@semki096

Как правильно построить логику заказа в магазине?

Смотрю процесс заказа в некоторых магазинах. Например страница заказа /checkout - почему эта страница не привязана к номеру заказа, например не /checkout/88. Или номер заказа в сессии хранится?

А также непонятно как сформировать данные заказа перед отправкой на платёжный сервис. К примеру я беру данные из корзины перед отправкой. Но мне же надо ещё и очистить эту корзину. Значит к примеру если перед отправкой данных пользователь решит обновить страницу, то данных не будет так как корзина уже очищена.

Буду признателен за разьяснение логики очередности действий для реализации заказа.
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ответы на вопрос 1
@nrgian
Например страница заказа /checkout - почему эта страница не привязана к номеру заказа, например не /checkout/88. Или номер заказа в сессии хранится?


Существуют запросы GET,
существуют запросы POST
И да, еще есть сессии.

Смысла в /checkout/88 нет - так как это разовая операция и нет необходимости иметь возможность попасть туда по ссылке когда угодно (что обеспечивает GET)

А также непонятно как сформировать данные заказа перед отправкой на платёжный сервис. К примеру я беру данные из корзины перед отправкой. Но мне же надо ещё и очистить эту корзину. Значит к примеру если перед отправкой данных пользователь решит обновить страницу, то данных не будет так как корзина уже очищена.

То, что пользователь ушел на платежный сервис, не означает, что он оплатил.
У него мог быть сбой по оплате (например, на этой карте нет денег) и вам нужно еще раз отправить его на платежный сервис.
Или он решил оплатить другим методом и вам нужно отправить его на платежный сервис иначе.
Или он решил добавить еще товара.

А вы в это время очистили уже корзину и потеряли тем самым клиента с большой вероятностью

Платежные сервисы уведомляют об оплате заказа, зачастую.
Вот тогда корзину и нужно очищать.
Ответ написан
Ваш ответ на вопрос

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

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