何时在paypal交易期间减去库存

时间:2012-05-31 20:46:13

标签: paypal e-commerce cart inventory

这个问题更具概念性而非技术性,我似乎无法找到一个好的解决方案。我正在开发一个使用链式支付和自适应支付API的高流量电子商务网站。

在销售和随后的paypal交易期间,我的网站应该减去库存以防止过度订购?

我收到的许多开源电子商务网站似乎只在收到并确认IPN后才减去库存;但是,如果单独的买家在很短的时间内购买相同的商品,那么在高流量的网站上,这可能会产生过度订购的产品。另一方面,如果在收到付款之前库存减少了,它应等待多长时间才能取消未付订单并重新库存?什么是最好的解决方案?

提前感谢您就此主题提出任何建议。

2 个答案:

答案 0 :(得分:2)

我们正在使用以下流程;

  1. 每个项目在“库存”数据库表中都有一个条目。我们每个产品没有单一的“数量”字段,因为它不能确保1:1的一致性。 (我们将其建模类似于http://kylebanker.com/blog/2010/04/30/mongodb-and-ecommerce/,但在MySQL中实现了它)
  2. 我们对物品放入购物车后设置了10分钟“暂停”(这意味着10分钟不活动,而不是10分钟时加入物品)
  3. 当顾客去结帐时,我们会把时间延长到20分钟(让他们有时间输入他们的所有细节。你会惊讶地发现需要多长时间)
  4. 当客户进入Pay​​Pal时,我们将其提升至3小时。这绝对不是理想的,因为它意味着非常低的库存物品可能长时间显得“不可用”。然而,这是PayPal对payKey的时间限制,并且将保证付款已经完成,或者无法使用该密钥进行付款。
  5. 然后,一旦收到IPN,您将库存项目永久设置为“不可用”
  6. 正如我所提到的,3小时会话超时并不理想,因此我们正在考虑使用Embedded Payment Flow Using Adaptive Payments,这将允许我们使用javascript来跟踪会话时间,并强制页面刷新,如果他们花了很长时间比说30分钟。

    我很想听听Paypal的某个人是否有更好的解决方案。理想情况下,如果我们能够在用户返回网站后实施“快速结账”式付费电话,而不是依靠IPN来完成订单,那会更好。

答案 1 :(得分:0)

只是浏览一下API(认真地说Paypal有多少API)我认为IPN是你最好的选择。为什么?因为这是知道你口袋里有钱的最可靠方式。

对于任何在线系统,您可能会遇到过度订购,但这只是业务的一部分。解决此问题的唯一方法是在向客户收费之前进行数量检查。