购物车和库存管理

时间:2009-08-31 12:03:26

标签: php mysql e-commerce shopping-cart

我目前正在使用PHP / MySQL构建电子商务网站。最近,我一直致力于购物车的整合。客户希望确保股票可供潜在买家使用,因此我创建了库存管理系统。购物车的工作原理如下:

  • 客户添加一定数量的商品 他的车。
  • 项目数量保留自 数据库中的可用库存。
  • 没有人可以购买保留 库存。
  • 股票一直保留至客户 处理订单 - 然后库存 从数据库中删除。
  • 如果客户放弃购物车,库存仍然保留。
  • 如果其他客户希望购买商品,但只有可用库存由其他客户保留,则客户可以在预订库存处于非活动状态20分钟后窃取。

我的问题是,这种情况的最佳做法是什么?我这样做了吗?主要的是客户不想出售他没有的股票。

我希望讨论如何改进功能,或者其他人正在做些什么来实现这一目标。

2 个答案:

答案 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)

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