復(fù)盤 | WMS的移庫(kù)功能設(shè)計(jì),我踩了哪些坑?
編輯導(dǎo)讀:WMS的移庫(kù)功能是指將貨物從一個(gè)倉(cāng)位移到另一個(gè)倉(cāng)位,然后兩個(gè)倉(cāng)位的貨物各自增減數(shù)量。本文作者對(duì)一次移庫(kù)功能設(shè)計(jì)進(jìn)行了復(fù)盤,總結(jié)了在設(shè)計(jì)過(guò)程中遇到的一些坑,以及應(yīng)對(duì)方式,與大家分享。
前言
WMS的移庫(kù)功能在不同的倉(cāng)庫(kù)或者不同的系統(tǒng)定義不一樣,有些地方把移庫(kù)當(dāng)成兩個(gè)倉(cāng)庫(kù)間貨物的轉(zhuǎn)移,有些地方把移庫(kù)當(dāng)成不同的庫(kù)區(qū)間的貨物轉(zhuǎn)移,例如從拆零區(qū)到整箱區(qū),或者從高貨值區(qū)轉(zhuǎn)移到低貨值區(qū)等。
但是本文所提到的移庫(kù)其實(shí)就是指貨位(庫(kù)位)間轉(zhuǎn)移,將貨物從庫(kù)位A移庫(kù)到倉(cāng)位B,然后庫(kù)位A的貨品扣減數(shù)量,倉(cāng)位B的貨品增加數(shù)量。
看似很簡(jiǎn)單的功能,但是結(jié)合到實(shí)際業(yè)務(wù)中,也讓我踩了挺多坑。所以我特地花了一些時(shí)間整理出此篇文章,復(fù)盤一下我在設(shè)計(jì)該功能的時(shí)候遇到了哪些問(wèn)題,收獲了哪些感悟。
那么,我們開(kāi)始吧。
一、簡(jiǎn)易版的移庫(kù)
很多海外倉(cāng)沒(méi)有做效期管理,也沒(méi)有做批次管理,所以基本上對(duì)貨物的管控粒度都是在SKU層面。如果是SKU層面的移庫(kù),只需要將源庫(kù)位的SKU扣減數(shù)量,然后轉(zhuǎn)移到目標(biāo)庫(kù)位上,SKU對(duì)應(yīng)的的增加數(shù)量即可。
簡(jiǎn)易版移庫(kù)
簡(jiǎn)易版的移庫(kù)主要是因?yàn)楣芾砹6仍赟KU,所以在移庫(kù)的時(shí)候,只需要判斷目標(biāo)庫(kù)位的貨主和料區(qū)是否和源庫(kù)位一致,只要一致就可以移庫(kù),沒(méi)有其他額外的判斷邏輯。
貨主為什么要一致?
這個(gè)各個(gè)倉(cāng)庫(kù)的管理要求不一樣,我們不允許一個(gè)庫(kù)位放兩個(gè)貨主的貨物是因?yàn)閮蓚€(gè)貨主的貨物可能會(huì)一樣(你賣iPhone,我也可以賣iPhone),為了避免這種貨物識(shí)別可能帶來(lái)的風(fēng)險(xiǎn),所以我們是只允許一個(gè)庫(kù)位放一個(gè)貨主的貨物的。
料區(qū)是什么?為什么要一致?
這個(gè)也和倉(cāng)庫(kù)的管理要求有關(guān)系,有些倉(cāng)庫(kù)對(duì)貨物的品質(zhì)管控只要求區(qū)分良品,殘次品或者其他粒度。而我們對(duì)品質(zhì)的管控要求細(xì)一些,除了要求好壞之分的話,還會(huì)有更細(xì)的粒度。
例如退貨回來(lái)的貨物區(qū)分售后良品,售后不良品;所以一個(gè)庫(kù)位只能放一個(gè)料區(qū)的貨物,將良品放在一起,殘次品放在另外的庫(kù)位,那么移庫(kù)的時(shí)候,一個(gè)良品庫(kù)位的貨物也就只能移庫(kù)到其他良品的庫(kù)位上了。
二、業(yè)務(wù)升級(jí),引入批次概念
批次是倉(cāng)庫(kù)對(duì)貨品的管理粒度還要再細(xì)一層,要精確到批次號(hào)(批號(hào))上。批號(hào)這個(gè)概念在醫(yī)藥WMS中很常見(jiàn),大家身邊如果有藥品盒子可以查看一下,一般來(lái)說(shuō)藥品上都會(huì)印有生產(chǎn)批號(hào),如下圖所示:
藥品的生產(chǎn)批號(hào)
一般來(lái)說(shuō)產(chǎn)品上有批號(hào)信息的商品其實(shí)還算方便管理,畢竟有個(gè)顯眼的標(biāo)識(shí)讓你去查看。但是如果有些商品沒(méi)有批號(hào)展示,但是又需要進(jìn)行批次管理,那么難度就顯然高了一些。
業(yè)內(nèi)通用的做法有兩種:
- 第一種:在商品入庫(kù)的時(shí)候,逐個(gè)商品貼批次碼,這樣每次到貨的商品都要拆包貼碼,成本比較高;
- 第二種:入庫(kù)的時(shí)候不貼碼,而是根據(jù)入庫(kù)時(shí)間或者上架時(shí)間,系統(tǒng)自動(dòng)對(duì)某個(gè)SKU進(jìn)行批號(hào)的標(biāo)記,然后記錄這個(gè)批次關(guān)聯(lián)的庫(kù)位是哪個(gè);
而往往大多數(shù)倉(cāng)庫(kù)采用的,就是第二種。
今天倉(cāng)庫(kù)收到了100箱維他檸檬茶,SKU為vita100,這100箱維他檸檬茶都是一年后過(guò)期。然后在系統(tǒng)在生成上架單的時(shí)候,會(huì)對(duì)這些產(chǎn)品自動(dòng)標(biāo)記一個(gè)批次號(hào),例如就叫做BN20200725001。
過(guò)了兩天倉(cāng)庫(kù)又收到了50箱維他檸檬茶,SKU還是vita100,但是這50箱維他檸檬茶是半年后就過(guò)期。在系統(tǒng)在生成上架單的時(shí)候,還是會(huì)對(duì)這些產(chǎn)品自動(dòng)標(biāo)記一個(gè)批次號(hào),例如就叫做BN20200727001。
所以在系統(tǒng)中,就會(huì)知道一共有150箱維他檸檬茶,一共有兩個(gè)批次,批次號(hào)BN20200725001的是100箱,批次號(hào)BN20200727001的是50箱。
如果倉(cāng)庫(kù)不要求對(duì)批次進(jìn)行管控,那么這150箱的維他檸檬茶就是可以放在同一個(gè)庫(kù)位的,到時(shí)出庫(kù)的時(shí)候也就可以隨機(jī)揀貨出庫(kù)了。
這個(gè)也就是為什么一些電商網(wǎng)站會(huì)說(shuō)新老包裝隨機(jī)發(fā)貨的原因,因?yàn)樵趥}(cāng)庫(kù)管理的時(shí)候新老包裝都是同一個(gè)SKU,沒(méi)有做批次管理,所以新老包裝就放在一起了,揀貨的時(shí)候就隨機(jī)拿了。
如果倉(cāng)庫(kù)要求對(duì)批次進(jìn)行管控,那么系統(tǒng)的功能設(shè)計(jì)上就要復(fù)雜一些了,因?yàn)榕喂芸匾馕吨荒芑炫危ㄒ粋€(gè)庫(kù)位上不能放不同批次的同款商品)。上面提到,一般倉(cāng)庫(kù)不會(huì)采用重新貼碼的方式來(lái)管理批次,所以都是用的第二種,也就是跟蹤批次號(hào)對(duì)應(yīng)的倉(cāng)位的方式來(lái)管理。
那么之前的批次號(hào)為BN20200725001的100箱維他檸檬茶就應(yīng)該放在一個(gè)庫(kù)位,而B(niǎo)N20200727001的50箱應(yīng)該放在另外一個(gè)庫(kù)位,兩者不能重疊。所以上架的時(shí)候應(yīng)該要對(duì)批次號(hào)做限制,某個(gè)倉(cāng)位有該產(chǎn)品的批次了,那么其他批次就不能放上去了。
此時(shí)如果我們加大業(yè)務(wù)量,一天同時(shí)入庫(kù)10個(gè)貨主,100款SKU,大概有400多個(gè)批次,而且這些產(chǎn)品中,有些需要效期管理,有些需求批次管理,有些只需要SKU管理,這個(gè)時(shí)候如果沒(méi)有一套完善的批次管理機(jī)制就容易出問(wèn)題了。
三、業(yè)務(wù)繼續(xù)升級(jí),效期,批次和普貨同時(shí)管理
效期管理,就是針對(duì)商品的有效期(保質(zhì)期)進(jìn)行管理,倉(cāng)庫(kù)不能把一些過(guò)期了或者臨近過(guò)期的產(chǎn)品發(fā)出去,否則會(huì)造成比較嚴(yán)重的損失。
批次管理,就是針對(duì)商品的出廠批次或者入庫(kù)先后的批次做管理,一般會(huì)用來(lái)做先進(jìn)先出,提升產(chǎn)品的周轉(zhuǎn)率,同時(shí)也能盡量把老款賣出去,也方便來(lái)算庫(kù)齡和倉(cāng)租。
普貨管理,就是普通的產(chǎn)品,不需要做批次管理,也不需要做效期管理,可以直接在SKU的粒度上進(jìn)行管理,無(wú)論是先到的還是后到的,都可以直接疊放在同一個(gè)庫(kù)位上。
針對(duì)這三類的產(chǎn)品,其實(shí)是有共性可以作為突破口的,那就是批次號(hào)。無(wú)論你是什么類型的產(chǎn)品,我都給你加上一個(gè)批次,這個(gè)批次可以理解為SKU的策略。因?yàn)榕翁?hào)需要與庫(kù)位進(jìn)行關(guān)聯(lián),即某個(gè)SKU的某個(gè)批次號(hào)的貨物放在了某個(gè)庫(kù)位上。所以我們需要對(duì)庫(kù)位也做一個(gè)策略的管理,就是商品是否混放與批次是否混放。
將SKU的策略和庫(kù)位的策略結(jié)合在一起,來(lái)切割我們不同的產(chǎn)品的管理要求和粒度。
對(duì)于SKU的策略來(lái)說(shuō),可以分為需要批次管理和不需要批次管理,需要批次管理的是批次產(chǎn)品和效期產(chǎn)品,而不需要批次管理的則是普貨。效期產(chǎn)品雖然重點(diǎn)關(guān)注的是失效日期,但是本質(zhì)上來(lái)說(shuō)還是屬于批次的管理,不同的失效日期的可以理解成不同的批次號(hào)。
對(duì)于庫(kù)位的策略來(lái)說(shuō),就是分為商品混放且批次混放,商品混放且批次不混放,商品不混放且批次混放,商品不混放且批次不混放,一共四種情況。一般來(lái)說(shuō)海外倉(cāng)用的最多的就是商品不混放且批次混放,就是一個(gè)SKU都放在一個(gè)庫(kù)位上;而對(duì)于一些生鮮產(chǎn)品或者效期產(chǎn)品來(lái)說(shuō),用的比較多的就是商品混放且批次不混放。
所以一個(gè)SKU的上架,大概來(lái)說(shuō)可能會(huì)有8種判斷條件,如果把效期產(chǎn)品的單獨(dú)算作一種策略,那么就會(huì)有12種判斷條件。
四、說(shuō)回移庫(kù)
踩坑一:說(shuō)移庫(kù)只想到了移庫(kù)
本文的主題是講移庫(kù),但是我在梳理流程的時(shí)候發(fā)現(xiàn)我之前踩了一個(gè)很大的坑,那就是我在設(shè)計(jì)移庫(kù)的功能的時(shí)候,只想到了移庫(kù),我重點(diǎn)在關(guān)注移庫(kù)的一些操作和策略上。
但是回顧一下,其實(shí)移庫(kù)的本質(zhì)依然是上架,只是包裝了一層外衣。難點(diǎn)其實(shí)依然是在上架的時(shí)候?qū)KU和庫(kù)位策略的判斷,如果只盯著移庫(kù)去設(shè)計(jì),很容易走進(jìn)死胡同,發(fā)現(xiàn)怎么設(shè)計(jì)都會(huì)有欠缺,都是只見(jiàn)樹(shù)木不見(jiàn)森林。
策略不全
踩坑二:上架的方式與邏輯判斷的方式
除了一開(kāi)始踩進(jìn)了移庫(kù)這一個(gè)牛角尖的坑之外,還有一個(gè)很重要的坑,那就是關(guān)于上架的方式和邏輯判斷的方式也碰壁了。
按常規(guī)來(lái)講,移庫(kù)應(yīng)該是會(huì)涉及到同時(shí)移庫(kù)多個(gè)產(chǎn)品的,這也意味著上架的時(shí)候會(huì)上架多個(gè)產(chǎn)品,現(xiàn)實(shí)的上架確實(shí)也會(huì)如此。
然后我在考慮SKU策略和倉(cāng)位策略的時(shí)候就犯難了,例如一個(gè)庫(kù)位的策略是商品不混放且批次混放,那么我在上架的時(shí)候得要先考慮我待上架的產(chǎn)品首先有沒(méi)有混放(意思是自身有沒(méi)有混)。如果沒(méi)有混,那么放上去的時(shí)候又要考慮已有的產(chǎn)品和要放上去的產(chǎn)品是否混放。如果這個(gè)也沒(méi)有混,最后再判斷批次是否混放,直到都滿足才可以上架。
這樣一來(lái),如果一次性上架很多個(gè)SKU,那么商品不混放的庫(kù)位壓根就上不了。如果在移庫(kù)的時(shí)候,倉(cāng)庫(kù)發(fā)現(xiàn)這個(gè)庫(kù)位上去了,那個(gè)也上不了,很容易就崩潰,效率也不高。
然后我就在開(kāi)始思考,是不是要先考慮移庫(kù)的時(shí)候源庫(kù)位和目標(biāo)庫(kù)位的庫(kù)位屬性是否一致,是否要區(qū)分普通貨物移庫(kù)和批次貨物移庫(kù)。順著這個(gè)思路,我就踩了第三個(gè)坑。
只考慮普貨移庫(kù)
踩坑三:思考的方向變成了源庫(kù)位和SKU
因?yàn)榭紤]到不同的產(chǎn)品和倉(cāng)位策略上架的邏輯判斷太多,我本能的覺(jué)得這樣肯定不對(duì),所以我決定把思路放在源庫(kù)位和SKU上試試。
移庫(kù)前先比對(duì)兩者的庫(kù)位策略是否一致,不一致就不允許移庫(kù)了,如果一致才可以移庫(kù)。但是這樣還是會(huì)有一個(gè)問(wèn)題,那就是本來(lái)庫(kù)位的策略大家都是不允許商品混放,但是因?yàn)樾碌腟KU移庫(kù)過(guò)來(lái)了,那么就打破了本來(lái)的庫(kù)位策略,所以判斷條件還是有那么多。
于是我繼續(xù)思考是不是還要先考慮SKU的組合的問(wèn)題,例如移庫(kù)只能一次移庫(kù)一個(gè),這樣的話判斷的時(shí)候就可以很容易的將待移庫(kù)的SKU和目標(biāo)庫(kù)位的SKU進(jìn)行對(duì)比,看看是否有沒(méi)有破壞目標(biāo)庫(kù)位的策略。這樣的話,判斷條件確實(shí)是簡(jiǎn)單了一些,說(shuō)明這思路是對(duì)的。
但是如果普通上架或者容器上架的時(shí)候,面臨同時(shí)有多個(gè)SKU的時(shí)候怎么辦?這個(gè)辦法還是很麻煩,而且感覺(jué)不對(duì)勁,于是我將我的思考結(jié)果和疑惑點(diǎn)記錄下來(lái),跟我們的開(kāi)發(fā)大佬溝通了一下,這才解開(kāi)了我的疑惑。
思考方向弄錯(cuò)了
五、解惑時(shí)刻
當(dāng)我把記錄的疑惑跟開(kāi)發(fā)大佬溝通的時(shí)候,他指出了一個(gè)很重要的點(diǎn),也是我一直思考碰壁的地方:移庫(kù)的本質(zhì)其實(shí)也是上架的策略,而上架的策略其實(shí)就是上架一個(gè)SKU判斷一次策略!
這句話直接給了我解題的思路,瞬間打通了之前閉塞的環(huán)節(jié),而且他還告訴我在前兩天的時(shí)候他其實(shí)都已經(jīng)理出來(lái)了邏輯而且核心代碼都寫好了,只不過(guò)這個(gè)是上架的策略,而我當(dāng)時(shí)沒(méi)有關(guān)注還心撲在移庫(kù)上(直接碾壓,尷尬)。
然后我們一起就著他畫出來(lái)是思維導(dǎo)圖進(jìn)行了一波推演,發(fā)現(xiàn)這個(gè)方案確實(shí)是正確的,而且是通用型的,很多我沒(méi)有想通的點(diǎn),其實(shí)就是因?yàn)槲也攘丝印?/p>
上架的邏輯判斷
對(duì)著上方的邏輯圖再走一遍流程會(huì)發(fā)現(xiàn),不論是移庫(kù)還是上架其實(shí)本質(zhì)都是上架策略的判斷,這是可以通用的。
首先判斷貨主和料區(qū)是否一致,這個(gè)前面提到過(guò),屬于常規(guī)性必做的判斷。
其次判斷商品混放策略,上面講到了每次上架都判斷一次這個(gè)邏輯,所以并不需要考慮本身待上架的產(chǎn)品內(nèi)部是否混放的問(wèn)題。商品混放策略直接拿待上架的這個(gè)SKU和已經(jīng)在庫(kù)位上的SKU判斷即可,如果可以通過(guò)則進(jìn)行下一個(gè)批次策略的判斷。
在判斷批次策略的時(shí)候先判斷SKU的自身的策略,是否批次管理還是普貨,如果是批次管理,那么就只能放在不允許混放批次的庫(kù)位,然后再判斷待上架的批次和已上架的批次是否相同;如果是普貨,則任意都可以放。
上面的邏輯分析圖基本上就可以覆蓋所有的與上架策略有關(guān)的場(chǎng)景,理清楚了核心的業(yè)務(wù)邏輯,剩下的就是一些錦上添花的輔助工作了。
總結(jié)
本來(lái)一開(kāi)始的工作任務(wù)是對(duì)移庫(kù)功能進(jìn)行優(yōu)化和調(diào)整,但是隨著業(yè)務(wù)的演變,一些規(guī)則和要求的加入之后,移庫(kù)變得不是那么簡(jiǎn)單就能搞定的了。本以為是一次簡(jiǎn)單的業(yè)務(wù)邏輯調(diào)整,但是碰壁之后才發(fā)現(xiàn)原來(lái)是我自己對(duì)一些本質(zhì)的東西沒(méi)有抓住。
通過(guò)這次小小的復(fù)盤,讓我get到了這么些感悟,分享給大家:
- 抓住問(wèn)題的核心很重要,也很難。很多表面因素看起來(lái)似乎是問(wèn)題的癥結(jié),但是隨著深入的探索和思考往往會(huì)發(fā)現(xiàn),游于表面的分析和摸索其實(shí)很費(fèi)時(shí)間,而且很容易走偏;
- 方向不對(duì),努力就會(huì)白費(fèi)。移庫(kù)的設(shè)計(jì)方向應(yīng)該是從庫(kù)位出發(fā),而不是貨品。我因?yàn)閺膸?kù)位出發(fā)碰壁了太多,所以調(diào)轉(zhuǎn)了方向,結(jié)果發(fā)現(xiàn)越跑越遠(yuǎn);
- 產(chǎn)品設(shè)計(jì)過(guò)程中,思維碰撞和交流特別重要,尤其是遇到困難和疑惑的時(shí)候,及時(shí)記錄并及時(shí)溝通,探討解決是一個(gè)高效的方式,如果沉溺于自我世界之中,很容易低效又返工;
- 對(duì)業(yè)務(wù)的理解往往產(chǎn)品的思維和開(kāi)發(fā)的思維不一樣,但是產(chǎn)品如果過(guò)多的夾在技術(shù)思維和業(yè)務(wù)思維很容易兩者都容易受限,不如先拋開(kāi)技術(shù)思維而只專注于業(yè)務(wù)層去設(shè)計(jì),隨后再和開(kāi)發(fā)討論技術(shù)思維是否能支撐業(yè)務(wù)方面的設(shè)計(jì)。這一點(diǎn)對(duì)我這樣的技術(shù)轉(zhuǎn)產(chǎn)品的人來(lái)說(shuō)很致命,技術(shù)轉(zhuǎn)產(chǎn)品,有利有弊,而這一塊往往就是短板,需要特別注意去規(guī)避。
#專欄作家#
vitamin,微信公眾號(hào):皮醬叨逼叨。人人都是產(chǎn)品經(jīng)理專欄作家,公眾號(hào)運(yùn)營(yíng)小白,初中級(jí)B端產(chǎn)品一枚(一年開(kāi)發(fā)經(jīng)驗(yàn)+三年產(chǎn)品經(jīng)驗(yàn))。主導(dǎo)過(guò)在線教育類產(chǎn)品,目前是跨境電商供應(yīng)鏈倉(cāng)儲(chǔ)物流產(chǎn)品一枚,歡迎勾搭,一同學(xué)習(xí)。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來(lái)自u(píng)nsplash,基于CC0協(xié)議
倉(cāng)庫(kù)中所有物料移動(dòng)過(guò)程都是先下架后上架,只是我們大多時(shí)候重點(diǎn)只關(guān)注一端罷了
近期正在學(xué)習(xí)wms,內(nèi)容思路清晰、邏輯清楚,棒棒的
你有沒(méi)有交流方式,想和你交流一下關(guān)于WMS得產(chǎn)品設(shè)計(jì)或者產(chǎn)品相關(guān)
自我介紹的地方有聯(lián)系方式哦,或者直接加 vitamin_mpp
非常棒, 現(xiàn)身說(shuō)法 ,有理有據(jù), 雖然有些流程圖畫的*%……&* 。
哈哈 流程圖確實(shí)畫的隨意了,主要是為了分析,然后寫文章的時(shí)候懶得改了就丟上來(lái)。相當(dāng)于給大家看看草稿階段的流程圖,比較真實(shí),哈哈。