2012-04-13 93 views
1

我刚开始看建立一个购物车,并已拿出设计是什么在这种情况下做的一个问题 - 比如产品A的剩余股票级别为5.然后客户A到达页面,在那里他们可以选择他们需要的数量,他们选择3.但他们还没有确认订单/付款等,然后客户B来到现场并选择数量为4。然后问题就出现了,如果两个客户都确认他们的订单,他们中的一个会遇到一个错误,因为他们选择后库存水平会降低。处理这个问题的标准方法是什么?每次用户选择数量时,是否可能创建一个“暂停”字段并添加到该字段中,以便将该库存留出,直到他们确认或取消为止?如果他们不取消但只是离开网站会怎么样?购物车和并发在ASP.NET MVC

只是希望从任何人谁可能已经处理了这个问题,一些指点。

+0

我会避免在保持标志处理的场景,那里是一个冲突,因为系统中的任何错误可以让你有很多的产品不正确搁置(您可能有超时,但它只是额外的复杂性)。我会选择一个简单的检查确认购买与一个简单的信息,如:“对不起,我们不再有这个项目的股票 - 下次尝试快一点!” – musefan 2012-04-13 11:45:13

+0

您是否考虑过现有产品?一个例子http://nopcommerce.codeplex.com/也许你可以从那里得到一些东西。 – Dante 2012-04-13 11:47:15

回答

1

计算的可用库存为某种产品时,应考虑到“股票保留”。您决定何时将某个shoppingcart行放入“Reservation”模式,以及何时再次“释放”它。

我已经实现了一个商店,股票“保留”在用户开始支付的时刻,这是“释放”当用户取消支付“出台”的时候,支付成功

不要忘了仔细检查可用的股票,当它被保留。

0

那么,

直到用户不确认订单,你不应该保留股票。 如果我在你们面前买一个产品,你应该得到一个消息,告诉你已经有人买了,或者干脆说没有不是足够库存

这将是我下的自由,你的很多头痛

0

立场是 希望实现购物卡,你面临的一个问题,而更多的则一个用户登录和托盘买东西:)

这里是解决方案..出现 的问题,因为购物卡是用户之间共享。 您可以为记录的用户维护购物卡的tmp列表。 虽然他们准备付费添加购物卡,并显示详细信息。

注意:您必须在做这件事时处理库存。

0

什么,我可以建议你将是直到他到达订单确认页面,AA适当锁定时间标记特定时间保留项目的顺序应该是完整的,否则项目将反映这之前,不会锁定用户项目回到库存。如果你看看Amazon Cart help page,这里是它所说的

把物品放在你的购物车中并不包含你的物品。 的项目仅保留订单,您点击后,请将您的 命令按钮并接受,我们已经收到您的订单 电子邮件确认。

一个极端的情况是,直到最终订单完成时才会保留,或者只有当您到达付款页面时才会保留。

您需要最小化阻塞窗口(通过提供缺货选项)