php - 购物车和库存管理

标签 php mysql e-commerce shopping-cart

我目前正在使用 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 决定他不喜欢这个价格并取消操作。您有两个潜在客户,但都不能卖给任何一个。

关于php - 购物车和库存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1357143/

相关文章:

mysql - WordPress-MySQL 在 :' Unknown column ' 中表示 'on clause' users.ID'

java - Java Multi-Tenancy 电子商务应用程序的 CMS 选择

asp.net-mvc - 需要有关 MVC 电子商务开发的建议

php - 如何在 Doctrine 中使用 CONVERT() 函数 MySQL

mysql - 错误 1064 在触发器中声明变量

javascript - 如何将jquery值传递给codeigniter中的php模型函数

php - 插入查询到MYSQL数据库

php - 分层导航 - 按其他类别过滤

php - 使用 jquery 验证插件检查数据库中是否存在电子邮件

PHP 表单提交 UTF-8