库存变动的逻辑概念
一. 库存定义
1.1 定义概念
对资产量化属性的管理控制,库存的管理主要功能以入库入库、出库为核心流程,具备时效性的控制库存数量。库存的变动/库存流水当遇到高并发(多平台库存数据同步更新)的情况时,可采用后台MQ消息队列的方式进行相应库存数据的变更。避免因库存同步不及时,导致库存不一致的问题
1.2 库存结构
库存公式:总库存=可销售库存+订单占用库存+不可销售库存+锁定库存+调配占用库存-调配中库存-虚库存
库存是一个动态变量,在商品售卖层面一般分为销售库存,实物库存,可用库存,锁定库存,已售库存,活动库存(活动促销的库存/可共享普通库存也可设置独立库存),预售库存(预售活动设置的虚拟库存/预售订单需支付尾款订单后生成)
1.3 库存属性
库存分类标准:A类是20%的商品占价值的80%/B类是30%的商品占价值的15%/C类是50%的商品占价值的5%
在定义库存字段,需要从七个方面来规范。相应的规范格式表格如下
- 最小长度:允许用户输入的最小小数位数
- 最大长度:允许用户输入的最大小数位数
- 存储长度:数据库中存储的小数位数
- 是否抹零:小数点位数在【最小长度,最大长度】之间 且 尾部带0,0是否抹掉
- 超出取值:小数点位数超出最大位数是用四舍五入、向上取整、还是向下取整
- 超出最小值:是给提示,还是直接取最小值
- 超出最大值:是给提示,还是直接取最大值
二. 库存体系
2.1 分层规则
电商库存体系分为三层销售层、调度层、仓库层;每一层的都具有独立或关联的库存变化情况
销售层(App/Web):消费用户从下单到付款后,对应产生的在商品销售层面的库存扣减占用
调度层(OMS):类似于库存的分配中心,区分账面库存(未在仓库层出库的库存),可用库存,调度中的库存。生成库存的流转调度
仓库存(WMS):对应实物库存管理,区分可用库存,锁定库存,已出库库存等。记录仓储层面的库存变动
2.2 库存变动示例
库存场景:A仓库的库存的初始库存为30个商品,消费用户购买商品10个。下单后退货1个,支付后退货2个,收货后在退货3个。以下为当前场景下库存变动的变动示例
总库存=可销售库存+订单占用库存+不可销售库存+锁定库存(+)-虚库存(+)-调拨占用库存
三. 可销售库存与订单占用库存
3.1 可销售库存
面向消费用户端展示的库存情况,一方面可用来预测实际库存的销量与预警,另一方面可以防止别人看到实际的库存数量
SKU可销售库存>0:实际库存充足。SKU可销售库存<=0,展示的商品库存为显示无货,同时引导消费用户进入到货提醒流程
可销售库存作为商品库存,在数据分析层面的作用可用于实际库存的预警,通过分析不同阶段的销量,设置库存预警值。
- 当库存>商品销量X时,库存充足
- 当0<=库存<=商品销量X时,库存紧张
- 当库存<0时,库存无货,进行到货提醒流程
3.2 订单占用库存/库存扣减
订单与库存的交易关系中,消费用户的下单支付和库存发货的流程可能是同时发生的。为了在系统中避免出现超单超卖,或者库存恶意占用的情况
通用的库存扣减方式:用户下单扣减,用户付款扣减,活动扣减
- 下单扣减:可能会大量占用库存,导致其他人无法获取库存购买。可采用订单锁定库存时间/超时自动取消————活动下单扣减:秒杀
- 付款扣减:用户下单后未支付/已支付的获取库存。后续支付发生超单大于库存数量问题。需要设置超单的付款订单自动退款机制————活动类付款扣减:拼团,降价,预售
四 不可销售库存与锁定库存
4.1 不可销售库存
在库存中发现的损坏不可用的库存商品,则需要从可销售库存转化为不可销售库存。因为商品的特定原因进行特定处理的库存,这种库存建议直接在商品的SKU编码上对不可销售库存进行特殊的标注,专门对于不可销售库存进行管理
4.2 锁定库存
锁定库存在电商的活动中应用普遍,锁定部分库存用于促销活动等。将总库存中的一部分商品锁定为参与活动的库存或不参与活动的库存。系统中也需要设立机制,防止库存锁定影响正常可销售的库存
活动库存:在系统中分配固定数量的可销售库存用于促销/秒杀活动,对应的这部分活动库存进行相应的扣减锁定流程。特别注意:活动库存有两个概念“扣减与商品库存同步(共享库存),适用于满减赠送活动,或者独立占用分配出来的库存,活动结束后将剩余的活动库存返回到可销售库存中”
预售库存:同样在消费用户支付预定金的进行虚拟库存(设置一个虚拟库存值)的扣减锁定。因为在调度层之前。预售的库存是未来要备货产生的库存
五. 虚库存与库存调拨
5.1 虚库存
可以定义为一种为了应对市场商品需求,面向消费者展示的一种库存(累加到+可销售库存中)虚库存在真实的仓库中是不存在的,属于一种可快速上下调配的库存区间。
- 若某种商品目前的消费需求量少,但可以先从商品供应商获得商品的订单(订单库存),暂时安排到库存中定义为虚拟库存
- 若某种商品的需求量很大,但实际库存中缺少对应的商品库存,若在商品供应商短时间内可以供给商品转为库存。在这个期间的库存也可定义为虚库存
5.2 共用调拨库存
不同地区之间的库存变动过程中,经常会遇到调拨占用的情况。例如A仓库要将10个货物调拨到B仓库。此时在A仓库发起调拨后,需要在系统层面将A仓库要调拨的10个货物定义为调拨占用库存(不可销售的)。在调拨过程中,同时B仓库也要增加10个货物定义为调拨占用库存(不可销售的)。在调拨过程中,此时双方共同变动调整的库存为共有调拨库存/一增一减
- A仓库:总库存=可销售库存+订单占用库存+不可销售库存+锁定库存-虚库存+调拨占用库存+加10(调拨中库存)
- B仓库:总库存=可销售库存+订单占用库存+不可销售库存+锁定库存-虚库存+调拨占用库存—减10(调拨中库存)
六. 风险控制
6.1 库存风险
库存过少的风险,缺货导致利润损失。库存过大的风险,闲置占用库存且增大资金压力。订单周转停滞,失去市场客户。采购成本的上升。物流成本增大
6.2 库存控制
库存对数量、时间、频率、范围以及可预测性进行合理范围控制。控制库存的数量在一个变化范围或概率区间。同时预测库存在不同时期(短期,中期,长期)考虑未来的形式与趋势,库存调拨影响库存变化的调度规则,涉及多区域库存管理
控制下单过程的库存变化以及库存变化的应用场景,控制库存占用的节点。通过提交订单扣库存(恶意占用库存)或者完成支付扣库存(超单超卖)。也可以采用比较适中的方式通过在提交订单后预扣库存(预扣可销售库存),付款后在占用库存(Hugh Kim)