我目前正在使用PHP / MySQL构建电子商务网站。最近,我一直致力于购物车的整合。客户希望确保股票可供潜在买家使用,因此我创建了库存管理系统。购物车的工作原理如下:
我的问题是,这种情况的最佳做法是什么?我这样做了吗?主要的是客户不想出售他没有的股票。
我希望讨论如何改进功能,或者其他人正在做些什么来实现这一目标。
答案 0 :(得分:15)
另一种方法可能是在将库存放入购物车时预留库存。每次重新加载页面时都要进行检查,如果该项目不再可用,请显示“您想要购买的商品刚刚售完的消息。很快就会提供”。然后从购物车中删除该产品。
现在,您必须在开始付款操作之前保留购物车内容,然后根据付款的成功/失败将其从库存中删除或删除储备。你可以在一次代码运行中做得更好,这样保留时间会尽可能短暂。
ProcessOrder ()
{
bool reserved = ReserveShoppingCartContents ();
if (reserved)
{
bool paymentStatus = ProcessPayment ();
if (paymentStatus)
RemoveShoppingCartContentsFromStock ();
else
ReleaseShoppingCartReserve ();
}
else
{
RefreshShoppingCartContents (); // Remove positions or adjust quantities
MessageBox ("Could not reserve your shopping cart contents. Please check out your selection");
}
}
您的储备持续时间越长,您的物品实际售出的可能性就越大。您最小化冲突的可能性:CustomerA从购物车开始,物品被保留,CustomerB来,看到物品没有库存并且消失,CustomerA决定他不喜欢价格并取消操作。您有两个潜在客户,但无法销售。
答案 1 :(得分:3)
我会在结帐过程中检查每次重新加载页面时的库存,如果在此过程中商品已售罄,则会将其重定向到购物车页面并显示错误消息。 只有在订单确认后才会减少库存 如果订单被取消,我也会恢复库存。