关于库存管理,主要集中在两个层面进行:
1)交易库存:交易库存用于展示给用户,前端展示时商品可售状态,剩余可售数量,下单库存处理,支付库存处理,取消订单库存处理;通过对销售库存库存的管理,能够提供给用户提供更好的下单体验并支撑运营活动的开展。
2)实物库存与各个仓库或门店,包括三方代发货仓库库存的实物相对应;在入库是增加实物库存,出库时减少实物库存,并通过盘点、调拨、移位、报损等操作对实物进行协同管理。
设计库存体系时可适当借助已有的先进理念,同时也需要结合每个公司特殊的业务场景,不能为了套用其他公司的经验或行业先进理念而忽视了需要解决的实际问题,因此先汇总笔者所在公司库存相关的实际业务场景。
1.2.1 公司业务现状
目前存在的销售渠道可以分为三类:
1.2.2 库存体系相关业务背景
1.2.3 库存体系需解决的问题
基于以上,笔者根据公司实际业务场景,针对库存管理体系进行整体调整,将库存划分为三层结构:销售层、调度层、实物层。
相关逻辑如下图:
实物层定义为分别针对各个仓库及门店实物进行管理,通过仓库WMS系统,门店系统及三方代发货ERP系统管理实物进销存;在货品入库时增加实物库存,并在货品出库时扣减实物库存。
(由于不同的ERP系统,门店系统,WMS系统针对实物库存处理的逻辑会有一些差异,仅针对WMS系统的库存管理进行说明;另外,库存管理的最小粒度可以分为按产品的批次管理库存和按库位管理库存,这里仅针对基于库位的库存管理进行说明)
2.1.1 实物库存的维度包括:货主、虚拟仓、sku、批次、库存状态、库位
1)货主:货品实际归属的公司;
2)虚拟仓:同一个货主可能存在多个仓库或门店,该虚拟仓库的定义需要与实体的仓库区分开来,有可能同一个实体仓包含多个虚拟仓;
3)sku:仓库基于sku进行货物的进销存;
4)批次:同一个sku可能存在多个批次,不同的批次需要分开存储,这样在分配拣货库位的时候可以优先对生产日期比较远的货品进行优先发货;
5)库存状态:依据货品能否销售和销售限制可将库存状态划分为:合格品,不合格品,一残,二残,三残;其中一残,二残,三残可以根据用途进行自定义,如可打折出售的货品定义为二残,可内购出售的货品定义为三残,无法销售的产品定义为不合格品;
6)库位:库存的最小粒度,同一个sku,对应每一个批次的每一个库存状态占用一个库位。
2.1.2 库位及库存的其他属性
1)库存数量:特定的库位上,实物商品的数量。
2)库位类型:根据货品的实际位置可以划分为存储区,拣货区,到货区,质检区,发货区,在途区;对于到货区,质检区,发货区,在途区可以设定一个公共库位。
(商品是否在途根据是否存在来货单即ASN单来判断,来货单中包含的商品数量即在途库存,在途库存可能在运输途中也可能已到达仓库。严格来说,未上架的货品都可以定义为在途库存,包括到货区,质检区和在途区。)
3)作业状态:拣货作业分配库位后,中间存在等待拣货的时间,因此需要预先占用库存。另外由于盘点的原因,对应的货架位不能进行上下架作业。因此库位的作业状态可分为正常、待拣、待盘。
(分配拣货库位时,只根据正常作业状态的库存进行判断,上架作业时,因为货品还在质检区,上架分配时通过判断空库位是否存在上架作业单来判断即可。)
4)是否停售:特殊情况下,指定产品或批号的产品禁止出库,则对应库位的库存需标记为停售。
(停售商品批次对应的库位不能被分配拣货任务,同时也需要在复核的时候针对商品和批次进行再次判断以阻止出库)
调度层由于仓库实物汇总调度及多平台铺货的需要分为实物中央库存和分渠道销售库存,其中实物中央库存由于操作系统不一致,仓库类型不一致,自营与商家的区别等原因又可以分为三个模块:
2.2.1 实物中央库存
实物中央库存主要是分别汇总各个仓库的sku库存,对于仓库销售和发货业务做统一的调度。
汇总后实物中央库存分为几个维度:仓库(或虚拟仓)、sku、库存状态,其他库存属性包括:
1)总实物库存:即对应仓库中的实物按照sku及库存状态的维度进行聚合,计算库位类型为存储区,拣货区,发货区的货品数量。
2)在途库存:在途库存定义为已确定供应商发货但尚未上架的货品,在途库存同理按照sku进行聚合(默认库存状态为合格且未停售),计算库位类型为到货区,质检区,在途区的货品数量。
(发货区的货品对应的订单还没有完成,因此还算库内实物库存;到货区,质检区及在途区的货品由于无法正式出售所以只能算入在途库存。)
3)停售实物库存:即对应仓库中的实物按照sku及库存状态的维度进行聚合,计算已停售且库位类型为存储区,拣货区,发货区的货品数量。
4)可用实物库存:可用实物库存=总实物库存-停售实物库存。
5)成本价:按照移动加权平均的方法,计算总实物库存对应的成本价(盘点,报损出入库时,成本价不变)。
6)销售预占库存:订单提交成功且订单分仓完毕,则增加对应仓库的销售预占库存,取消订单或订单发运时扣减销售预占。
7)发货预占库存:订单同步至WMS成功后,则增加对应仓库发货预占库存,在订单发运或未发货(已同步)取消订单时扣减发货预占。
8)销售可用库存:销售可用库存=可用实物库存-销售预占库存(在计算分渠道库存时需要先算出仓库销售可用库存,销售可用库存发生变化时触发对分渠道销售可用库存的重新计算)。
在其他的文章及博客中也有作者的做法是不设销售预占库存,而是直接在分仓后进行发货库存预占。考虑到订单分仓之后,并不代表仓库一定要发货,中间存在订单履行的相关流程,存在时间差且订单可能取消。另外,分开两个字段也能更好的区分不同订单处理阶段情况,同时也给后面系统的拓展预留一定空间。
对于总实物库存,需要依据业务单据进行更新,通过入库单来增加库存,通过出库单减少库存。这样便于财务统一做账,让仓库的每一次实物变化都有理有据。相关业务操作包括采购入库,销退入库,销售出库,采退出库,盘点出/入库,报损出库,调拨出/入库等。
由于自营门店和商家都有自己独立的库存管理系统,对于停售实物库存,成本价,发货预占库存等都进行独立的管理,所以关于仓库的实物中央库存数据只包含可用实物库存,销售预占库存,销售可用库存。(不需要做发货预占,因为我们无法把控商家ERP和门店系统的发货情况。)
2.2.2 分渠道销售库存
分渠道销售库存主要作用为计算每个仓库针对各个渠道的销售可用库存,基本维度包括:销售渠道、送货方式、sku、库存状态。
在配置多平台分货相关规则时,赋予所有销售渠道的流量比例不能超过100%,否则有可能超卖,造成订单下单成功但无法发货的情况。(非自营配送仓如无必要的话,可以默认共享库存)
销售可用库存更新的及时性对提升多平台分货的精准性及防止前台超卖影响较大,在实物中央库存的销售可用库存发生变动时需即时更新分渠道销售库存并触发对销售层销售可用库存的重新计算。
销售层汇总三个服务模块(自营门店,自营仓库,商家仓库/门店)的分渠道销售库存,并对前台提供服务,校验前台下单数量,保证可销售数量和实物一致,防止前台超卖。
2.3.1 销售层库存维度包括:销售渠道,送货方式,库存状态,发货区域,sku。
相关属性包括:
对于三方平台而且,他们会基于三方平台再搭建一层库存体系,因此这种情况下,同步销售可用库存和销售预占库存之和过去即可。
2.3.2 销售可用库存相关计算规则
1)发货区域配置:这里的发货区域指在对应的销售渠道中,该仓库负责发货的区域,而不是仓库本身的发货能力(销售渠道基于时效,成本等因素直接给仓库的发货区域做出安排),因此需要针对每个渠道设置其合作发货的仓库及对应的发货区域,计算区域库存时,只汇总相关发货区域仓库的库存。
2)自营仓库之间的订单由于可以在内部重新进行分仓,所以自营仓库发货区域范围可以重叠(整体的自营仓库可以当做一个大仓库处理),其他的仓库或门店之间的发货区域不允许重叠。
3)SKU发货仓库配置:出于成本优化或资源独特性等原因,对于部分产品需要指定仓库发货,因此相关产品只汇总对应仓库的销售可用库存。
4)搭配商品库存:搭配商品由于本质上还是多个商品,所以取 (可用库存数量/搭配内商品数) 最小的数量作为可用库存即可。
物流IT圈
泛物流行业IT知识分享传播、从业人士互帮互助,覆盖快递快运/互联网物流平台/城配/即时配送/3PL/仓配/货代/冷链/物流软件公司/物流装备/物流自动化设备/物流机器人等细分行业。长按二维码即刻加入我们,如果你是以上行业公司中的IT从业人士加运营小哥微信后可入群交流。