Workflow 购物车-结帐时已售完或可用物品较少的流程?

Workflow 购物车-结帐时已售完或可用物品较少的流程?,workflow,shopping-cart,solution,concept,Workflow,Shopping Cart,Solution,Concept,我为客户设计了一个购物车解决方案。对于他们的一种商品(例如糖果),每种类型都有一定的销售量。购买物品后,我从可用数量中扣除 糖果购物流程如下: 在糖果目录页面上选择(添加到购物车)糖果 转到购物车页面查看要购买的项目 转到结帐页面(账单信息+要购买的项目列表以及价格总详细信息) 相关情况: 客户A从剩余的10个窃笑者中选择9个客户B选择剩余10个窃笑者中的5个。结账时,客户B在客户A之前提交付款信息(剩余5个Snicker),后者购买了9个Snicker 现在,客户A将在结帐页面上留下一条消息,

我为客户设计了一个购物车解决方案。对于他们的一种商品(例如糖果),每种类型都有一定的销售量。购买物品后,我从可用数量中扣除

糖果购物流程如下:

  • 在糖果目录页面上选择(添加到购物车)糖果
  • 转到购物车页面查看要购买的项目
  • 转到结帐页面(账单信息+要购买的项目列表以及价格总详细信息)
  • 相关情况: 客户A从剩余的10个窃笑者中选择9个客户B选择剩余10个窃笑者中的5个。结账时,客户B客户A之前提交付款信息(剩余5个Snicker),后者购买了9个Snicker

    现在,客户A将在结帐页面上留下一条消息,说明发生了什么事(即,-Oops..yur candiez r all gone!),包括哪些糖果卖完了,或者供应量减少了。在这里,我不确定流动应该在哪里继续(希望这甚至是一个好的开始)

    客户是否应该获得一个链接,返回到他们的购物车,在那里他们选择的项目保持不变,并留给他们删除和继续购买?或者,这些物品是否反映了每种物品的新数量,因为客户A购买了9个士力架,购物车将向客户显示添加的5个士力架(剩余5个)?或者,这些物品是否应该全部从购物车中移除

    另一个解决方案(由Andreas Niedermir和E.Rodriguez建议):在客户向购物车添加物品时扣除库存

    如果这是我的实现,如果客户离开网站,我将在什么时候/如何将项目添加回库存?我的车不是DB驱动的


    任何反馈都很好,我很乐意澄清。

    如果是我,我会引入一个中间状态,在选择数量时,candiez被视为“已售出”。根据其他购物车功能(“例如,为laterz保存ur candiez”),您可能希望在一定时间后将其重新分配回可用的库存池。。。但我相信,当顾客想要它们的时候,就像在商店里一样,如果他们把它们放在购物车里(即使不买),那么下一位顾客只能看到可用的东西

    我个人更喜欢另一种方式:当项目添加到购物车时,会保留一定的时间(例如会话超时)。
    如果某个商品卖完了,或者在添加时可用的数量较少,则用户会得到一个较早的提示。记住:没有什么比结帐时收到一个糟糕的“oops”更令人沮丧的了

    最初,我正在编写解决方案,但我不确定如何触发定时重新分配回库存池。(顺便说一句,我的车不是DB驱动的)这几乎就是我实现的,所以我标记为答案。不客气,谢谢投票。如果我不认为mod hammer会像超级马里奥一样击中我的头,我会给你+1,因为你在问题中的幽默方式。提出一个令人信服的问题会有很大帮助。我想Joel Spolsky会很高兴的。比如说用户将物品添加到购物车,然后完全离开网站。我将如何和/或在什么时候将这些物品重新分配到库存中?好吧,无论你采取一种方法还是另一种方法,我认为这是一个你必须回答的问题,即何时将它们重新添加。如果你想让它们在会话结束时、24小时后或一周后过期,那么关键是要有一个中间方法来管理库存水平,从用户拥有“所有商品”到其他客户想要购买更多已售完的商品。不过,我同意在结账时这样做太晚了。当请求购买时,屏幕顶部可能会出现某种警报?如果您在asp.net上运行,则会出现会话结束事件。否则,我会添加一个添加到您的数据层的时间戳(不管是什么),并在“现在有什么库存”上查询它-检查/显示/…我正在用PHP做这件事(我应该这样标记),并将客户的项目存储在他们的会话中。我理解在这里添加一个时间戳,然后在经过这么长时间后触发重新分配。这是我最困惑的部分,我很抱歉,但是当客户不再阅读网站时,我如何访问他们的会话时间戳呢?使用PHP解决了这个问题。谢谢你们的真知灼见。两个答案在我看来是一样的。当用户将商品添加到购物车中时,只要他们购物(活动时间),商品就会保留在购物车中,一旦他们停止活动20分钟,所有商品就会重新分配到库存中。我使用cron作业每分钟检查会话数据(特别是时间戳)。