Проверка электронной торговли: когда и где создать промежуточный и окончательный заказ для товаров в корзине в реляционной базе данных - PullRequest
0 голосов
/ 26 апреля 2020

Я работаю над проектом электронной коммерции (в Django и основан на API остальных), где пользователи могут размещать заказы. Пользователи могут добавлять товары, которые они хотят купить, в корзину, которая является постоянной. Они go через процесс оформления заказа для размещения заказа.

Мне не ясно, как хранить промежуточный этап заказа и управлять им до создания окончательного заказа в таблице заказов в случае остальных услуг на основе API, которые не имеют запроса сеанс.

Я думаю об этих параметрах:

  • с использованием отдельной корзины, таблица заказа: таблица корзины будет иметь элементы, выбранные пользователем. когда они нажимают кнопку «оформить заказ», создайте заказ, но с флагом, который говорит, что он находится на промежуточной стадии. когда платеж инициирован, он будет помечен как окончательный заказ.

  • с использованием отдельной таблицы для корзины, оформления заказа и заказа: таблица корзины будет иметь элементы, выбранные пользователь. когда они нажимают кнопку checkout, создайте запись оформления заказа. когда платеж инициирован, создайте запись в таблице заказов. Здесь оформить заказ должен иметь копию структуры заказа. Кажется, это дублирует функциональность лота

  • с использованием корзины + оформить заказ (вместе), таблица заказов: таблица корзины будет иметь элементы, выбранные пользователем. когда они нажимают кнопку оформления заказа, этапы оформления заказа сохраняются в той же таблице. это похоже на таблицу magento sales_flat_quote. Когда инициируется оплата, в таблице заказов создается окончательная запись заказа.

Мне не совсем понятны плюсы и минусы вышеуказанных способов. Каков стандартный подход? И любые ссылки относительно того же.

1 Ответ

0 голосов
/ 26 апреля 2020

Есть несколько способов сделать это. У Антонио Меле отличный подход, изложенный в его книге "Django 3 By Example "

У них есть приложение myshop книги хранилище publi c на Github.

Книга содержит 2 приложения (корзина, заказ).

  • В заказе есть две модели - Order, OrderItems
  • В корзине нет моделей. Сохраняет добавленные элементы в сеансе django. Оформить заказ на файл carts.py.

Кроме того, я лично использовал приложение Shipping для управления переменными расходами на доставку.

...