如果要問WMS 最核心的模塊是哪個,那一定是庫存中心, 庫存中心的結(jié)構(gòu)直接影響到其他模塊的設(shè)計愿吹。
本人設(shè)計庫存中心時金踪,考慮業(yè)務(wù)場景如下:
1. 訂單進入之后浊洞,可以同步驗證批次庫存是否夠。
? ? 為什么要到批次庫存呢胡岔?像2C 電商平臺法希,基本都是驗證到貨量是否足夠,不驗證批次靶瘸。但是如果只驗證到貨量铁材,那么在當庫存中有殘品,過期的奕锌,那么就會造成后面的無庫存可出庫著觉, 所以這里會驗證到批次是否足夠。
2. 要能支持多批次屬性管理惊暴。
? ? 根據(jù)商品的屬性饼丘,考慮管理到何種批次的顆粒度,比如生鮮的商品要管理到生產(chǎn)日期辽话,藥品的管理到批次號等肄鸽。
3. 可以追溯到產(chǎn)品的入庫源頭卫病,庫內(nèi)所有的變化,出庫方向典徘。 就是說當消費者投訴到這個商品有問題時蟀苛,不僅能查到庫內(nèi)的轉(zhuǎn)移軌跡,也要能管理到這個貨是經(jīng)過哪個入庫單入庫的逮诲,根據(jù)入庫單號跟蹤到上游的軌跡帜平,這個食品追溯中尤為重要,因為現(xiàn)在還沒有做到每個商品都有唯一流通的條碼進行全供應(yīng)鏈管理梅鹦。
滿足上述的要求轉(zhuǎn)換設(shè)計思路如下
1. 可以進行預(yù)分配裆甩,在訂單進入之后就可以預(yù)分配庫存,分配到庫存的批次級別齐唆。
2. 在入庫時根據(jù)批次不同生成唯一的批次ID嗤栓,這個批次ID 跟隨庫存變化全過程。
3. 可擴展的庫存批次管理箍邮。
4.參考預(yù)分配結(jié)果進行分配到庫位庫存
? ?問題:為什么不直接分配到庫位上茉帅,這樣不是更簡單?
? 答:因為2C 訂單是陸陸續(xù)續(xù)進入到系統(tǒng)的锭弊,如果每個訂單進來就分配担敌,會造成分配的庫存位置不集中,在波次揀貨的時候浪費揀貨路徑廷蓉。2,有的倉庫使用存揀分離全封,訂單進入的時候庫存還沒有補貨完成,也不能占用到存儲位置上桃犬,那就沒有辦法占用了刹悴。結(jié)合上面兩個情況所以占用批次級別比較合適。
庫存相關(guān)的表設(shè)計
庫存批次表
作為庫存的主表攒暇,記錄庫存的批次ID 和占用情況土匀。
庫存庫位表?
記錄物理位置的庫存表,使用批次ID 作為外鍵鏈接庫存批次表
庫存批次表
作為庫存批次表形用, 記錄庫存不同庫存批次的情況就轧,結(jié)合上面兩個表就可以查看每個預(yù)占或者占用的庫存對應(yīng)的批次情況,查看庫位上庫存的批次情況田度。?
庫存表設(shè)計后妒御,還要有對應(yīng)的分配表
這里的為了區(qū)分不同場景下的分配,定義只占用批次的時候要預(yù)占镇饺,分配到庫位上庫存時叫做分配乎莉。
庫存預(yù)占表
庫存分配表
分配邏輯說明
預(yù)分配
在庫存分配時如果需要預(yù)分配,先進行預(yù)分配,分配結(jié)果記錄到庫存表和預(yù)分配表中惋啃,前者記錄庫存的變化哼鬓,防止超量預(yù)占(本設(shè)計不考慮超量分配的場景),后者記錄預(yù)分配的結(jié)果和訂單的關(guān)系边灭。
分配
分配數(shù)量參考訂單的預(yù)分配結(jié)果异希,按照預(yù)分配分配的批次ID 到庫存中找到對應(yīng)的批次ID.分配的數(shù)量記錄到分配字段中。
如圖
庫存批次ID 變化
總結(jié):增加了預(yù)分配的概念绒瘦,同時通過批次ID 記錄庫存變化過程称簿。這樣就不僅僅可以在庫存分配的驗證庫存,也可以事后追蹤庫存椭坚。