ASP.NET MVC中的购物车和并发

时间:2012-04-13 11:41:15

标签: c# asp.net-mvc

我刚刚开始考虑构建购物车,并且在设计它时遇到的问题之一是在这种情况下做什么 - 比如产品A剩余库存水平为5.然后客户A到达他们可以选择他们需要的数量的页面,他们选择3.但他们还没有确认订单/付款等。然后客户B来到现场并选择数量4.然后出现问题,如果两个客户然后确认他们的订单,其中一个将遇到错误,因为库存水平将在他们做出选择后减少。处理这个问题的标准方法是什么?它是否可能创建一个“暂停”字段并在每次用户选择数量时添加到该字段,以便该股票被搁置直到它们确认或取消?如果他们不取消但只是离开网站怎么办?

只是寻找可能已经处理过这个问题的人的一些指示。

4 个答案:

答案 0 :(得分:1)

在计算某种产品的可用库存时,您应该考虑“库存预订”。您决定何时将某个购物车行放入“预订”模式,以及何时再次“释放”它。

我已经实施了一个商店,当用户开始付款时,“预订”,当用户取消付款时“已发布”或付款成功后“已发出”

保留时,不要忘记仔细检查可用库存。

答案 1 :(得分:0)

好吧,

在用户未确认订单之前,您不应该保留库存。 如果我在你之前买了一个产品,你应该收到一条消息,告诉你有人已经买了它,或者只是说有足够的库存

它会让你免于麻烦

答案 2 :(得分:0)

我的立场是什么 你想要实现购物卡,而你遇到一个问题,而一个用户登录和托盘买东西:)

这是解决方案.. 问题出现是因为购物卡是用户之间的共享。 你可以为登录用户维护购物卡的tmp列表。 当他们准备付款时,将其添加到购物卡中并显示详细信息。

注意:您必须在执行此操作时处理库存。

答案 3 :(得分:0)

我可以建议您不要锁定用户项目,直到他到达订单确认页面,并且具有适当的锁定持续时间,标记在特定持续时间内保留的项目,在此之前订单应该完成或者项目被反映回来在库存中。如果你看一下Amazon Cart help page,这就是它所说的

  

将商品放入购物车并不能保留该商品。   单击“放置您的”后,只为您的订单保留一个项目   订单按钮并接收我们收到您的电子邮件确认   顺序。

极端情况是在最终订单完成之前不保留,或仅在您到达付款页面时保留。

您需要最小化阻止窗口并处理存在冲突的情况(通过提供延期交货选项)