編輯導語:倉庫管理系統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協議。