2015-09-07 28 views
1

我读了关于documentation实现与MongoDB中一个购物车的方式,但我对流量的疑虑。直到用户执行结账或购物车到期MongoDB的购物车,如何检查和更新库存

随着每一个用户进入购物车中的产品时这种实现中,支付金额保留到客户不提供给其他买家。

这种做法是一个问题,因为,根据经验,深受广大用户的不买结束,留下一段只保留了他的产品,因此不实惠。 这会导致销售损失。

例如:

  • 存在与5个批量中分贝产品
  • 客户端 “A” 与量使该产品在篮5
  • 然后在db可用
  • 0产品
  • 另一个客户端“B”进入网站,不能购买该产品到底
  • 客户“A”离开现场留下的车已满。
  • 购物车将在一小时后自动清除。

结果:一个小时的产品不能被任何人购买!

我认为更好的办法是只在结账的实际金额进行检查和更新。
这样你就不会失去太久的销售。

这种方法的问题是在数量的原子更新的实现。

您对这种方法有什么看法?
您是否计划实施?

回答

0

如果我是你,我会使用多个记录相同的集合中的每个产品放入购物车,但有10分钟的TTL上“在购物车”类型的文档的索引(见蒙戈TTL文档)。然后,使用db.col.aggregate(...)可以对这些记录进行求和并从可用总数中扣除计数。如果用户没有购买,TTL将自动删除de文件。如果他购买,您可以真正从可用总额中扣除使用doc.update和$ inc的负值,并删除相关的购物车文档。

产品文档:

{ 
    type: 'product' 
    product_id: 123, 
    available: 4 
} 

在推车文件(S)为多如 “正在购物” 或abandonned车:

{ 
    type: 'in-cart' 
    product_id: 123, 
    customer_id: 1, 
    taken: 2 
} 

{ 
    type: 'in-cart' 
    product_id: 123, 
    customer_id: 2, 
    taken: 1, 
} 
相关问题