另一种方法可能是在将库存放入购物车时不保留库存。每次重新加载页面时执行检查,如果该项目不再可用,显示一条消息,如“您要购买的项目刚刚售罄。很快就会有货”。然后您从购物车中删除产品。
现在,您绝对必须在开始付款操作之前保留购物车内容,然后根据付款的成功/失败将其从库存中删除或删除保留。您在一次代码运行中做得更好,以便保留尽可能短地持续。
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");
}
}
您的保留时间越短,您的商品实际售出的机会就越高。您将发生冲突的可能性降到最低:客户A 从购物车开始,商品被预订,客户B 来了,看到商品没有库存并离开,客户A 决定他不喜欢这个价格并取消操作。你有两个潜在客户,但都不能卖给任何一个。