新零售SaaS架構:中央庫存系統架構設計

来源:https://www.cnblogs.com/tangshiye/archive/2022/10/08/16768880.html
-Advertisement-
Play Games

近年來,越來越多的零售企業大力發展全渠道業務。在銷售額增長上,通過線上的小程式、直播、平臺渠道等方式,拓展流量變現渠道。在會員增長方面,通過多樣的互動方式,全渠道觸達消費者,擴大會員規模。而全渠道的庫存管理,逐漸變成零售商在渠道運營方面的核心活動,也是提高庫存周轉率,保證利潤的關鍵所在。 在全渠道模 ...


近年來,越來越多的零售企業大力發展全渠道業務。在銷售額增長上,通過線上的小程式、直播、平臺渠道等方式,拓展流量變現渠道。在會員增長方面,通過多樣的互動方式,全渠道觸達消費者,擴大會員規模。而全渠道的庫存管理,逐漸變成零售商在渠道運營方面的核心活動,也是提高庫存周轉率,保證利潤的關鍵所在。

在全渠道模式下,各渠道必須有足量的商品來滿足客戶需求,同時需有效管理總庫存,平衡各渠道庫存,以減少缺貨或者滯銷的情況發生。

全渠道模式下,庫存管理面臨的挑戰

線上上線下渠道融合的大背景下,零售企業如果沒有管理好全渠道庫存,會帶來諸多問題:

  • 各渠道庫存割裂,進行線上線下促銷活動時,商品超賣,引起客訴。

  • 各渠道庫存分配不合理,要麼缺貨,要麼庫存積壓。

  • 各渠道庫存數據更新不及時,有貨卻不能下單,銷售機會大量流失。

  • 各地庫存數據分散在各系統中,數據不通,無法知曉庫存分佈情況,無法統一採購/調撥。

  • 無法根據用戶的下單信息,進行智能分倉、就近發貨。

中央庫存系統的定位

向下對接各地倉庫/門店庫存,將各地庫存放在“一盤貨”里,進行管理、統一調配。

向上打通所有銷售渠道平臺,實現全渠道庫存共用、自動化運營。

中央庫存系統的關鍵概念

中央庫存整體業務框架

中央庫存體系將庫存管理分為三層,銷售層、調度層、倉庫層,實現庫存利用最大化,支持多倉多渠道模式下的各種業務場景。

倉庫層

倉庫層的定位是管理倉庫庫存,一般使用倉庫WMS、門店系統或ERP系統來管理倉庫的進銷存,通過出入庫單據變更倉庫庫存數量。

倉庫庫存的關鍵屬性包括:貨主、倉庫/門店、SKU、批號、生產日期、庫存狀態、庫位等。

  • 貨主:貨物所有權的擁有者。

  • 倉庫/門店:存儲貨物的邏輯單元,這裡需要與物理世界的倉庫區分開,可能一個物理倉庫包含多個邏輯倉庫單元。

  • 批號:用於區分每一批投料生產出來的產品,為了事後能追蹤這批產品的責任,每一批產品都有相應的批號。

  • 生產日期:生產線包裝出可銷售的成品的日期與時間。

  • 庫存狀態:描述庫存在不同業務場景下的不同狀態,例如,可用、凍結、在途、不良品、廢品等。

  • 庫位:一般是指在工廠倉庫中實際存在的庫位,比如一個個的貨架。同時也是SKU庫存的最小粒度。

調度層

調度層的定位是彙總各倉庫/門店的所有庫存狀態的庫存總量,但不同於倉庫庫存,調度層的實物庫存無需管理批號、庫位等細粒度的庫存維度,只需要管理每個庫存狀態下的實物庫存總數即可,這是一種解耦的設計方式。

實物庫存的關鍵屬性包括:倉庫/門店、SKU、庫存狀態等。關鍵概念包括:

  • 在途庫存:指供應商發貨但還未入庫的庫存,有時為了擴大銷售機會,在途庫存也會用於擴大銷售庫存數量。

  • 可用實物庫存:倉庫實際可用於銷售的庫存。

  • 不可用實物庫存:即對應倉庫中的不可用庫存。

  • 銷售預占庫存:訂單提交並分倉成功後,會預占對應倉庫的庫存,訂單取消或發貨後,會扣減預占庫存。

  • 銷售可用庫存:銷售可用庫存=可用實物庫存-銷售預占庫存。

銷售層

銷售層的定位是管理各個銷售渠道的渠道庫存,為銷售平臺提供庫存計算與庫存同步的服務,並通過各種渠道庫存分配策略進行庫存分配,防止超賣,保障利潤最優。

銷售庫存的關鍵屬性包括:

  • 銷售渠道:包括自營的網店、門店線下渠道,天貓,京東,美團,餓了麽等三方平臺等。

  • 銷售店鋪:銷售的店鋪或門店。

  • 發貨方式:快遞、同城配送、自提。

  • 配送區域:由於各個倉庫覆蓋的配送區域不一樣,所以SKU能支持的配送範圍也不同。

銷售庫存的關鍵概念:

  • 銷售可用庫存:按照倉庫/門店的供貨關係、渠道庫存分配策略進行計算彙總的可銷售的庫存數量。訂單提交成功扣減銷售可用庫存,當調度層的實物庫存更新,需要觸發銷售層重新計算銷售可用庫存。

  • 預售庫存:如果商品未到貨,可以開啟預售模式,提前售賣。實物庫存與預售庫存是隔離開的,當實物到貨後,預售庫存統一推到實物庫存進行履約。

  • 預占庫存: 訂單已提交但未支付之前,為給顧客預留商品,會先預占商品庫存,待支付以後再刪除預占庫存、扣減可銷售庫存。若長時間未支付,則會取消訂單,釋放預占庫存。

  • 活動庫存:針對某些SKU做促銷活動時,例如特價、秒殺活動,需要設置活動庫存,可以從正常庫存中預留部分庫存,活動開始後釋放預留庫存。如果活動商品的下單數量等於活動計劃的庫存總數量,則活動終止。活動訂單與普通訂單,在庫存處理邏輯上是一模一樣的。如果沒有特殊要求,沒必要單獨把活動庫存單獨分出來,作為獨立的業務處理,這樣會多出兩套庫存邏輯,三層庫存架構需要都獨立分開處理,極大地增加了複雜度。

  • 預留庫存:若需要提前為某些促銷活動預留庫存,以免活動開始以後庫存不足,可設置預留庫存。

  • 可售庫存 = 預售庫存+銷售可用庫存 – 預占庫存 - 預留庫存。

銷售渠道層

銷售渠道層代表各個銷售渠道平臺,包括自營的網店、門店渠道,天貓,京東,美團,餓了麽等三方平臺等。

邏輯模型設計

庫存的核心場景

調度層同步邏輯

調度層的實物庫存來自各個倉庫的庫存,一般有兩種同步模式:

  • 流水同步模式:適用於內部系統打通,能夠獲取倉庫/門店的庫存流水,通過回傳流水,變更調度層的實物庫存數量。這樣做的好處是,有很清晰的實物庫存流水變更記錄,便於追查到每次庫存變化的明細,需要註意做好冪等處理,避免重覆同步導致庫存數量變更出錯。

  • 數量同步模式:適用於外部系統對接,一般獲取不到詳細的庫存流水,通過商家後臺或系統對接的方式同步庫存實時數量。

銷售庫存計算邏輯

在新零售的多倉多渠道模式下,為了實現全渠道庫存共用,庫存彙總為“一盤貨”管理,要充分考慮各個倉庫/門店的特性,包括支持的發貨方式,配送範圍等,為了合理分配庫存,需要考慮各個銷售店鋪的庫存占比。下麵針對幾種常見的場景,說明銷售庫存的計算邏輯。

多倉供貨場景

門店A、門店B為兩個線下門店,門店A有100件iphone14,門店B有50件iphone14。

假設商家有1個天貓旗艦店,門店A、門店B均給天貓店供貨。

天貓旗艦店僅支持快遞發貨方式,為了防止超賣,設置快遞的最大分配比例為80%。

如圖例所示,最終天貓渠道的iphone14的庫存數量為120,並定期將數量同步到天貓平臺。

單倉給多店供貨場景

 

 

商家有1個電商倉,為商家的各個電商平臺店鋪提供倉儲服務與發貨服務,電商倉有100件iphone14。

電商倉同時為京東旗艦店、天貓旗艦店供貨,兩個店鋪僅支持快遞發貨方式,最大分配比例分別為80%、60%。

如圖例所示,最終京東渠道的iphone14的庫存數量為80,天貓渠道的iphone14的庫存數量為60。

門店全渠道庫存共用場景

隨著新零售線上線下渠道加速融合,門店線上線下全渠道銷售,已經成為大部分零售商家的標配。

受益於微信生態和小程式電商的高速發展,越來越多的門店開啟了雲店模式,雲店實際上就是門店的線上化交易渠道,或者稱為門店的“線上貨架”。

連鎖企業把線下門店嫁接到微信生態中,將門店所有商品上架到雲店小程式。藉助雲店,消費者無需到店,即可享受到門店的服務,同時,門店的導購可以向自己的會員推薦所有雲店商品。

如圖例所示,門店A有100份的草莓蛋糕,門店A為自己供貨,並共用草莓蛋糕的庫存到多個銷售渠道(美團外賣、雲店、門店線下渠道),實現門店“一盤貨”全渠道銷售。

渠道庫存同步

銷售庫存計算完後,需要將渠道庫存同步到各個平臺渠道,這樣,消費者才能完成交易流程。根據渠道類型不同,渠道庫存同步有兩種處理邏輯:

  • 自營系統:如果自營渠道與庫存系統是一體的,即一套系統,那麼不需要過於複雜的庫存同步邏輯,自營渠道直接讀取中央庫存系統的渠道庫存即可。

  • 三方平臺系統:像天貓,京東,美團,餓了麽等,這些三方平臺系統屬於外部系統,商家自身無法管控,就需要通過開發API,向三方平臺同步渠道庫存。一般而言不會實時同步渠道庫存,即只要有庫存變動,就計算渠道庫存,同步至三方平臺。這種方式對系統壓力較大,而且三方平臺的API大多會按調用量收費,因此,會設定好時間間隔,定期同步渠道庫存,例如5分鐘一次。

組合商品庫存計算

組合商品一般指人為將幾個單獨售賣的商品組合在一起,進行合併售賣的商品,例如:下午茶套餐、七夕美妝組合等。

組合商品會先在調度層,根據組合比例計算好虛擬庫存,不影響子商品的供貨邏輯,下單時,會根據組合商品標識,進行子商品的實物庫存預占、扣減。

如圖所示,電商倉中,商品A有150件,商品B有200件,根據組合關係,可以算出組合商品C有100件。當下一單商品C時,會預占1件商品A+2件商品B的實物庫存。

中央庫存系統的應用架構設計

小結

本文介紹了在全渠道模式下,庫存管理面臨的挑戰。針對挑戰,詳細介紹了中央庫存系統的整體業務框架,涉及的關鍵概念,以及庫存核心業務場景的處理邏輯,最後簡單介紹了中央庫存系統的應用架構設計。期望對讀者有所幫助,也歡迎隨時溝通或者關註公眾號“湯師爺說”。

 

本文來自博客園,作者:湯師爺說,轉載請註明原文鏈接:https://www.cnblogs.com/tangshiye/p/16768880.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. 視窗函數概念和語法 視窗函數對一組查詢行執行類似聚合的操作。然而,聚合操作將查詢行分組到單個結果行,而視窗函數為每個查詢行產生一個結果: 函數求值發生的行稱為當前行 與發生函數求值的當前行相關的查詢行組成了當前行的視窗 相比之下,視窗操作不會將一組查詢行摺疊到單個輸出行。相反,它們為每一行生成 ...
  • 一、CentOS 7.9 安裝 rabbitmq-3.10.2.tar.gz 地址 https://www.rabbitmq.com https://github.com/rabbitmq/rabbitmq-server https://github.com/rabbitmq/rabbitmq-se ...
  • 工作中最常遇到的問題,怎麼給線上頻繁使用的大表添加欄位? 比如:給下麵的用戶表(user)添加年齡(age)欄位。 有同學會說,這還不簡單,直接加不加完了,用下麵的命令: ...
  • 今天安裝 Postgresql14 遇到一個問題, 目標伺服器只有內網, 內網提供標準的apt倉庫, 但是因為不能連接外網, 所以沒法添加第三方倉庫, pg的官網只提供倉庫和源碼兩種方式, 因此不能訪問外網時, 貌似只有源碼編譯這條路. 因為源碼編譯費時費力並且安裝階段需要自行配置, 容易出錯. 對... ...
  • 摘要:Mysql出現問題:error while loading shared libraries: libaio解決方案。 本文分享自華為雲社區《Mysql出現問題:error while loading shared libraries: libaio解決方案》,作者: 小虛竹。 問題 初始化數 ...
  • 最近在用rust 寫一個redis的數據校驗工具。redis-rs中具備 redis::ConnectionLike trait,藉助它可以較好的來抽象校驗過程。在開發中,不免要定義struct 中的某些元素為 trait object,從而帶來一些rust語言中的生命周期問題。 本文不具體討論 r ...
  • 一、CentOS 7.9 安裝 rocketmq-4.9.2 地址: https://rocketmq.apache.org https://github.com/apache/rocketmq https://archive.apache.org/dist/rocketmq/4.9.2/rocke ...
  • #背景 用css動畫讓你的頁面交互動起來 #開始 <body> <button id="button">開始</button> <div id="block"></div> </body> <script> document.getElementById("button").addEventList ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...