如何理解電商系統庫存分層體系?
關于電商系統庫存,筆者在之前的一篇文章中從電商平臺及前端銷售的角度上進行了一次解析。此次再次從商家發貨及實物庫存管理的角度描述電商系統庫存分層的體系,以便于大家先從宏觀的角度了解整個庫存管理的體系。
一、庫存分層體系概念
1.1?庫存的概念
關于庫存管理,主要集中在兩個層面進行:
1)交易庫存:交易庫存用于展示給用戶,前端展示時商品可售狀態,剩余可售數量,下單庫存處理,支付庫存處理,取消訂單庫存處理;通過對銷售庫存庫存的管理,能夠提供給用戶提供更好的下單體驗并支撐運營活動的開展。
2)實物庫存與各個倉庫或門店,包括三方代發貨倉庫庫存的實物相對應;在入庫是增加實物庫存,出庫時減少實物庫存,并通過盤點、調撥、移位、報損等操作對實物進行協同管理。
1.2 庫存管理的背景
設計庫存體系時可適當借助已有的先進理念,同時也需要結合每個公司特殊的業務場景,不能為了套用其他公司的經驗或行業先進理念而忽視了需要解決的實際問題,因此先匯總筆者所在公司庫存相關的實際業務場景。
1.2.1?公司業務現狀
目前存在的銷售渠道可以分為三類:
- 三方渠道:主要為天貓,京東等三方平臺,在相關三方渠道上開設店鋪,并使用自營倉庫進行電商訂單的配送,使用自營門店進行自提業務;
- 自營渠道:自營渠道是指自營的商城,以直接提供商品購買服務為主;相關的訂單主要由自營倉庫進行配送,同時在簽有代發貨協議的前提下,部分商品可由代發貨商家進行配送;
- 移動醫療:移動醫療屬于公司的自營業務,以提供咨詢服務為準,但同時客戶可以選擇相關商家購買貨品,各個商家以入駐或代發貨的方式接入,部分區域或部分貨品由自營倉庫配送或自營門店自提,其他的區域或貨品則分別由商家提供配送或自提服務。
1.2.2?庫存體系相關業務背景
- 銷售渠道方面按照批發和零售的性質可以分為B2B和B2C,分別由批發公司和零售公司進行銷售;
- 為了提升供應鏈議價能力,因此需要集中采購,所以統一需要先由批發分公司進行采購,然后通過批發分公司統一出售藥品給各個零售分公司;
- 實物庫存層面,各個子公司對應的倉庫均使用WMS系統進行進銷存的管理,而各個連鎖及單體藥店均部署一套藥店系統進行POS收銀和進銷存的管理,此外還存在三方代發貨倉庫自用的ERP系統(配送或自提);
- 倉庫僅支持配送,連鎖門店僅支持自提;單體藥店具備獨立倉庫及冷藏藥品的條件,可以支持針對電商訂單進行獨立配送;通過單體藥店的配送可以減少物流配送時間,提升客戶滿意度。
1.2.3?庫存體系需解決的問題
- 對于不同的銷售渠道,會涉及到多個渠道同時爭搶庫存的情況,這時需要將部分資源傾斜給部分特殊渠道,因此需要設計相關鋪貨規則;
- 部分商品限制只銷售某個渠道或不能銷售某些渠道,需要把控相關商品在各個渠道的可銷售庫存;
- 銷售渠道需要針對每個區域劃分發貨倉庫,針對部分特殊的商品指定發貨倉庫,因此需要精準地控制相關庫存及訂單分配的倉庫;
- 對于部分殘次品及近效期的商品,需要和普通貨品分開,并支持通過內購或促銷的方式進行出售;
- 不同的倉庫之間的庫存難以統籌,部分倉庫常常爆倉而部分倉庫則庫存滯銷,因此自營倉庫的庫存需要合并管理。
二、庫存體系規劃
基于以上,筆者根據公司實際業務場景,針對庫存管理體系進行整體調整,將庫存劃分為三層結構:銷售層、調度層、實物層。
相關邏輯如下圖:
2.1 實物層
實物層定義為分別針對各個倉庫及門店實物進行管理,通過倉庫WMS系統,門店系統及三方代發貨ERP系統管理實物進銷存;在貨品入庫時增加實物庫存,并在貨品出庫時扣減實物庫存。
(由于不同的ERP系統,門店系統,WMS系統針對實物庫存處理的邏輯會有一些差異,僅針對WMS系統的庫存管理進行說明;另外,庫存管理的最小粒度可以分為按產品的批次管理庫存和按庫位管理庫存,這里僅針對基于庫位的庫存管理進行說明)
2.1.1 實物庫存的維度包括:貨主、虛擬倉、sku、批次、庫存狀態、庫位
1)貨主:貨品實際歸屬的公司;
2)虛擬倉:同一個貨主可能存在多個倉庫或門店,該虛擬倉庫的定義需要與實體的倉庫區分開來,有可能同一個實體倉包含多個虛擬倉;
3)sku:倉庫基于sku進行貨物的進銷存;
4)批次:同一個sku可能存在多個批次,不同的批次需要分開存儲,這樣在分配揀貨庫位的時候可以優先對生產日期比較遠的貨品進行優先發貨;
5)庫存狀態:依據貨品能否銷售和銷售限制可將庫存狀態劃分為:合格品,不合格品,一殘,二殘,三殘;其中一殘,二殘,三殘可以根據用途進行自定義,如可打折出售的貨品定義為二殘,可內購出售的貨品定義為三殘,無法銷售的產品定義為不合格品;
6)庫位:庫存的最小粒度,同一個sku,對應每一個批次的每一個庫存狀態占用一個庫位。
2.1.2 庫位及庫存的其他屬性
1)庫存數量:特定的庫位上,實物商品的數量。
2)庫位類型:根據貨品的實際位置可以劃分為存儲區,揀貨區,到貨區,質檢區,發貨區,在途區;對于到貨區,質檢區,發貨區,在途區可以設定一個公共庫位。
(商品是否在途根據是否存在來貨單即ASN單來判斷,來貨單中包含的商品數量即在途庫存,在途庫存可能在運輸途中也可能已到達倉庫。嚴格來說,未上架的貨品都可以定義為在途庫存,包括到貨區,質檢區和在途區。)
3)作業狀態:揀貨作業分配庫位后,中間存在等待揀貨的時間,因此需要預先占用庫存。另外由于盤點的原因,對應的貨架位不能進行上下架作業。因此庫位的作業狀態可分為正常、待揀、待盤。
(分配揀貨庫位時,只根據正常作業狀態的庫存進行判斷,上架作業時,因為貨品還在質檢區,上架分配時通過判斷空庫位是否存在上架作業單來判斷即可。)
4)是否停售:特殊情況下,指定產品或批號的產品禁止出庫,則對應庫位的庫存需標記為停售。
(停售商品批次對應的庫位不能被分配揀貨任務,同時也需要在復核的時候針對商品和批次進行再次判斷以阻止出庫)
2.2?調度層
調度層由于倉庫實物匯總調度及多平臺鋪貨的需要分為實物中央庫存和分渠道銷售庫存,其中實物中央庫存由于操作系統不一致,倉庫類型不一致,自營與商家的區別等原因又可以分為三個模塊:
- 自營倉庫庫存交易;
- 自營門店庫存交易;
- 商家庫存交易。
2.2.1 實物中央庫存
實物中央庫存主要是分別匯總各個倉庫的sku庫存,對于倉庫銷售和發貨業務做統一的調度。
匯總后實物中央庫存分為幾個維度:倉庫(或虛擬倉)、sku、庫存狀態,其他庫存屬性包括:
1)總實物庫存:即對應倉庫中的實物按照sku及庫存狀態的維度進行聚合,計算庫位類型為存儲區,揀貨區,發貨區的貨品數量。
2)在途庫存:在途庫存定義為已確定供應商發貨但尚未上架的貨品,在途庫存同理按照sku進行聚合(默認庫存狀態為合格且未停售),計算庫位類型為到貨區,質檢區,在途區的貨品數量。
(發貨區的貨品對應的訂單還沒有完成,因此還算庫內實物庫存;到貨區,質檢區及在途區的貨品由于無法正式出售所以只能算入在途庫存。)
3)停售實物庫存:即對應倉庫中的實物按照sku及庫存狀態的維度進行聚合,計算已停售且庫位類型為存儲區,揀貨區,發貨區的貨品數量。
4)可用實物庫存:可用實物庫存=總實物庫存-停售實物庫存。
5)成本價:按照移動加權平均的方法,計算總實物庫存對應的成本價(盤點,報損出入庫時,成本價不變)。
6)銷售預占庫存:訂單提交成功且訂單分倉完畢,則增加對應倉庫的銷售預占庫存,取消訂單或訂單發運時扣減銷售預占。
7)發貨預占庫存:訂單同步至WMS成功后,則增加對應倉庫發貨預占庫存,在訂單發運或未發貨(已同步)取消訂單時扣減發貨預占。
8)銷售可用庫存:銷售可用庫存=可用實物庫存-銷售預占庫存(在計算分渠道庫存時需要先算出倉庫銷售可用庫存,銷售可用庫存發生變化時觸發對分渠道銷售可用庫存的重新計算)。
在其他的文章及博客中也有作者的做法是不設銷售預占庫存,而是直接在分倉后進行發貨庫存預占。考慮到訂單分倉之后,并不代表倉庫一定要發貨,中間存在訂單履行的相關流程,存在時間差且訂單可能取消。另外,分開兩個字段也能更好的區分不同訂單處理階段情況,同時也給后面系統的拓展預留一定空間。
對于總實物庫存,需要依據業務單據進行更新,通過入庫單來增加庫存,通過出庫單減少庫存。這樣便于財務統一做賬,讓倉庫的每一次實物變化都有理有據。相關業務操作包括采購入庫,銷退入庫,銷售出庫,采退出庫,盤點出/入庫,報損出庫,調撥出/入庫等。
由于自營門店和商家都有自己獨立的庫存管理系統,對于停售實物庫存,成本價,發貨預占庫存等都進行獨立的管理,所以關于倉庫的實物中央庫存數據只包含可用實物庫存,銷售預占庫存,銷售可用庫存。(不需要做發貨預占,因為我們無法把控商家ERP和門店系統的發貨情況。)
2.2.2 分渠道銷售庫存
分渠道銷售庫存主要作用為計算每個倉庫針對各個渠道的銷售可用庫存,基本維度包括:銷售渠道、送貨方式、sku、庫存狀態。
- 銷售渠道:銷售渠道分別包括自營,天貓,京東,移動醫療,電銷及其他三方平臺等
- 送貨方式:由于倉庫只能自提或配送,因此送貨方式保持和倉庫屬性一致即可(單體藥店可能同時支持配送和自提業務,相關業務可以拆成一個自提倉和一個配送倉處理)
- 庫存狀態:包括合格,一殘,二殘;對于不同庫存狀態的庫存需要分開處理
- 銷售可用庫存:根據倉庫發貨渠道類型及賦予相關渠道的流量比例,按照一定的規則匯總計算可供該渠道下單的數量
在配置多平臺分貨相關規則時,賦予所有銷售渠道的流量比例不能超過100%,否則有可能超賣,造成訂單下單成功但無法發貨的情況。(非自營配送倉如無必要的話,可以默認共享庫存)
銷售可用庫存更新的及時性對提升多平臺分貨的精準性及防止前臺超賣影響較大,在實物中央庫存的銷售可用庫存發生變動時需即時更新分渠道銷售庫存并觸發對銷售層銷售可用庫存的重新計算。
2.3?銷售層
銷售層匯總三個服務模塊(自營門店,自營倉庫,商家倉庫/門店)的分渠道銷售庫存,并對前臺提供服務,校驗前臺下單數量,保證可銷售數量和實物一致,防止前臺超賣。
2.3.1 銷售層庫存維度包括:銷售渠道,送貨方式,庫存狀態,發貨區域,sku。
相關屬性包括:
- 銷售渠道:銷售渠道分別包括自營,天貓,京東,移動醫療,電銷及其他三方平臺等。
- 送貨方式:包括配送和自提,分別匯總配送倉和自提倉相關數據。
- 庫存狀態:包括合格,一殘,二殘,對于不同庫存狀態的庫存需要分開處理。
- 發貨區域:可以按照區域維度分別匯總庫(不需要分區域區分庫存的情況下,可以默認全國)。
- 銷售可用庫存:按照以上維度根據銷售渠道,倉庫,庫存狀態,sku對所有分渠道銷售庫存數據進行篩選匯總;前臺提交訂單成功且訂單分倉完畢則扣銷售可用庫存,發貨前取消訂單或訂單同步到wms系統則增加。(注意:在調度層的分渠道銷售可用庫存更新的時候,需要同時觸發銷售層對相關銷售渠道銷售的sku重新計算銷售可用庫存)。
- 銷售預占庫存:銷售下單所占用的庫存,在取消訂單的時候釋放銷售預占庫存,且在訂單發運時扣減銷售預占庫存。(注意:銷售下單成功時,需要從該渠道銷售可用庫存中扣除數量并增加到銷售預占庫存中)
- 活動庫存:關于特價及秒殺活動,常常需要設置活動庫存,可從常規庫存中分離出來一部分作為活動庫存,在活動期間訂單中商品有參加活動則扣減活動庫存,未參加活動則扣減普通庫存,最終在活動結束的時候將剩余的活動庫存及產生的活動銷售預占庫存還回去。(如無特殊必要則沒必要單獨把活動庫存單獨分出來,通過記錄參加活動商品數量控制下單即可;分離活動庫存的情況下,由于銷售層的銷售可用庫存數量是需要根據調度層情況來變化的,相關邏輯設計起來比較復雜)
對于三方平臺而且,他們會基于三方平臺再搭建一層庫存體系,因此這種情況下,同步銷售可用庫存和銷售預占庫存之和過去即可。
2.3.2?銷售可用庫存相關計算規則
1)發貨區域配置:這里的發貨區域指在對應的銷售渠道中,該倉庫負責發貨的區域,而不是倉庫本身的發貨能力(銷售渠道基于時效,成本等因素直接給倉庫的發貨區域做出安排),因此需要針對每個渠道設置其合作發貨的倉庫及對應的發貨區域,計算區域庫存時,只匯總相關發貨區域倉庫的庫存。
2)自營倉庫之間的訂單由于可以在內部重新進行分倉,所以自營倉庫發貨區域范圍可以重疊(整體的自營倉庫可以當做一個大倉庫處理),其他的倉庫或門店之間的發貨區域不允許重疊。
3)SKU發貨倉庫配置:出于成本優化或資源獨特性等原因,對于部分產品需要指定倉庫發貨,因此相關產品只匯總對應倉庫的銷售可用庫存。
4)搭配商品庫存:搭配商品由于本質上還是多個商品,所以取 (可用庫存數量/搭配內商品數)?最小的數量作為可用庫存即可。
本文由 @不橈 原創發布于人人都是產品經理,未經許可,禁止轉載
題圖來自 Unsplash,基于 CC0 協議
多渠道共享,又需要考慮倉庫的區域屬性,但是倉庫發貨區域范圍又有交叉,還不能超賣,應當如何實現呢?
銷售可用庫存:按照以上維度根據銷售渠道,倉庫,庫存狀態,sku對所有分渠道銷售庫存數據進行篩選匯總;前臺提交訂單成功且訂單分倉完畢則扣銷售可用庫存,發貨前取消訂單或訂單同步到wms系統則增加。 訂單同步到wms系統時為何要增加,這樣不是超賣了嗎?
這個之前有了解,但了解的比較淺。生產制造類企業,和電商比,上游多了生產環節(零件組裝、原材料加工之類的),下游多了to B的銷售渠道。
作者對多渠道庫存共享怎么看呢。應該如何實現?
多渠道庫存共享的情況下,直接同步中央庫存數量即可,不需要分渠道了
回復有點晚,見諒