实现 Django-oscar COD

Sha*_*rat 5 python django django-oscar

现在已经1周了,我无法弄清楚在django-oscar中实现COD的方法。如果有人至少能给我一个开始来完成这项任务,我将非常感激。我曾尝试使用很少的Github存储库,但它们要么已经过时,要么不够清晰,无法与项目一起使用。一个良好的开端足以让我从头开始。谢谢

den*_*emm 3

我还没有为 Oscar 实现 COD,但我已经在 oscar 源代码中挖掘了数周时间来寻找另一种非标准支付集成。难点在于支付涉及结账、购物篮、合作伙伴、订单和支付应用程序。保留原始签出views.py 文件的源代码,并经常参考它。

那么关键步骤是什么呢:

  1. 所有付款处理都发生在结帐应用程序的 PaymentDetailsView 中,因此您需要一个分叉的结帐应用程序来开始创建自定义 PaymentDetailsView 子类。
  2. 您需要重写Submit()方法,在该方法中创建订单号、冻结购物篮、将其保存在会话中并发送 pre_ payment 信号(只需复制/粘贴源代码)。由于此处不会进行付款,因此您此时需要从自定义的 Submit() 实现中删除该部分。
  3. 然后,您必须像付款已发生一样继续,并调用handle_order_placement(),这将调用handle_successful_order()
  4. 之后,当您的产品到达后进行付款时,您将需要为相关订单号实施handle_ payment(),并触发post_ payment 信号。

简而言之,就是这样,但显然还需要一些异常处理。希望这能让您开始!