Перемещение создания заказа, когда клиент завершает оформление заказа - PullRequest
0 голосов
/ 04 ноября 2019

наш сайт электронной коммерции, использующий Django-oscar, в настоящее время обрабатывает создание заказа после того, как пользователь заплатил, что может привести к проблеме, описанной в https://github.com/django-oscar/django-oscar/issues/2891. Мы хотели бы перейти к созданию заказа со статусом pending, как толькоПользователь завершает оформление заказа, а затем выполняет его после оплаты.

В настоящее время мы не уверены, каковы последствия этого, поэтому я надеялся найти несколько примеров этого процесса создания заказа, к которому я мог бы обратиться за нашим переходом. Использует ли Django-oscar этот поток по умолчанию из коробки, или существуют существующие приложения с открытым исходным кодом, которые мы могли бы проверить на примерах?

Заранее благодарим за любую помощь

Технические подробности:

Python version: 2.7  
Django version: 1.11  
Oscar version: 1.6

1 Ответ

0 голосов
/ 05 ноября 2019

Это довольно широкий вопрос, на который сложно дать краткий ответ, но есть несколько советов о том, как это реализовать:

  • Оскар не делает много предположений о том, что вашпорядок работы есть. Вы должны определить конвейер , который описывает, какой статус заказа вы хотите, и какие переходы может сделать заказ между статусами. После определения сотрудникам легко установить статусы заказов с панели инструментов или сделать это программно с помощью Order.set_status().

  • Если вы реализуете статус pending, то вам может потребоватьсяпереопределить некоторые из поведения по умолчанию, которое имеет место в OrderPlacementMixin при создании заказа - например, вы можете не захотеть отправлять электронное письмо с подтверждением заказа на этом этапе, и в этом случае вам нужно переопределитьsend_confirmation_message() и вместо этого отправьте электронное письмо позднее (например, в ответ на сигнал order_status_changed.

  • Полностью зависит от варианта использования, но, возможно, вам придется подумать очто произойдет, если, скажем, платеж не пройдет. Просьба к клиенту начать все сначала, возможно, не идеальна, и в этом случае вам может понадобиться способ предварительно заполнить новую корзину элементами из неудавшегося заказа.

Нет общедоступного исходного кода для вышеперечисленного, но все это возможно с Оскаром.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...