前言
一直没花时间整理OMS/WMS相关的库存变化示意图,然后最近跟大家讲这一块业务的时候发现,还是要自己动手画个图,来的更加清晰明了,于是就有了下面的这两张图。
不同的业务场景,不同的系统都会有不同的解决方案,以下两张图是我参考了市面上主流的一些系统而做出来的,适用的场景也有限,仅供参考哈。
入库:OMS推送到WMS,WMS收货,WMS上架,最后回传OMS状态和数据; 出库:OMS推送到WMS,WMS分波,拣货,复核,称重,出库,最后回传OMS状态和数据;
入库
OMS创建了入库单之后,主要核心要关注的就是在途库存的一些逻辑判定,我们之前一般都是默认入库单推送到了WMS之后就会生成在途库存。在途库存是否算作总库存?这个需要自己和业务沟通,如果算作总库存,则在库存查询页的Tips上说明计算公式即可。
WMS接收到了入库单之后,一般会先收货,然后再上架,收货的时候可能还会有质检的业务,但是海外仓一般用的很少,我就没有体现了。
国内的WMS一般会认为收货的时候就增加库存,只不过这部分的库存是属于不可用的库存,所以会称之为“收货暂存库存”或者是“入库已分配库存”。既然收货的时候就增加了库存,那么“上架”这个动作就变成了将货物从收货暂存库位转移到实际的存储库位,所以库存的变化就是从收货库位移位到存储库位。上架完成之后,也就是货物移位之后,WMS的库位库存和可用库存就会增加,对应的OMS的在途库存也要转为可用库存。
出库
OMS创建了出库单之后,主要核心要关注的就是在什么状态下锁定库存,什么时候时候释放/扣减库存。对于海外仓OMS来说,不同的客户,不同的产品,不同的接口/平台进来的订单,要求的锁库节点都不太一样,所以这一块最好是做成可配置化的。但是一般来说,出库单推送到WMS之前肯定是要锁库的,这样才能确保WMS作业的时候是有库存的。
WMS接收到了出库单之后,有一些系统是不需要在WMS的总库存层面锁定库存的,因为上游ERP或者OMS已经锁定过了;但是也有一些系统是需要锁定的,因为上游可能有多个,同时上下游的库存可能会有差异,所以WMS自己锁一遍会更加靠谱。我个人倾向于的就是WMS再锁定一遍库存,双重保险。
进单的时候校验了库存,锁定了总库存的数量之后,就表示进单完成了。接着就要去分波,分波的时候会有拣货推荐,所以会根据推荐的库位去锁定库位上的库存,这个时候就是库位层面的锁定。
等到具体拣货的时候,从锁定的库位上拣货下架,货物会放在拣货车或者拣货筐中,这些都统称为“拣货容器”。所以,也可以理解为货物从货架的库位转移到了容器中,则库位的锁定库存要扣减,容器的库存要增加。
最后复核、打包、称重、出库之后,WMS需要扣减容器中的库存,同时也要扣减进单的时候锁定的库存,达到账实相符。这一块的逻辑基本上和国内的WMS是一样的,大家可以自行参考一些资料去对比看看。