跨境电商海外仓(9):WMS的先进先出功能设计
编辑导语:仓库管理系统WMS是常见的B端产品,这一产品在海外仓业务中也十分常见。其中,拣货策略是WMS策略中的核心,合理的拣货策略有助于提升工作效率、降低成本。本篇文章里,作者针对WMS中的拣货策略进行了相应分析,一起来看一下。
在WMS中有很多策略,拣货的策略是核心中的核心,因为这对仓库作业的效率有很大的影响。好的策略不仅仅能满足不同类型的客户的业务需求,还能提升仓库作业效率,降低人工成本。
一般来说拣货的策略会包含三个大模块:
- 分波的策略;
- 拣货推荐的策略;
- 拣货路径的策略。
分波是将多个订单聚合在一起,一起作业。所以分波策略关注的是如何将订单的一些共性抽离出来,通过这些共性将订单聚合在一起,便于后续的拣货、复核、打包、称重等流程。
拣货推荐则是系统提醒拣货员应该去哪里拣货、拣多少货。所以拣货推荐的策略关注的是这个波次订单中的SKU应该从哪里拣货、拣多少数量。
拣货路径是指完成整个拣货任务需要在不同库位之间走动的路径。拣货路径关注的是一共要去哪些库位(类似于坐标),然后库位时间的距离、位置是怎么样的(类似坐标连线),通过一些算法得出路径的规划线路,帮助拣货人员节省时间。
对于海外仓或者一些国内的小仓库来说,由于系统智能化的程度还不够,所以拣货路径这一块一般做得都比较简单,很少有一些高深算法或者复杂的调度逻辑。
所以此次我们抛开拣货路径这个比较「高深」的话题,重点来聊聊在设计「拣货推荐库位」方面的产品逻辑时会遇到什么坑,要重点注意哪些内容。
很多人可能都听说过「先进先出」,英文简称为FIFO;那么与它相反的就是「先进后出」,简称为FILO,不过这个策略用的比较少,所以我们重点关注一下「先进先出」。
先进先出很好理解,就是先入库的先出库,这样可以保证货物不会积压太久导致过期、变质或者是被淘汰。仓库要满足客户的先进先出要求,那么就需要设置对应的策略来管理这些货物。
单拿这一个策略来说,先进先出一般会有两种处理逻辑:
- 严格的先进先出;
- 逻辑的先进先出。
一、严格的先进先出
严格的先进先出就是先进来的一定要先出去,不同的批次不能混放在一起。
举个例子。
仓库在上个月入库了一批iPhone 12,然后上架到了库位A上;这个月又要入库一批iPhone 12,按理说这应该是属于两个批次,所以不能放在同一个库位上。
因为iPhone都长得一样,如果放在同一个库位上,那就混在一起搞不清楚了。所以就需要将这个月入库的批次放在库位B上,以区分库位A的那个批次。
随着时间的推移,越来越多的iPhone 12要入库,库位都已经排到了库位Z了……
由于很多产品的外包装上并没有批次号,在入库上架的时候并没有记录批次号,当货物进入了仓库之后并不能直接通过货物来判断出对应的批次号。
一般的解决方式是:系统自动生成一个入库批次或者上架批次,然后与上架的实际库位做关联。
还是刚刚的例子,上个月入库的一批iPhone 12放在了库位A,那么记录批次为20210501(一般是按日期来生成);本月入库的一批放在了库位B,然后批次号为20210601,同样的道理,如果下个月还会入库一批,那么放在库位C,批次号则为20210701……
当需要出库的时候,系统经过查询iPhone 12最早的一个批次是放在库位A上,然后就会推荐拣货人员去库位A拣货。这样库位A的产品(批次更早),就会比库位B的产品(批次更晚)先出库,也就满足了我们想要的先进先出策略。
通过库位来区分批次所在
二、逻辑的先进先出
逻辑上的先进先出也可以称为宽松型的先进先出(这个名字是我自己取的),意思就是说对先进先出的要求没有很严格,有点宽松,有点放水。
上面讲到了严格的先进先出一般是通过不同的库位放不同的批次,也就是同库位不混批次存放的方式来解决的。
但是这个方式也有很明显的弊端,那就是:
- 太浪费仓库容量;
- 拣货速度会减慢。
同样的产品因为入库的批次不一样而放在了不同的库位上,相当于某个产品有多少个批次就要放在多少个库位上,这对于寸土寸金的海外仓来说,显然是有点不太能接受的,成本太高了。
其次,当某款产品遍布仓库各个库位的时候,对仓库作业人员来说也不太方便。本来这个地方一直是放着iPhone 12的,如果再入库iPhone 12,那我直接放在一起多好,上架的时候方便,拣货的时候也方便。
基于上述说到的两点弊端,聪明的仓库人员们想出来了逻辑的先进先出这种方式。由于海外仓有很多产品都是非效期的、非时效敏感的,类似于家具、玩具、衣服、手机、充电器等,即使没有先进先出其实也不会太影响其性能或者销售。
那么就可以考虑将这些产品混批次放在同一个库位上,这样出库的时候拣货人员可以在这个库位随意拿相应的数量,而不用过于纠结他自己拿的批次到底是更早的还是更晚的。系统会根据你拣货的库位去计算该库位上最早的那个批次是什么,然后对应的扣减这个批次的数量即可。
逻辑上的先进先出在海外仓系统中很常见,因为它既能帮助仓库节省容量,同时也能最大程度上保证用户的需求得到满足。同时,正是因为批次的引入,当仓库需要统计库龄的时候,也可以很好地实现按梯度计费(不同区间的库龄会有不同的计费单价)。
一个库位混放了不同批次
三、逻辑先进先出的问题
虽然说逻辑上的先进先出对海外仓来说有很多优点,算是当下的最优解了,但是这并不表示它就没有什么缺点。
其中有一些细节的逻辑还是需要产品经理们注意一下,避免踩坑。
即使是采用了逻辑的先进先出,随着入库的批次越来越多,还是不可避免地会出现同一个产品散落不同的库位上的情况。
SKU A001三个批次散落在三个库位上
当我们某次拣货需要SKUA001 12个的时候,我们就会遇到一个困扰。
如果是按照先进先出的要求,那么先查出来A001最早的是批次分别放在哪个库位,从上图可知应该库位A、B、C都有。
然后这个时候就需要引入二级策略(第二重判断):是先从A库位拣货还是从B库位拣货还是从C库位拣货?
选择哪个库位,是策略(判断逻辑)决定的,所以此刻我们一般会有三个策略可以选择:
- 按拣货优先级;
- 按清空库位优先;
- 按数量满足优先。
按拣货优先的意思是按库位的优先级,谁优先级更高,那么先从这个库位拣货;按清空库位优先的意思是先确保能将此库位的货物全部拣完;按数量满足优先的意思是先从库位数量足够的库位拣货,确保只在此库位拣货一次就够了;
当理解了这三个策略的意思之后,我们深入思考一下会发现,这三个策略好像有一些地方会有交织错乱。
例如当我选择的是「按清空库位优先」的策略,我清空了库位A之后,接下来库位B和库位C都能满足我的需求,那么我从哪个库位去选?当我选择「按数量满足优先」的策略后,库位B和库位C都能满足,那么我应该选择哪个……
通过上面的简短分析我们可以得出,「按清空库位优先」和「按数量满足优先」其实都会出现权重相同的情况(类似于高考总分相同)。
所以为了解决这个问题,我们就需要引入一个不太能出现权重相同的因素,例如策略1的「按拣货优先级」。当权重相同的时候,我们再去比较拣货优先级,看谁的优先级高,那就去优先级高的库位拣货。
逻辑缜密的朋友仔细一琢磨之后会发现,这个方案好像也有点问题。例如下图中的,如果库位A和库位B的拣货优先级一样的怎么办呢?是不是要在设置拣货优先级的时候限制优先级不能相同?
库位A和库位B拣货优先级相同
在拣货优先级的时候限制库位的优先级不能相同是一个解决办法,但是由于拣货优先级并不是必填项,必须要设置的。那么当仓库没有配置这些信息的时候,又怎么办呢?
别急,我们再回到刚刚说的那个高考的同分的例子。当张三和李四分数都相同且某个大学的名额只有一个的时候,我们现实生活中往往会采用什么办法呢?
对的,相同分数下比较语文成绩,语文成绩相同的情况下比较数学成绩,数学成绩也相同的情况下比较英语成绩……以此类推,直到最后比出一个排名的先后为止。
在拣货优先级的排名上,我们也可以采用类似的办法,拣货优先级都为空的情况下,那就比较库位的编码(一般库位的编码是不能重复的),如果真的有重复的情况下还能比较数据库的ID大小,反正肯定能比出一个最后的高低。
拣货优先级相同时,库位编码越小优先级越高
通过以上案例的分析,我们发现如果想要解决「逻辑上先进先出」的一些弊端,还是要引入对应策略来层层解决出现的缺陷。
四、逻辑先进先出的另一个坑
由于逻辑先进先出是属于宽松型管理,也就意味着仓库的操作是不可控的。
例如上面案例中提到,可能依据一层又一层的策略,我最终确定了要推荐拣货员去库位A拣货,但是拣货员今天心情不好,不想走那么远,他就去了库位B拣货。
由于库位B是有这个产品的,而且数量也是足够的,再加上我们采用的是「逻辑先进先出」,所以系统并不能提示错误或者拦住货员……
所以当我们采用了这种宽松型管理的策略之后,我们应该考虑一些容错机制。例如仓库人员没有按照推荐库位拣货怎么办?
没关系,那就在什么库位上拣货了,就扣减这个库位上对应的最早的批次的库存;虽然做不到百分百的准确,但是起码可以满足该库位上的先进先出。
综上所述,我们会发现其实采用了逻辑的先进先出之后,我们节省了仓库的容量,提高了作业的效率;但是也带来了弊端,那就是让批次信息或者说是库龄统计有一些些的不准确。
本来最早的批次是在库位A,结果仓库从库位B拣货了,那么只能扣减库位B上最早的批次。从而导致库位A上最早的批次的库龄又增加了一些时间,最后有可能会越过计费区间,增加一些额外的费用。
但是如果没有超过计费区间或者压根就没有梯度计费,此问题也就没什么影响了。
五、总结
关于逻辑先进先出的策略之下,仓库不按推荐库位拣货怎么处理的问题,我咨询了一些朋友之后发现,应对方式是有的,但是也都各有利弊,还是需要结合自身业务来做取舍。
例如朋友F就提出,可以把库龄的统计放在OMS上,这样的话就脱离了WMS的库位的影响。类似于系统会自动按已有库存量来扣减最早的批次,这样在计费的时候就只需要关注批次号对应的库龄即可,而不需要关注库位的批次是否准确。
还有朋友D提出,当拣货人员没有在推荐的库位拣货,且该库位的批次和推荐的库位的批次不一致的时候。要做提示,告知仓库由于批次的问题,建议去推荐的库位拣货,如果执意在此库位拣货的话,可能会导致违反先进先出的本意。
以上两种策略都有利有弊,感兴趣的朋友可以自行分析一下,探索更好的解决方案。
先进先出是WMS中很常见的一种策略,但是实施起来的时候却又很受限于实际的作业现场情况。
所以作为产品经理,在追求完美策略的目标之下,还是要脚踏实地多结合生产问题来做一些妥协和调和。海外仓尤其如此,仓库管理水平一般,库内作业人员水平也一般,再加上文化背景、宗教信仰、法律法规等差异,若想要追求完美方案怕是会遇到重重阻碍,打击自信心。
用一句俗话来总结那就是:是骡子是马,先拉出来遛遛再说。
相关阅读
#专栏作家#
vitamin,微信公众号:皮酱叨逼叨。人人都是产品经理专栏作家,公众号运营小白,初中级B端产品一枚(一年开发经验+三年产品经验)。主导过在线教育类产品,目前是跨境电商供应链仓储物流产品一枚,欢迎勾搭,一同学习。
本文原创发布于人人都是产品经理,未经作者许可,禁止转载
题图来自 Unsplash,基于CC0协议。
按拣货优先的意思是按库位的优先级,谁优先级更高,那么先从这个库位拣货。这个优先级的判断条件是什么???你举例说库位a和库位b优先级一样,为啥会一样呢???没看懂诶
有一个字段叫做“库位优先级”,你可以配置参数,如果配置都是一样的数值,那就是优先级一样
这篇把先进先出实操和系统实现讲的很清楚了
哈哈 感谢支持。
大神,有原型和流程资料,PRD相关文档共享吗?学习用,可以给一些费用。可以指导下吗?
原型没有哦,这一块有很多成熟的产品可以参考啦