出庫—待配貨流程產品設計怎么做?
在對出庫的整體框架和業務流程有了一個基本的了解之后,那么關于倉庫的產品設計該怎么做。由于ToC的出庫更加復雜多變,所以本文以ToC的出庫流程為例,談談如何進行待配貨產品設計,一起來看看。
之前的文章介紹了出庫的整體框架和業務流程,這篇文章主要說倉庫的產品設計,還是先看出庫的流程圖,如下:
因為ToC的出庫更加復雜多變,所以本文以ToC的出庫流程為例。
首先就是出庫流程的設置,該功能在SAAS產品非常常見,為了兼容所有公司的出庫流程,系統將出庫流程做成可配置,如下:
但僅是出庫流程的可配置還是不能滿足復雜倉庫的業務需求,如:A貨主的貨在出庫的時候需要驗貨,B貨主的貨出庫的時候不驗貨;預包訂單在出庫的時候不需要驗貨,打包等等操作。
為了滿足這些個性化的出庫需求,不同的出庫類型,不同的貨主可配置出庫流程(入庫流程同樣如此),如下所示(僅供參考):
一、出庫的產品設計
1. 出庫單
出庫單的設計如下圖所示(僅供參考):
WMS的出庫單的來源一般都是通過上游系統下推,如:用戶在商城下單后,在ERP系統生成了一個銷售出庫單,然后銷售出庫單標記發貨,訂單下推到WMS生成了出庫單。
對【出庫單】頁面中的一些元素進行說明,方便大家理解。
1)訂單號
在【出庫單】頁面一般要展示3個訂單號字段,分別是訂單號、關聯訂單號、物流單號。
訂單號就是WMS系統生成的出庫單號,關聯訂單號也叫外部訂單號,是關聯上游系統的訂單號,它們的關系如下圖:
2)訂單狀態
設計出庫單頁面,梳理訂單狀態則是該功能設計的核心,按照個人的經驗整理了出庫單的狀態,如下所示(僅供參考):
按理來說,驗貨、打包、稱重這些環節也有“進行中”和“完成”狀態,通過掃描出庫單、物流單號等單號,相關作業就在“進行中”;結束作業就變成“完成”狀態。本人沒有將這些步驟設計成2個狀態,是因為這些步驟的作業時間短,就沒有區分了,如果公司的業務有需求,需要按照公司的業務設計。
3)標記
標記是最訂單信息的補充,在ToC的業務中特殊情況比較多,如:用戶修改收貨地址、訂單被凍結、預售訂單、預備訂單、加急訂單等等特殊情況,所以在出庫單頁面會有一個“標記”字段,用一些標記展示訂單的特殊情況。類似實際生活中,過馬路看到紅燈停一個道理,這里舉例友商的相關設計如下圖所示(僅供參考):
4)出庫單頁面其它信息展示
- 貨品:出庫訂單的貨品展示;
- 日志:記錄出庫的日志信息,如:在什么時候分配的哪個貨位,在什么時候執行了什么波次規則等等;
- 包材:出庫單使用的包材,這里需要注意的是1個出庫單對應N個包裹的情況;
- 包裹物流:調用第三方物流商的接口展示訂單的物流信息(以包裹為維度);
- 績效:展示出庫單關聯所有作業員的績效,如:在揀貨環節,揀貨一個產品得0.1元。
這里是按照我個人的角度,認為出庫單中難以理解的點進行了說明,大家還有什么不理解的可以留言,我會進行解答。
該頁面的功能比較少,【出庫單】頁面只是一個查詢頁面,它是可以查看所有的出庫單,但是在實際工作中,倉庫主要關注“待裝配”的訂單和“執行配貨策略”的訂單。
根據我的工作經驗,如果把出庫單的所有信息用【出庫單】頁面承載,該頁面就會變得非常臃腫,所以我會解耦,再設計一個【待配貨】頁面。
具體是否需要這樣設計成多個頁面,還是需要根據自身的業務進行設計。如果自身倉庫的業務訂單量比較少,就不需要做成幾個頁面。
2. 待配貨
【待配貨】是【出庫單】頁面解耦出來的一個頁面,主要展示上游系統下推到的出庫單,且沒有執行揀貨策略的訂單頁面,如下所示(僅供參考):
該頁面的元素與【出庫單】頁面幾乎相同,主要是相關的功能操作不同。這個頁面重點有手動生成按單配貨、手動生成波次配貨、缺貨計算3個功能。
其中“手動生成按單配貨”和“手動生成波次配貨”針對一些出庫單需要做臨時的出庫處理,就可以手動去生成配貨單,進行配貨。
1)手動生成按單配貨
選中訂單,點擊【手動生成按單配貨】按鈕,生成按單配貨訂單。
2)手動生成波次配貨
手動生成波次訂單有3種方式,如下:
- 所選訂單生成波次;
- 所選訂單,執行同品波次策略,生成波次;
- 所選訂單,執行普通波次策略,生成波次。
手動生成波次還需要與“設置”功能集合,如:選中了100個訂單,由于倉庫的人員和設備限制,一個波次最多只能生成20個訂單,所以此時就需要設置波次的容量。
3)設置
設置功能如下(僅供參考):
波次容量:
設置手動生成波次的最大容量,如:設置容量為30,選中100個訂單生成波次,最理想的情況就是生成3個波次,余單10。
余單生成波次:
上述例子中,余下的10個訂單沒有滿足容量,也生成波次。
注:這個功能的場景就是在長時間內都沒有足夠的訂單,倉庫也不會放著個10個訂單不揀貨,所以就余單也去生成一個波次揀貨。
自動打印揀貨單:
成功手動生成波次后,連接的打印機就自動打印相應的揀貨單,揀貨單模板如下(僅供參考):
缺貨產品匯總生成補貨單:
這個設置項與配貨無關,主要是針對訂單執行“庫存預占”后,發現訂單中的產品在揀貨區無貨,在暫存區有貨,這個時候就自動生成補貨單,可以設置執行的時間段和執行的頻次,如:每10分鐘執行一次;
去生成補貨單,那么應該補貨多少呢?這里有2種設計方案,如下:
根據缺貨量生成補貨單如:出庫單需要10個A產品,但是揀貨區只有2個,這個時間就生成8個補貨單;
缺貨量與貨位補貨量比較,取最大:如:出庫單需要10個A產品,但是揀貨區只有2個,缺貨8個;同時這2個貨分別在2個貨位,這2個貨位的最大容量為20,那么貨位補貨量=20*2-2=38。那么就按照貨位補貨量生成補貨單,分別給2個貨位補貨19個。
注:這種補貨方式的前提是需要設置貨位的容量。
5)缺貨分析
缺貨分析的功能說明我糾結了很久,是否需要在本文進行說明,我查看了萬里牛WMS、大寶WMS,在相關頁面都沒有這個功能,這個功能是我抄相關競品的功能,本質就是對倉庫的“待配貨”訂單進行庫存分析。
這個功能就是提前計算庫存,引導倉庫作業,針對缺貨的訂單給出建議的同時,也引導倉管去執行上架、補貨、采購等操作,能讓倉庫比較好的把控作業節奏。
舉個栗子:如果倉庫每天幾萬單,而且倉庫是存撿分離的倉庫,有的貨在揀貨區沒有貨,但是在備貨區有貨,所以在出庫單揀貨前去提醒倉管,進行補貨操作,以免在揀貨時發現沒貨,然后回過頭來補貨。
缺貨分析的界面如下(僅供參考):
為了方便大家對該功能的理解,首先對表單中的字段進行說明,如下:
- 發貨單貨品數量:等待配貨頁面中未分配貨品的貨品數量,已分配貨位的不做統計;
- 中轉貨位可用量:該貨品在中轉貨位的庫存可用量總和,不包含系統貨位中的可用數量;
- 暫存貨位可用量:該貨品在暫存貨位的庫存可用量總和;
- 揀貨貨位可用量:該貨品在暫存貨位的庫存可用量總和;
- 貨位庫存數量:當前貨品在所有貨位上的庫存量總和;
- 補貨數量:未指派、已指派的補貨單中該貨品數量總和(表示正在補貨的數量)。
注:中轉區就是入庫單簽收后,臨時存放的區域;暫存區就是存撿分離的備貨區。
缺貨程度建議:
缺貨程度目前分為三種:緊急、一般、不缺貨。
1. 緊急:當揀貨貨位、暫存貨位和現在的補貨數量總和都無法滿足當前訂單池內該貨品的所需量時,我們認為是緊急缺貨的,這種情況需要緊急去做上架或者入庫。否則會影響到訂單發貨時效,其判斷依據為:
揀貨貨位可用庫存+暫存貨位可用庫存+補貨數量<發貨單貨品數
2. 一般:當揀貨貨位可用庫存數量無法滿足發貨單所需貨品,但暫存貨位可用庫存+補貨數量+揀貨貨位庫存可以滿足發貨單所需貨品數量時,我們認為緊急程度為一般,可以通過補貨或者催促補貨人員盡快補貨解決缺貨的問題。缺貨程度為一般的判斷依據為:
揀貨貨位可用庫存<發貨單貨品數量<=揀貨貨位可用庫存+暫存貨位可用庫存+補貨數
3. 不缺貨:當揀貨貨位可用庫存能滿足發貨單所需貨品數量時,我們認為當前暫時不缺貨。其判斷依據為:
揀貨貨位可用庫存>=發貨單貨品數
操作建議:
1. 上架:中轉區有庫存,但是暫存區沒有庫存,此時針對中轉區的庫存進行上架到暫存區或者揀貨區。?判斷依據為:
暫存區可用庫存+補貨數量+揀貨區可用庫存 < 發貨單貨品數量 <= 中轉區可用庫存+暫存區可用庫存+補貨數量+揀貨區可用庫
2. 補貨:暫存區有庫存,但是揀貨區缺貨,此時應該做補貨。判斷依據為:
揀貨區可用庫存<發貨單貨品數量<=暫存區可用庫存+補貨數量+揀貨區可用庫
3. 采購:中轉區可用庫存+暫存區可用庫存+補貨數量+揀貨區的可用庫存之和無法滿足發貨單所需的貨品數量, 此時應該做采購或者入庫操作。?判斷依據為:
中轉區可用庫存+暫存區可用庫存+補貨數量+揀貨區的可用庫存<發貨單貨品數
4. 當揀貨區可用庫存>=發貨單貨品數量時,無建議操作。
大家已經知道了缺貨分析的計算邏輯,那么什么時候去觸發缺貨分析的計算呢?
當時我做的是,點擊【缺貨分析】按鈕,打開新頁面,同時進行出庫單的缺貨計算,頁面中展示所有缺貨的出庫單?!晒γ胸浳环峙洌◣齑骖A占)策略的訂單除外
有細心的同學可能發現了,上述“操作建議”的只適用與貨品必須從揀貨區揀貨的場景,如:一個產品在揀貨區沒有貨,在暫存區有貨,且在實際的倉庫場景中,這個產品就是要到暫存區揀貨,但是根據缺貨分析的計算,系統建議倉庫去進行補貨,將貨從暫存區補貨到揀貨區,然后在揀貨區揀貨,這樣這樣就會導致重復工作量。
小結:
缺貨建議本質就是看暫存區+揀貨區+補貨數量是否滿足訂單的貨品需求;
操作建議的本質就是看暫存區+揀貨區+中轉區+補貨數量是否滿足訂單的貨品需求。
6)該頁面的其它功能說明
3. 預處理
針對上游系統推送到倉庫的訂單,輔助倉庫作業人員對訂單進行一個異常攔截或訂單處理等,處理流程如下:
為了方便產品設計,我將訂單的預處理分為基礎信息處理、批次處理、貨位分配(庫存預占)3個部分。
基礎信息預處理:
對出庫單進行凍結、標記、預約物流等操作,預處理界面如下(僅供參考):
如上圖所示,可以靈活設置一些規則,如:現在國內疫情,設置收貨地址為疫情地區的訂單凍結。
基礎信息預處理的命中規則需要說明一下:
當出庫單命中了多條預處理的規則,按照規則的優先級從大到小執行所有規則,若優先級一樣,可以按照創建時間的降序執行;
其中自動標記為所有執行策略的并集,其它元素的規則只執行一次,后面的策略即時滿足規則也不處理。
舉個栗子:
一個發貨單,命中了3條預處理策略,分別為:A、B、C,如下:
最終的執行結果為:
- 凍結:是
- 標記:a、b、c
4. 批次分配策略
批次策略的界面如下所示(僅供參考):
這個功能主要是對商品的批次進行過濾,如:一些顧客需要發送特定批次的產品,如A產品有積累顧客,每類顧客發送的產品批次都不同,如下所示:
- SVIP客戶:發生產日期3個月以內的貨,且按照先進先出原則發貨;
- VIP客戶:發生產日期6個月以內的貨,且按照先進先出原則發貨;
- 普通客戶:沒有生產日期的限制,按照先進先出原則發貨。
為了滿足上述場景,系統首先需要將滿足批次需求的商品過濾出來,然后根據剩余的商品,進行貨位的預占。
對上圖界面的元素進行說明。
1)批次屬性
常見的批次屬性有入庫時間、批次號、生產日期、到期日期、其他自定義的批次屬性。
2)排序
排序可以從大到小,或從小到大,如:按照批次號從大到小出庫。但是這里有一個細節需要注意,如果批次屬性選擇了入庫時間,那么排序默認為從小到大,這樣滿足了先進先出的原則。
3)其他規則
根據自己公司業務自定義一些批次匹配規則,如下所示:
- 距離到期日期≤30天的商品,不參與批次分配;
- 設置客戶,設置發生產日期時段的貨,如:SVIP客戶:發生產日期3個月以內的貨,如果生產日期3個月以內的貨不滿足發貨需求,則選擇后續生產日期的貨。
- ……
5. 貨位分配策略(庫存預占)
貨位分配策略(庫存預占)的界面如下所示(僅供參考):
庫存預占常見有2種設計方案,分別是“配貨前(波次配貨和按單配貨)前預占”和“配貨后預占”。
因為我只做過“配貨前的預占庫存”的方案,我并不清楚這2種方案各自的優劣勢,有懂的老哥可以留言。我能想到“配貨后預占庫存”,避免庫存被“占用過多”的情況,因為有一些訂單在配貨前突然不發貨了。
對上圖界面的元素進行說明。
1)策略類型
策略類型包括同品和和普通策略。
同品:將相同貨品的出庫單打包生成波次;
普通:非同品貨品的出庫單打包生成波次。
注:這里還是千叮嚀萬囑咐,是否這么設計還需要根據倉庫的業務而定,別倉庫每天就幾百上千單,系統也設計的這么復雜,訂單量少的倉庫直接就將出庫單打包生成波次就行了,根據不需要區分是否同品。
2)分配方式
- 先進先出:貨品存在多個貨位時,從入庫時間最早的貨位開始分配,直到能夠滿足所需數量為止,同一貨位以最新入庫時間為準
- 清倉優先:貨品存在多個貨位時,從貨位庫存最少的貨位開始分配,直到能夠滿足所需數量為止
- 效率優先:貨品存在多個貨位時,從貨位庫存最大的貨位開始分配,直到能夠滿足所需數量為止
- 集中分配:發貨單中含有多個貨品時,如果在同一個通道內能夠滿足所有貨品的分配需求,則分配該通道;同一個通道內不滿足時,則分配到能滿足的同一個庫區內。
- 貨位優先:貨品存在多個貨位時,從貨位排序最小的貨位進行分配,排序相同的按照貨位名稱升序進行分配,直到能滿足數量所需為止。
3)庫區
可以設置揀貨的庫區,庫區可以多選,如:選擇揀貨區1、揀貨區2、暫存區1等等。
如果選擇了揀貨區和暫存區,優先分配揀貨區;如果選中了多個同類型的庫區,如:2個揀貨區,按照庫區的權重排序,如:揀貨區1、揀貨區2,揀貨區1的權重大,系統則優先分配揀貨區1的貨位。
6. 包裹
要了解包裹,首先需要弄清楚訂單和包裹之間的關系,很多人搞不清楚銷售訂單、系統訂單、包裹之間的關系,關系圖如下:
舉個栗子說明:當用戶下單后,公司會將用戶的銷售單同步到ERP系統,然后該訂單必須在廣州倉和深圳倉發貨(按照倉庫拆單),該訂單被拆分成2個子訂單,被拆分成了2個訂單訂單下推到倉庫后,倉庫打包的時候發現一個包裹裝不下,就需要拆包,分為多個包裹發貨。
包裹頁面的設計如下(僅供參考):
頁面主要展示出庫單對應的包裹信息,大部分的出庫單和包裹都是1:1的關系,但是會出現特殊情況,導致出庫單:包裹,為1:N的關系。
出庫單在打包的時間發現1個包裹裝不下,需要多個包裹,類似順豐的子母件;或者出庫單部分出庫。這最常見的2種情況會出現1個出庫單多個包裹的情況,這2種異常情況的處理我放在后面的文章進行說明。
總結
寫著寫著發現出庫內容有點多,需要分成幾個篇章,在出入庫的文章中我都沒有怎么提到到異常情況的處理,關于異常情況我打算單獨寫一篇文章。
還是在這里說明一下,本人只做過自己公司內容的倉儲系統,所以文章講述的產品設計都是根據公司業務進行設計的,各位同學僅供參考。
按照慣例留一個問題,如下:就把上面說的的異常情況當做問題吧,如果一個出庫單部分出庫,要怎么進行產品設計?剩余部分如何處理?剩余未出庫的部分,是重新生成一個新的出庫單,還是原來的出庫單(未出庫的部分)繼續去揀貨重新出庫?
本文由@koi 原創發布于人人都是產品經理,未經許可,禁止轉載
題圖來自 Unsplash, 基于 CC0 協議
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
好難
兩個問題問下
1.預處理是根據波次內單據預先占用占用了庫存,那什么時間波次生成揀貨單?
2.占用庫存是按貨位分配給哪幾個出庫單的嗎?感覺不這樣,手動分配庫存沒法按照批次貨位選擇。
作者寫的:因為采購退貨單的創建,需要輸入采購單號,那么退貨的采購單價,直接讀取采購單的采購單價。這個細節需要注意是因為我知道某個大公司并不是這樣做的,以至于埋下了一個大坑。能問下,如果這樣做和不這樣做,會有什么影響嗎?
缺貨程度的判斷依據為什么還要加“補貨數量”,沒理解
如“揀貨貨位可用庫存+暫存貨位可用庫存+補貨數量<發貨單貨品數”
補貨單中的庫存不會計算到可用庫存,如:從暫存區補貨到揀貨區,那么暫存區的相應貨品的可用庫存減少。但是補貨單完成補貨后,揀貨區的可用庫存就會增加。
作者好,還是不太明白,我拿一個商品舉例下,揀貨貨位A可用庫存是5(最大庫容20),暫存庫存可用數量是10,目前發貨單中的商品數量是18,這個時間要生成一個補貨單(按貨位庫存來算的情況下)要補10個;這種情況下的缺貨程度是緊急的(我自己認為的)。公式:揀貨貨位可用庫存(5)+暫存貨位可用庫存(10)+補貨數量(10)<發貨單貨品數(18),按公式來看,又感覺不成立,我公式中的數值是不是填寫錯了?
不要再陷入公式里面去了。本質上判斷補貨是否緊急,是根據庫存判斷的。
暫存貨位庫用庫存+揀貨貨位可用庫存+補貨數量<發貨單中的貨位數量。這種情況就認為倉庫中的可用庫存不滿足當前訂單,需要緊急上架或者采購入庫。
文章寫得很好,各方面都提到了,期待作者大大對于異常情況該怎么處理的文章
很清楚的流程,做好產品就是要盡可能了解產出全流程,慢慢來吧…