经验分享:电商库存体系设计笔记

12 评论 18865 浏览 165 收藏 11 分钟

最近在做仓库库存管理相关的项目,清晰地了解了仓库是如何管理库存的,并且整清楚了各个系统的库存是如何交互的,整理了下分享给大家。

库存是什么

这里是百度百科给出的解释:

“库存(inventory)”一词的定义是:“以支持生产,维护,操作和客户服务为目的而存储的各种物料,包括原材料和在制品,维修件和生产消耗品,成品和备件等”。

  • 狭义:“仓库里存放东西”。
  • 广义:库存就是具有经济价值的任何物品的停滞与储藏,是供将来使用的所有闲置资源。

库存从何而来

从WMS层面讲(对于仓库而言),所有的库存一开始均来自于采购入库;

从各销售平台层面讲,允许先有库存再销售和先销售再有库存(预售)两种模式。

库存相关的要素

一般我们在天猫上看到的库存就是某某品有多少件,管理的库存相关元素不多,仅有SKU编码/名称、可用库存、占用库存这些,但是在真实的仓库层面需要管理的库存相关的元素就会多很多了:

  • 仓库——标识商品在哪个仓库;
  • 供应商——标识商品来自哪个供应商;
  • 货品编码——ERP系统按照规则为SKU生成的编码;
  • 货品名称——企业员工在ERP系统为SKU定义的名称;
  • 生产批号——商品生产批号信息,可在实物包装盒上找到;
  • 生产日期——商品实物的生产日期,可在实物包装盒上找到;
  • 有效期——商品实物的有效日期,可在实物包装盒上找到;
  • 注册证号——商品实物的注册证号,可在实物包装盒上找到,医疗器械商品专用;
  • 货主——仓库作为第三方仓库(存放的货物不是自家的)存在时需要标识货物是哪家企业的;
  • 货位——标识商品所在货位,方便拣货推荐货位(精确至货位需要系统层面的大力投入和线下作业精细化,挑战比较大);
  • 账面库存——见下文介绍;
  • 占用库存——见下文介绍;
  • 可用库存——见下文介绍;
  • 入库时间——用来计算商品的库龄(在仓库的时长),库龄配合供应商账期可用来计算商品的库存资金占用情况。

至于这些要素如何入和如何出的,放到以后再详说。

几个有关库存的名词解释下(下文有用)

账面库存:仓库实物体现在系统中的数量,顾名思义它仅仅是系统中的一个数字,仓库实物真正的数量可能与账面库存不符,所以就有了盘点业务。

占用库存:标识商品库存暂时为部分订单所有,占用库存一般用来防止超卖,统计缺货信息等。

释放库存:是与“占用库存”相对的概念,订单通过取消、换货、合并单等操作会释放原有的占用库存,库存释放后可供后面的订单继续占用。

扣减库存:订单占用库存后的下一步操作,确认当前库存为某订单所有后(如订单出库等),会扣减商品占用库存和总库存。

返还库存:有关库存的逆向操作,如订单支付后取消会返还商品在销售平台上的库存,订单出库后取消出库会返还商品在WMS系统中的库存。

可用库存:可用库存是用公式减出来的,可用库存=总库存-占用库存,表明当前还有多少数量可以使用,像我们在淘宝前端看到的商品数量就是可用库存。

电商系统的库存体系

电商系统一般将库存分为了三层:销售层、调度层、仓库层。

  • 销售层:即销售平台(天猫、京东、苏宁等)上的商品数量,供平台订单占用/扣减/释放,销售层库存不足时,一般不允许继续售卖。
  • 调度层:调度层汇总了所有仓库的库存(仓库可能有多个),调度层负责向销售层同步商品库存,并供各大平台上的订单下载后在OMS系统占用/扣减/释放/返还,产生缺货信息。
  • 仓库层:仓库层负责向调度层同步商品库存,每一个仓库的账面库存与调度层的仓库总库存是一致的,通过调度层的订单会下发至WMS系统进行占用/扣减/释放/返还。

三者之间的关系如下图所示:

电商库存体系设计笔记

销售层、调度层和仓库层库存是如何变化的

1. 销售层

销售层分拍下减库存和支付减库存,拍下减库存会涉及占用,支付减库存不会涉及占用,两种方式对库存的影响,如下图所示(这里假设购买的商品是2件):

电商库存体系设计笔记

拍下减库存

电商库存体系设计笔记

支付减库存

以上是销售层自有的库存占用/释放/扣减/返还逻辑,除此以外,销售层还会接受来自调度层的库存同步,同步行为一般定时产生。

2. 调度层和仓库层库存如何交互

由于调度层和仓库层库存交互的业务比较多,所以将引起两者库存变动的业务在一张图上显示了。

电商库存体系设计笔记

与库存管理相关的问题

1. 缺货(库存过少)

发生缺货了怎么办?

OMS层:

缺货处理在企业内部需要运营层、客服、采购三方协作共同完成。运营负责提供可选的解决方案,如告知客服可与客户协商更换其他同类型产品或告知客户退款取消;采购负责进行订货并反馈订货到货时间;客服负责联系购买客户,向客户沟通运营提出的解决方案,如客户坚持等,则告知预计的到货时间信息。

采购到货后优先保证缺货订单中先下单的用户先发货。

产品层面需要给三方提供一个协作平台,将彼此的信息共享做到透明化。

WMS层:

这里的缺货指的是拣货区缺货,系统需要告知仓库拣货区缺货的数量,仓库作业人员从存储区补货至拣货区可解决拣货区缺货问题。

怎么防止缺货?

OMS层:

还是协作。一方面需要运营尽量做出精准的销量预测,并将之反馈给采购;采购根据销量预测、库存情况、供应商补货时长等信息及时做出采购,如果中间有特殊情况(如停采、供应商补货时长过长等)也需同步反馈给运营,方便运营及时调整销售计划。

当然缺货是无法完全避免的,这就涉及到一个概念,供应链管理的目标是使供应链盈利最大化,供应链盈利最大化情况下的缺货数量是最适合企业的。

关于具体的预测方法和计算如何使供应链盈利最大化,后面再讨论。

WMS层:

可以设置补货预警,拣货区商品数量到达预警线之下后触发预警通知,仓库作业人员可在拣货区真正缺货前及时补货,不用等到真正缺货再去补货。

2. 库存资金占用(库存过多)

影响周转库存的因素有很多,比如需求的不确定性、供应商的补货提前期、供应商端的促销政策、每次的订货成本、库存持有成本等等,如何确定一个最优的订货批量和安全库存还是要以供应链盈利最大化为前提。

具体确定的方法后面研究透彻后再讨论。

3. 为什么企业内部的库存管理需要分成OMS层和WMS层

分工不一样

OMS层不涉及实物管理,可以基于仓库所有的库存统计订单缺货信息;WMS层涉及到实物的分库区管理甚至分货位管理,订单下发至WMS后仅会占用拣货区库存,而仅占用拣货区库存是无法知道订单真实的缺货情况的(漏了存储区)。当然如果企业的WMS不需要将库存精细化管理至库区或货位的,是可以共用一套库存系统的。

系统边界明确,方便扩展兼容

如果企业的OMS系统和WMS系统用的不是一家软件公司的,或者需要更换其他公司的服务,仅需做下库存接口对接就行了不需要做大的调整。所以还是那句话,什么系统就做什么事,边界理清楚了,事情就做正确了。

以上仅是个人工作过程中的总结,具体是否适合自己当下的企业,还要具体情况具体分析,如有疑问欢迎讨论哟。

 

作者:青柠,微信公众号:【一只进化中的产品汪】(pm_move_forward),欢迎交流。

本文由 @青柠 原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自Unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 销售层的商品可以仓库存的商品用的是同一个管理吗?

    来自浙江 回复
  2. 赞文章,可以私信沟通一下吗?

    来自北京 回复
  3. 请问那个例子里,2种销售层减库存的方式,为什么订单退款取消占用库存都不变呢?按照占用库存是标识商品库存暂时为部分订单所有,那么既然是暂时为某个订单所有,订单取消了,占用库存应该是从2变为0 呀? 希望老师解答,谢谢~

    来自广东 回复
    1. 我没看太懂文档这2种,我认为 下单占库存 和 支付占库存是占库存的时机不同,肯定是都要占库存。比如一般是下单占库存,秒杀肯定是支付占库存

      回复
  4. 感谢分享。想问作者一个问题,销售层和调度层的系统边界应该如何理解呢,销售库存和OMS库存为何要分开呢

    来自浙江 回复
    1. 系统之间因为数据库是独立的,无法获取到各自系统的数据,需要通过接口获取,销售层存在于ERP/运营中台,OMS可以使用第三方软件也可以自主研发,无论购买/研发都是独立于运营中台系统外可能域名都会不一样,产品结构和系统架构都不能偶合,各自处理系统内业务。

      来自上海 回复
  5. 感谢分享,最近在设计工厂的库存体系,羡慕可以完整追踪的库存,目标工厂的零进零出,零进整出,隔离库等等把我快搞疯了。。。。

    来自上海 回复
    1. 共同学习

      来自江苏 回复
  6. 感谢作者分享经验,已学习。
    期待作者分享更多经验

    来自北京 回复
    1. 好哒

      来自江苏 回复
  7. 感谢分享,

    来自北京 回复
    1. 不谢嘻嘻

      来自江苏 回复