在重定向到基于表单的支付网关之前/之后处理订单

时间:2016-02-11 21:17:52

标签: e-commerce payment-gateway django-oscar

我正在使用电子商务框架django-oscar(奥斯卡)。 在奥斯卡,结帐流程如下:

  1. 收集送货信息。
  2. 选择付款方式并收集付款明细。
  3. 预览订单并确认。
  4. 冻结篮子(以防止操纵),处理付款并下订单。
  5. 我正在整合基于表单的支付网关(需要发布带有付款详细信息的表单),现在结帐流程变得混乱:

    • 一个。收集送货信息。

      湾选择付款方式。

      ℃。预览订单并确认。

      d。冻结篮子并下订单。

      即重定向到支付网关。

      F。退货时将订单标记为已付款。

    我遇到了这些问题:

    1)(c)和(d)必须一步完成,因为在(e)之前站点和用户之间没有交互 - 我无法将客户POST重定向到支付网关,因此单击'确认'直接将他/她移动到那里。由于订单已经在预览页面显示时放置,因此客户无法从那里返回 - 篮子将是空的。我可以在预览和支付网关之间放置另一个页面,但这看起来不像一个优雅的解决方案。还有另外一个吗?

    2)下订单意味着分配物品并将其从库存中移除(其他客户将无法购买),否则当客户从支付网关返回时,某些物品可能变得不可用。不可避免地会有一些订单未付款,因此项目将被保留。他们何时以及如何“无保留”并重新回到股票中?

    在我看来,这些问题不是奥斯卡特定的,那么处理它们的最佳做法是什么?

    谢谢!

    P.S。我发现了一些关于在奥斯卡(https://groups.google.com/forum/#!topic/django-oscar/ccClzX6M9ToIntegrating a redirection-included method of payment in django-oscar中整合基于表单的支付网关的讨论,但没有讨论概述的问题。

1 个答案:

答案 0 :(得分:0)

在交易完成后从库存中删除产品。 并显示客户的新订单号。

让客户知道他们将收到一封电子邮件,其中包含所有相关详细信息,包括他们刚刚订购的产品。

获取购物车商品并将其插入订单商品数据库表。换句话说,公共购物车表应与用于存放订单商品的表完全分开。那么你不必担心“冻结”购物车桌等等。

  

如果产品在客户上市时不可用,该怎么办?   支付网关(其他人更快购买)?

对于大多数商家来说,这种情况不会经常发生。但在正常业务过程中,产品没有库存的条件会有所不同。然后,商家联系客户以查看是否有其他适合的商品或者他们退还交易。

如果您有特定座位的音乐会门票或在几分钟内售罄的限量版印刷品,那么您需要一个不同的系统。

基本上你会事先告诉客户你要拿着这个项目说5分钟 - 他们有足够的时间来完成交易。并且您在每一步都提醒他们,如果他们没有完成购买,他们可能会丢失该项目。