关于WMS库存系统设计,这几点你需要知道

13 评论 9161 浏览 64 收藏 11 分钟

编辑导读:不管是采购行为还是销售行为,都会涉及到库存变动,库存管理的好与坏会直接影响到经营运转。因此,理解库存系统在业务作业中的库存变动是非常重要的。本文对WMS库存系统设计提出了自己的一点看法,与你分享。

从我入产品设计坑起,就一直在做B端的系统设计,其中接触最多的就是供应链管理系统。「供应链」简单来说,就是进销存管理“进货、销货、库存”,其中无论采购行为还是销售行为,都会涉及到库存变动,所以库存管理的好与坏会直接影响到经营运转。

熟悉和设计供应链,理解库存系统在业务作业中的库存变动是非常重要的,因为库存是所有业务发生的映射底层,从库存的流动能够看到各业务线的流转过程。

这里推荐刘宝红老师的供应链管理系列书籍,用比较白话的方式讲清楚了供应链的本质。供应链产品经理是重业务型的,好在大多情况下是比较通用的,针对不同的行业特性,具体问题具体设计方案就好,供应链的业务本质都是一样的。

这里我主要从三个纬度来阐述库存管理的意义和作用:

销售场景(触发库存出库行为):

  • 保证有充足的可用库存用于销售开单,当临时发生库存不足,下单后会触发紧急采购
  • 销售开单库存还未实际出库时,需要进行库存预占,以免他人开单使用库存导致库存不足无法出库

采购场景(触发库存入库行为):

  • 当销售开单判断无库存或库存不足时,会以紧急采购的方式补足库存进行出库,这种方式称为“以销定采”,采购入库后,系统会自动对应采购订单关联的销售订单进行库存预占和出库,从库存类型上需要做数据隔离
  • 商品sku一般会设定库存的阈值上下限,当库存数量触发阈值下限时,就会生成紧急采购订单
  • 线下产生补采需求,这是最常规的采购行为,会在系统上直接自建采购订单

资金流(核算采购和订单成本):

  • 库存不是越多越好,呆滞库存会导致管理成本的上升和资金积压的风险;但库存也不是越少越好,库存不足会在实际发生销售的时候错过销售机会,导致订单损失。所以供应链的管理核心就是有效的预估库存需求,合理的进行采购,避免“牛鞭效应”信息逐级失真,降成本,增效率
  • 每笔销售订单完结后,都需要进行财务核算,包括订单收入和成本,进而计算订单的毛利是多少,其中涉及到商品库存的订单成本都要从库存管理系统中取数,根据不同的核算方式(常见的有移动加权和先进先出)来计算。

在实际库存管理作业中,除了常见的入库和出库行为,其实还存在一些中间状态,包括占用库存、在途库存和待处理损溢库存。

  • 占用库存:就是在上面销售场景中提到的,当销售开单以后,一定要有占用库存这一步,以防被其他订单占用导致无法出库的情况发生,一般只有在订单结算后库存才会出库,如果取消订单则会释放库存(虽然可以走紧急采购,但是不到万不得已一般都会避免临时采购行为,因为临时采购的拿货价都会比市场进货价要贵不少,这样订单毛利就会变少)
  • 在途库存:是指已经发生的采购订单,但是还没有进行入库,这部分应该入库但是还未入库的库存也需要在系统中展示出来,以便系统或员工来判断是否需要进行下一次采购
  • 待处理损溢库存:这个字段一般是用于处理发生盘点差异后的盘盈或者盘亏,对于比较重流程的业务线,盘点结果与账面库存数对不上时,不会直接进行调整库存,需要在线下查明原因之后由库存管理员在系统中确认并备注原因,之后才会变动账面的库存数量

以上是理论上的知识,下面举一个实际场景的案例,来感受下库存管理系统中的库存流转:

A商品期初库存为100个,占用库存为0个,可用库存为100个。

场景一:

小明应顾客需求下了销售订单,出售A商品10个:账面库存=100,占用库存=10,可用库存=90

这个时候顾客不要了,小明无奈将销售订单作废了。账面库存=100,占用库存=0,可用库存=100

场景二:

小明又接待了一个顾客,一次性销售A商品120个开了个大单:账面库存=100,占用库存=100,可用库存=0

这次顾客很爽快的结了帐,等待拿货离店:账面库存=0,占用库存=0,可用库存=0

但是此次占用库存数量是不足以销售单出库的,小明就从隔壁店临时高价补采了20个,同时系统也自动触发了紧急采购订单,采购数量为20个,小明在系统上完善采购价格后一键入库,系统针对这笔销售订单进行了自动处理并出库:账面库存=20,占用库存=20,可用库存=0,紧接着账面库存=0,占用库存=0,可用库存=0

另外,存储库存会有相应的仓库和库位,在系统建设上也要考虑到多仓库和多库位的管理设置。

1. 仓库和库位管理

仓库分实物仓库和虚拟仓库,从物品所有权的角度来看,实物仓库一般记录的是本地库存,虚拟仓库记录的是物权为其他单位的库存(例如铺货场景,经销商将库存放置在门店,只有门店将铺货库存销售出去之后才会发生物权的变更,这种场景门店不需要承担库存积压的风险,只是可能毛利空间会被压缩)

完善的仓库基本都会有库位管理,每一个库位都会有库位编码,例如3L-01,含义就是库位在三楼的01号位置。库位也要区分类型,按可销售属性可以分为良品、残次品和不良品,良品库位就是状态良好的正常属性库存;残次品是有一些小瑕疵但不影响销售的库存(可以通过促销打折的方式销售);不良品是属于不可销售库存,通常是要追溯到所属供应商进行返场退货的。

2. 库存调整/盘点

一般情况下,除了正常的采购入库和销售出库,是不允许随意增减库存数量的,如有其他特殊情况需要入库和出库(比如入库数量记录错误,需要更正),会以其他入库和其他出库的方式进行同时备注原因。

期末会进行一次盘点来核对库存,根据不同的要求,可以是日盘,周盘,月盘或季度盘等,盘点方式分为两种:一种是盲盘,没有账面库存数量可以参考,完全凭实际盘点数量记录;一种是明盘,根据账面库存数量来核对实际库存数量是否准确。两种盘点方式各有利弊,盲盘因为没有参考数量可能出现多数漏数导致数量上不准确,而明盘则有可能发生盘点舞弊行为。

在库存差异获批对账面库存产生影响后,需要同时生成相应的盘盈入库单或盘亏出库单。理论上来说,无论是盘盈还是盘亏都需要查明原因,因为这是库存管理不当造成的,但实际情况下盘亏会更被重视,因为丢货带来的是实际的金钱损失。

3. 末尾总结

我一直认为库存管理是供应链系统的核心所在,它牵涉的面非常广,涉及库存管理体系的时候点线面都要考虑到,在进行其他相关业务线方案设计和改动的时候也要同时考虑对库存系统的映射影响范围,不然很可能因为考虑不周全给研发造成困难和风险。

供应链系统随着使用量的增长,功能逻辑和代码都会越来越复杂,越来越重,基本是牵一发而动全身的状态,所以供应链产品经理一定要完整的考虑整个业务线,尝试在大脑中构建业务模型,对每一个需求在系统中产生的影响心中有数,就能够很大程度的增加系统安全系数。

 

本文由 @周小妖 原创发布于人人都是产品经理,未经作者许可,禁止转载。

题图来自Unsplash,基于CC0协议。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 业务场景不同其实还有点区别,比如涉及到库位的锁定,因为有批次批号等。库位也是实际的,虚拟的是区域或者是通过业务去设定仓库

    来自江苏 回复
  2. 你好,咨询下在场景1中,账面库存=100,占用库存=10,可用库存=90,这样的情况下,前端商品页面展示的是账面库存100还是可用库存90呢

    来自广东 回复
    1. 读取的是可用库存,账面库存是指存放在仓库还未实际出库的所有库存数量,其中包含了可用库存和不可用库存,不可用库存这个概念,除了占用库存以外,还有不良品库位类型下的不可使用库存,也是不能被销售出库的。

      来自上海 回复
    2. 感谢,还有个问题想咨询下呢,一个店铺,在全国有本地仓库,区域仓库,全国仓库等这样的组织结构,例如在杭州的店铺,前端页面展示的是杭州地区仓库,以及杭州相关地区区域仓的sku数量综合嘛?应该不是全国各地的所有仓库的sku总和吧

      来自广东 回复
    3. 这种情况要看你们公司仓储物流管理的模式,有的是不支持跨区域仓和仓调拨的(因为涉及到物流费用和不可预估的货损风险),这种情况下门店看到的可用库存数量一般是区域仓库的可用数量,如果门店单多的话会由上游提申请跨区域调拨库存来缓解库存压力,一般情况下终端门店是不会看到全国维度的总可用库存的,因为看到也不代表可用。

      来自上海 回复
  3. 前排合影

    回复
  4. 深入浅出,大道至简!
    期待周小妖更多分享!

    回复
    1. 谢谢丁老师!

      回复
  5. 周总好厉害!

    回复
  6. 意犹未尽,还有很多可以讲的,期待下一篇分享。

    来自上海 回复
    1. 谢谢!对,wms系统真的要做好需要考虑很多细节,这一篇只是笼统的来讲,后面有机会会写详尽一些。

      回复
  7. 很棒,希望多分享案例

    来自浙江 回复
    1. 好的,收到😉

      回复