繁体   English   中英

购物车和库存管理

[英]Shopping cart and stock management

我目前正在使用 PHP/MySQL 构建电子商务网站。 最近,我一直在研究购物车集成。 客户希望确保潜在买家可以获得库存,因此我创建了一个库存管理系统。 购物车的工作原理如下:

  • 客户将一定数量的商品添加到他的购物车中。
  • 项目数量是从数据库中的可用库存中保留的。
  • 没有其他人可以购买保留库存。
  • 库存保持保留,直到客户处理订单 - 然后从数据库中删除库存。
  • 如果客户放弃他的购物车,库存将保留。
  • 如果另一个客户想要购买一件商品,但另一个客户只保留了可用库存,那么如果该保留库存 20 分钟不活动,则该客户可以窃取该库存。

我的问题是,这种场景的最佳实践是什么? 我这样做正确吗? 最主要的是客户不想出售他没有的股票。

我希望就如何改进功能或其他人正在做些什么来实现这一点进行讨论。

另一种方法可能是在将库存放入购物车时不保留库存。 每次重新加载页面时执行检查,如果该项目不再可用,则显示一条消息,例如“您要购买的项目刚刚售罄。很快就会有货”。 然后您将产品从购物车中移除。

现在,您绝对必须在开始付款操作之前保留购物车内容,然后根据付款的成功/失败将其从库存中移除或移除保留。 您在一次代码运行中做得更好,以便储备尽可能短地持续。

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 决定他不喜欢这个价格并取消操作。 您有两个潜在客户,但无法销售给任何一个。

在结帐过程中,我会在每次重新加载页面时检查库存,如果在此过程中商品已售罄,我会将它们重定向到购物车页面并显示错误消息。 仅在订单确认后库存才会减少 如果订单被取消,我也会恢复库存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM