由于各种遗留问题,库存一直很乱,最近库存的问题得到暴漏、重视起来,简单聊下我们使用的库存计算方式。
库存分可销售库存、实际库存两种
A:可销售库存
定义:用户app下单时校验的库存
可销售库存扣减时间节点:
1、订单支付成功扣减库存
我们是采用这个方式运行的,订单支付成功扣减库存
优点:商品库存是已经付钱的用户占用,这样在商品库存是很少的情况下,能被有真实需求的用户去占用,可以提升商品的利用率。
缺点:商品加入购物车、提交订单、支付时校验库存,订单提交后,商品变成库存不足,会造成用户支付失败,这种已经生成订单但是由于库存不足无法支付的情况会影响用户体验
2、订单生成扣件库存
当商品商品库存很充足,可以采用订单生成去预扣减库存
商品库存很少,有些平台是采用订单生成预扣减库存,在15分钟(有的是半小时)未支付订单取消同时增加库存,这种机制能保证提交订单的人会有库存,同时通过短时间内自动返回库存来保证商品是被有真实需求的用户占用。
这种情况恶意被刷库存,可以长时间占用库存
B:实际库存
定义:商品在仓库里面的数量
我司售卖的商品中存在加工环节,仓库里有原箱、成品、包裹
实际库存=原箱+成品+包裹
原箱:商品作为原材料的最小单位,可以加工成售卖的sku
成品:商城售卖的sku
包裹:商品打成包裹
C:订单占用库存
- 定义1:成功支付订单占用库存
增加时间节点:订单支付成功,订单占用库存增加
减少时间节点:
1、订单中商品出库时
2、订单支付成功且订单中商品未出库,对订单申请退款时
可销售库存 = 实际库存 - 订单占用
- 定义2:订单生成占用库存
增加时间节点:订单创建成功,订单占用库存增加
减少时间节点:
1、订单中商品出库时
2、订单支付成功且订单中商品未出库,对订单申请退款时
3、订单超时未支付状态变成已取消
可销售库存 = 实际库存 - 订单占用
PS:共用库存逻辑
我们的商品需要自加工,同一个商品会被多个sku占有,就出现了多个sku共用一个商品库存的情况。又是一个大坑。。
可以用平均、根据销量分配。。