将订单创建到客户完成结帐时移动订单

问题描述 投票:0回答:1

我们使用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
python django django-oscar
1个回答
0
投票

这是一个有点宽泛的问题,很难给出一个简明的答案,但是一些有关如何实现这一问题的建议:

  • Oscar对您的订单工作流程没有很多假设。您可以定义pipeline来描述所需的订单状态,以及订单可以在状态之间进行的转换。定义后,员工可以轻松地从仪表板设置订单状态,或通过Order.set_status()以编程方式进行设置。

  • 如果实现pending状态,则可能需要覆盖创建订单时OrderPlacementMixin中发生的某些默认行为-例如,您可能不希望发送订单确认电子邮件在此阶段,在这种情况下,您需要覆盖OrderPlacementMixin,而稍后再发送电子邮件(例如,响应send_confirmation_message()信号。

  • 完全取决于用例,但是您可能需要考虑如果付款失败,会发生什么情况。让客户重新开始可能不理想,在这种情况下,您可能需要一种方法来用失败订单中的物品预先填充新的购物篮。

没有上面的公共源代码,但是使用Oscar都是可能的。

© www.soinside.com 2019 - 2024. All rights reserved.