电商后台之库存系统
编辑导语:在电商系统里,库存系统是其中必备的一个系统,要建立一个良好的库存系统,就需要了解清楚其中的几个重要概念。本文从库存是什么、为什么要做、库存的变化以及缺货的解决办法这几个方向出发,介绍电商后台中的库存系统,一起来看。
电商系统有一个绕不开的系统,那就是库存体系。库存体系的设计对于电商的货物扭转有着非常重要的作用。想要设计一套库存体系首先就是要了解库存是什么、为什么做、库存的变化、缺货怎么办。今天我将围绕以下几个方向来详细讲解一下电商中的库存体系。
一、库存是什么
广义:具有经济价值的任何物品的停滞与储藏,是供将来使用的所有闲置资源。
狭义:就是仓库里存放的东西。
二、库存从何而来
对于仓库而言,所有的库存一开始均来自于采购入库。
从各销售平台层面讲,允许先有库存再销售和先销售再有库存(预售)两种模式。
三、为什么要做库存体系设计
保持一定的商品库存是为了减少供应商供货不到位或不确定性带来的风险,是满足一些计划之外的意外需求或者临时需求,并且实际的需求和预测是有差异的。
1)库存过少带来的风险
- 可能产生应对紧急订单的困难,造成客户投诉或因此失去市场或客户;
- 产生供应风险,需启动紧急计划;
- 因供应风险的产生,可能导致紧急采购,进而引发采购成本的上升;
- 因可能产生供应紧张,造成因此产生的紧急配送或空运,增加物流成本。
2)库存过大带来的风险
- 增加仓库面积和库存保管费用,从而提高生产成本;
- 占用大量的流动资金,造成资金呆滞;
- 造成成品和原材料的有形和无形损耗。
3)负库存带来的风险
- 增加商品的不明损耗;
- 产生缺货;
- 损失商品毛利。
四、电商系统的库存体系
商库存体系分为了三层:销售层、调度层、仓库层。
1. 销售层
指我们前台的商品数量,也就是我们平时在电商 app 前台看到的库存数量,销售层库存不足时,前台就显示缺货,无法售卖。
这一层主要面对前端手机用户,一般情况下,前端库存要和实物库存保持一致,即不能超卖。但是做预售时,就是虚拟库存,下单时涉及到的库存动作只在销售层,待到备货之后,再推送至调度层。
销售层的库存决定是否可售卖,下单是否能成功。在秒杀时,活动库存决定了是否可以秒杀成功;预售时,预售库存决定是否可下定金预定。
可销售库存:网站前台显示的库存,可以对外售卖的库存。当“可销售库存>0”时,前台网站则会显示商品可销售;而“可销售库存=0”时,前台网站则会显示商品缺货。
锁定库存:用户下单锁定库存,支付后扣减库存。锁定库存指的下单时占用库存,保证客户下单后支付的订单都是有货可发,而不会相互冲突。
已销售库存:统计商品已售数量。当支付成功,商品就算作已销售库存。如果取消订单或售后就需要走相应的库存变动流程变动。
活动库存:主要是做促销活动(例如秒杀)时,分配固定数量的商品给相应的活动,这时候就需要从可销售库存中占用相应数量给活动库存。这部分库存也是走相应的锁定、扣减逻辑。
预售库存:这部分是虚拟库存,主要是拉动式需求,例如B端订货、双十一定金预售等。预售同样走相应的锁定、扣减逻辑。不同的是,预售的订单需要备货之后,再推送至调度层。
2. 调度层
调度层汇总了所有仓库的库存(仓库可能有多个),调度层负责向销售层同步商品库存,并供各大平台上的订单下载后在OMS(订单管理系统)占用/扣减/释放/返还,产生缺货信息。
调度层相当于订单的分配中心,将订单转化为发货单,按照调度规则决定哪些sku(商品编号-最小存货单位)由哪个仓库发货。(现在已经被引申为产品统一编号的简称,每种产品均对应有唯一的SKU号)。
调度层的库存分为单仓、区域、总库存三个维度,区域库存指的是这些仓库只发某一区域的,例如京东华中地区的仓库配送华中地区,北京就无法从华中地区的仓库发货。总库存即所有仓库的库存总计。
账面库存:仓库中的实物库存,只要是未出库的都算在账面库存中。
可用库存:仓库中可供发货的库存。这部分库存是可供调度的库存。
在途库存:下了采购单但是尚未入库的库存,在途库存理论上部分是可供销售的,例如T+1的在途库存,就是1日之后就可以入库的sku。
不可销售库存:仓库盘损的库存,仓库中的不良品,无法售卖的库存。这部分库存需要通过特定途径处理。
已用库存:在调度层已分配的库存。
调度层在某些方面上和前端库存有些重叠,前端库存也会分区域和总库存,但是不同的是,调度层对应的是实物,不会存在虚拟库存,流到调度层的订单经由调度后推动至仓库发货。
3. 仓库层
仓库层负责向调度层同步商品库存,每一个仓库的账面库存与调度层的仓库总库存是一致的,通过调度层的订单会下发至WMS系统进行占用/扣减/释放/返还。
仓库层的库存对应的是实物库存,出库入库盘点都会引起仓库库存的变动。
可用库存:发货单推至仓库后,仓库可以用于发货的库存,不包括锁定的库存。
锁定库存:发货单推送至仓库后锁定库存,锁定时同时去锁定库位库存。
已出库库存:已经确认出库的实物库存。
不可用库存:盘点时发现的不良品,需要报损,从可用库存转化为不可用库存。
库位:仓库中的库存是由库位库存组成的,库位上分为可用库存、锁定库存两种。
五、库存是如何变化的
1. 销售层
销售层分拍下减库存和支付减库存,拍下减库存会涉及占用,支付减库存不会涉及占用,两种方式对库存的影响,如下图所示(这里假设购买的商品是2件):
(拍下减库存)
(支付减库存)
以上是销售层自有的库存占用/释放/扣减/返还逻辑,除此以外,销售层还会接受来自调度层的库存同步,同步行为一般定时产生。
2. 调度层和仓库层
由于调度层和仓库层库存交互的业务比较多,这个地方一起来介绍。
- 整个流程从调度层这边开始,销售处产生了新的订单给调度层;
- 正常情况下占用库存增加,如果库存足够被占用,那就占用库存层的拣货区库存,如果拣货区库存足够占用的话,那就出库,仓库的库存减少,总库存也减少,占用库存也减少,这是一个正常的流程。
中间会有几个分支:
- 在仓库层这边,假如加入拣货区库存不够被占用,那就会生成待补货订单,这个时候需要进行仓库移位,把仓库的库存移到拣货区,让拣货区的库存增加;
- 同样在仓库层这边,在盘点库存的时候,如果出现盘亏(也就是仓库的实际库少于账面库存,通常是被偷了等),那仓库的库存也要扣减,如果出现盘盈,那仓库库存就要增加,当然,如果有新商品入库,仓库库存也要增加;
- 在调度层这边库存,如果库存不够被占用后,会产生缺货订单,等待仓库补货,或者退换货等行为导致库存增加,补上之前的缺货订单,库存能够被占用。
六、缺货该怎么办?
OMS层(订单管理系统):
缺货处理在企业内部需要运营层、客服、采购三方协作共同完成。运营负责提供可选的解决方案,如告知客服可与客户协商更换其他同类型产品或告知客户退款取消;采购负责进行订货并反馈订货到货时间;客服负责联系购买客户,向客户沟通运营提出的解决方案,如客户坚持等,则告知预计的到货时间信息。
采购到货后优先保证缺货订单中先下单的用户先发货。产品层面需要给三方提供一个协作平台,将彼此的信息共享做到透明化。
WMS层(仓库管理系统):
缺货指的是拣货区缺货,系统需要告知仓库拣货区缺货的数量,仓库作业人员从存储区补货至拣货区可解决拣货区缺货问题。
本文由 @今夜睡桥底 原创发布于人人都是产品经理,未经许可,禁止转载。
题图来自Pexels,基于CC0协议。
小白有一点不明白问一下:为什么OMS层有库存足够占用的判断,WMS层也有一个拣货区库存足够占用的判断,这俩有什么区别。后者应该是仓库内拣货区的可售库存是否足够,那前者指的是什么呢?
oms层的库存不是实体库存呀,只是一个数字,反映到前端就是app上的库存数字,反馈给wms就变成了实体库存的缺货
很体系化的介绍