【问题标题】:Handle eCommerce Cart Items处理电子商务购物车物品
【发布时间】:2013-11-19 19:47:07
【问题描述】:

我正在构建一个电子商务系统,并且正在考虑处理添加到用户购物车中的商品的最佳方式。

例如,假设我要购买我刚刚添加到购物车的产品,如果该产品有 10 件商品,则自动只有 9 件可用,但由于某种原因我现在不想要它只是关闭了我的浏览器,我应该如何取消该请求?

我的意思是,由于没有确认付款,我如何将 9 个可用产品再次变成 10 个?

我正在考虑使用会话来执行此操作,例如,当您将商品添加到购物车时,您将有 5 分钟的时间进行确认,否则它将再次可用,但只有当该用户不断浏览网站,所以我可以验证,但如果他刚刚关闭你知道吗?

有什么帮助吗?

你的, 迪奥戈

【问题讨论】:

  • 拥有众多现有的购物车电子商务网站,您为什么要自己编写?
  • 客户希望这样......

标签: php session e-commerce cart


【解决方案1】:

您在用户进行结帐后更新您的库存数量,而不是在他将其添加到购物车时。 如果一周内或您选择的其他时间未付款,则将其重新入库。

另外,您检查每个请求或当他到达购物车页面时,如果所有物品仍然可用,也许有人在此期间购买了它,并通知用户。

但是,如果您在添加到购物车时坚持更新库存,那么您将不得不将购物车内容保存在数据库中,并通过更新最后一次请求的时间戳来跟踪用户活动。您执行一个 cronjob,每 x 分钟检查一次非活动用户并将项目放回库存。您可以在页面上添加一些自动 ajax 请求,因此如果用户没有关闭浏览器但只是让他保持活动状态。

【讨论】:

  • 是的......我可以看到没有简单的方法来处理这个问题,我希望使用服务器上的某种会话功能,但我相信最好的方法是 cronjob......
  • IDK - 许多人在付款前就放弃了购物车。所以根据你所说的,这些商品一周内都不会在商店里买到。无论如何要考虑...
  • 时间可能会有所调整,但您必须先锁定已订购的商品才能付款。所以现在的问题是,你打算给用户多少时间来付款?
【解决方案2】:

简短的回答:让每个人都尝试买断你,直到有人成功支付给你,然后其他人都被告知库存不足。

长答案:假设有 2 个人争夺所有 10 项。假设您没有 AJAX。两人都看到 10。两人都将 10 件物品放入篮子。两者都输入了他们的信用卡信息,然后都单击提交到 order.php。 order.php 中的第一件事:获取互斥体。检查库存。如果库存充足,请刷卡。如果收费成功,则减少库存并释放互斥体并返回成功。如果库存太少或卡失败,释放互斥锁并返回错误。

【讨论】:

    【解决方案3】:

    您在信用卡交易完成后扣除库存。大多数人没有完成他们放入购物车的购买。

    与此相关的另一个切线是人们可以将东西放入购物车而不购买——很长一段时间。因此,在结帐阶段 - 除了确认手头的库存之外 - 您还要确认价格,以防价格发生变化。

    相关问题是一位客户尝试订购更多但手头有库存。他们将 5 个放入购物车,而您只有 3 个。通过检查库存,您可以给他们一个礼貌的信息。

    您应该在“购物车”中存储的只是产品 ID 和数量。任何时候添加到购物车或更新数量,在结帐阶段 - 您确认库存并获取所有购物车项目的价格。

    这也是为了防止有人入侵您的购物车、更改价格并给自己打折。最低要求是——当客户点击购买按钮时不要发送产品价格。仅发送产品 ID 和可选数量,然后根据您从产品表返回的信息进行定价和总计。

    【讨论】:

      猜你喜欢
      • 2011-10-15
      • 1970-01-01
      • 2011-07-01
      • 2014-08-05
      • 2017-03-03
      • 2015-06-01
      • 2020-01-14
      • 1970-01-01
      • 2015-07-26
      相关资源
      最近更新 更多