我正在尝试为我的学校项目创建一个电子商务网站,但我很困惑何时更新数据库中的数量。当我要将产品添加到购物车或我完成订单时?如果我减少当我在购物车中添加产品并且客户没有完成订单时的数量我必须再次增加数量。所以唯一的方法是在客户完成订单时更新数量,如果有2个客户去到最后一页然后放一个if语句来检查数量以便最终确定订单,如果2个客户中的一个拿走了最后一个产品,那么另一个会得到一条消息,如"我们很抱歉,最后一个产品出售前2分钟"。 这是正确的思考方式吗?还有其他想法吗?(对不起我的英文。)
答案 0 :(得分:1)
你基本上有两个选项,它们都是有效的:
1)如果您所销售的产品需求量很大(您的数量有限,并且期望很多用户购买它,例如音乐会门票或航班机票),您可以“保留”产品当用户选择它时(这是售票员处理它的方式)。这总是使用与预订相关联的计时器来完成,因此如果用户没有完成他的购买,该项目可以再次使用,而其他一些用户可以购买
2)如果你有大量股票并且不认为很多用户会对特定项目感兴趣,你可以只存储用户在会话中选择的项目,一旦一切都好,减少金额db上的项目。在这里,您还应该考虑何时从信用卡收费... b / c如果您收费然后减少,您可能必须取消它(费用为您)。因此,在这种情况下,理想的情况是减少库存并向数据库收费,如果您没有用完用户订购的东西。如果你这样做了,你应该向用户说明情况并让他找到“类似物品”或做任何你认为最好的事情......但是,我不建议仍然处理剩余物品的发票,它可能不会对用户有意义(即购买个人电脑和行李包,电脑不可用......你还应该运送背包吗?)
无论如何,希望它有所帮助。
答案 1 :(得分:0)
这是什么叫做竞争条件。
在这种情况下,您需要更新第一位客户的库存以完成交易中的交易,并通知其他客户库存已消失,或者使用您的第一个想法并减少库存但是如果客户取消再生。要么应该与计划合作。
答案 2 :(得分:0)
嗯,这个问题的答案与这个特定商店的政策密切相关。这里有一些可能性:
还有一些,但这是您需要评估的“政策决定”。
如果它们是唯一或已停产的产品,那么您需要相应调整(显然客户不能等到它们返回库存)。
我也做过这样的事情,客户可以要求在商品退货时收到通知。
我建议做最大化转化的事情,并限制对客户的挫败感。
答案 3 :(得分:0)
当我试图建立我的第一家电子商务商店时,我遇到了类似的问题。我做的一件事是在db中提供临时存储,例如current_stock,并将其用作伪库存。当一个客户将该项目放入购物车时,该数量将从伪存储中扣除,并且在订购时扣除实际库存。伪股票成为浏览网站的用户的可见股票。
希望它有所帮助!