这个问题更多是概念性的而不是技术性的,我似乎找不到好的解决方案。我正在使用链式支付和自适应支付 API 开发一个高流量电子商务网站。
在销售和随后的 Paypal 交易期间,我的网站应该在什么时候减少库存以防止过度订购?
我遇到的许多开源电子商务网站似乎只有在收到并确认 IPN 后才会减少库存;然而,在高流量网站上,如果不同的买家在相近的时间范围内购买同一商品,则可能会导致产品的过度订购。另一方面,如果在收到付款之前库存减少,需要等待多长时间才能作废未付款订单并重新进货?最好的解决方案是什么?
预先感谢您就此主题提供的任何建议。
最佳答案
我们正在使用以下流程;
- 每个项目在“库存”数据库表中都有一个条目。我们每个产品没有单一的“数量”字段,因为它不能确保 1:1 的一致性。 (我们对其进行了类似于 http://kylebanker.com/blog/2010/04/30/mongodb-and-ecommerce/ 的建模,但在 MySQL 中实现了它)
- 一旦将商品放入购物车,我们就会对其设置 10 分钟的“保留”时间(这意味着有 10 分钟不活动,而不是添加商品后总共 10 分钟)
- 当客户去结账时,我们将时间延长至 20 分钟(以便他们有时间输入所有详细信息。您可能会惊讶于有些人需要花多长时间)
- 当客户使用 PayPal 时,我们会将时间延长至 3 小时。这绝对不理想,因为这意味着库存非常低的商品可能会在很长一段时间内“缺货”。然而,这是 Paypal 对 payKey 的时间限制,将保证付款要么已经完成,要么永远无法使用该 key 进行。
- 收到 IPN 后,您会将库存商品永久设置为“不可用”
正如我提到的,3 小时的 session 超时并不理想,因此我们正在考虑使用 Embedded Payment Flow Using Adaptive Payments这将允许我们使用 JavaScript 来跟踪 session 时间,并在 session 时间超过 30 分钟时强制刷新页面。
我很想听听 Paypal 是否有更好的解决方案。理想情况下,如果我们能够在用户返回网站后实现“快速结帐”式付费电话,而不是依靠 IPN 来完成订单,那就更好了。
关于paypal - Paypal 交易期间何时减去库存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10841028/