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

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

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

  1. 收集送货信息。
  2. 选择付款方式并收集付款详细信息。
  3. 预览订单并确认。
  4. 冻结篮子(以防止操纵),处理付款并下订单。

我正在整合基于表单的支付网关(需要发布带有付款详细信息的表单),现在结帐流程变得混乱:

  • 一个。收集送货信息。 湾选择付款方式。 C。预览订单并确认。 d。冻结篮子并下订单。 即重定向到支付网关。 F。退货时将订单标记为已付款。

我遇到了这些问题:

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

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

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

谢谢!

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

e-commerce payment-gateway django-oscar
1个回答
0
投票

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

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

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

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

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

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

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

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