问下一般电商网站中,下单和减库存是怎么设计的

2020-09-03 14:01:13 +08:00
 rqxiao

1.下单 2.减钱 3.减库存

这几个步骤如果出现瓶颈,一般用什么应对方案

10625 次点击
所在节点    程序员
90 条回复
zzw252
2020-09-04 12:17:25 +08:00
一般运营场景是对超卖敏感,所以会下单就扣减库存;少部分场景下对超卖不敏感(供应链很强能保证快速跟进补货,或其他可能),可能就会选择支付才扣减库存。具体要结合服务的场景来设计方案
hi543
2020-09-04 12:37:56 +08:00
别吵了,京东和天猫都是下单减库存。抢购的商品下单有效期只有十几分钟。普通商品 24H 。
neptuno
2020-09-04 13:28:35 +08:00
下单扣虚拟库存吧,支付成功扣实际库存?
gavincoder
2020-09-04 14:24:51 +08:00
哈哈哈,我来总结一下:
①下单减库存,即当买家下单后,在商品的总库存中减去买家购买数量。下单减库存是最简单的减库存方式,也是控制最精确的一种,下单时直接通过数据库的事务机制控制商品库存,这样一定不会出现超卖的情况。但是你要知道,有些人下完单可能并不会付款。
②付款减库存,即买家下单后,并不立即减库存,而是等到有用户付款后才真正减库存,否则库存一直保留给其他买家。但因为付款时才减库存,如果并发比较高,有可能出现买家下单后付不了款的情况,因为可能商品已经被其他人买走了。
(☆)预扣库存,这种方式相对复杂一些,买家下单后,库存为其保留一定的时间(如 10 分钟),超过这个时间,库存将会自动释放,释放后其他买家就可以继续购买。在买家付款前,系统会校验该订单的库存是否还有保留:如果没有保留,则再次尝试预扣;如果库存不足(也就是预扣失败)则不允许继续付款;如果预扣成功,则完成付款并实际地减去库存。
sudoy
2020-09-04 14:42:34 +08:00
别的平台不大清楚,亚马逊电商系统是允许卖家设置最大购买数量的。不过亚马逊出来这个可能主要还是因为防止卖家之间相互恶搞、测试对方库存等等。一旦下单就锁库,给一定的时间完成支付,超时就取消锁库。
typeday
2020-09-04 15:09:02 +08:00
@gavincoder 京东就是 1 啊,所以会有人骂锁单狗。苏宁是 3 。
leekafai
2020-09-04 15:37:13 +08:00
库存 已锁 已售

可售=库存-已锁-已售
下单,已锁+1
支付成功,已锁-1,已售+1
交易阻断,已锁-1
GG668v26Fd55CP5W
2020-09-04 16:02:14 +08:00
下单就减,然后锁定一段时间,典型的场景是在线卖电影票。
Anjaxs
2020-09-04 16:52:41 +08:00
一般分为 实际库存(商品还没出库的数量), 虚拟库存(商品被购买了,但是还没出库), 锁定库存(有些商家需要预定的或者其他情况),可购库存(可以购买的数量)
实际库存=虚拟库存+锁定库存+可购库存
下订单:减可购库存, 加虚拟库存
过时未付款:加可购库存, 减虚拟库存
出库: 减虚拟库存, 减实际库存
因为是 tob 的暂时还没有遇到瓶颈, 不过有用到 redis 锁
d119
2021-01-15 09:16:47 +08:00
还是说一下吧,京东是哪种,淘宝是哪种,苏宁是哪一种,亚马逊是哪一种

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/703857

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX