目錄
一.前言
二.問題與挑戰(zhàn)?
1.庫存同步效率問題
2.并發(fā)超賣問題
3.共享庫存計算問題
三.核心設計方案
1.同步提效方案
2.防超賣解決方案
3.共享庫存計算方案
四.回顧總結
受疫情影響,越來越多的消費者在線上購買日常消費品,進一步加速了即時消費需求,隨著線上訂單量顯著升高,運維成本成了很大的瓶頸。傳統(tǒng)方式由運營人員維護線下、線上庫存,庫存維護不及時會引發(fā)商品缺勤率升高(有庫存無法售賣)、缺貨出(超賣)等問題,影響用戶購物體驗。本文主要介紹海博庫存系統(tǒng)是如何保證線下線上庫存統(tǒng)一、及時、準確的一體化解決方案。
即時零售需求下,線上、線下商品銷售采用一盤貨模式,即線上、線下商品種類相同,銷售同一份庫存。為了提升用戶體驗,線下所有商品種類(標品、箱包品、稱重品、組套品等)都能在線上售賣。庫存變更的同步流程,如圖所示:
線下門店庫存在線上三方渠道銷售會涉及到庫存的計算、轉換、同步等多種操作,商家實際運營過程中會出現(xiàn)以下幾種問題。假如門店剩余庫存如下列表所示:
商品名稱 | 商品規(guī)格 | 庫存數(shù)量 |
---|---|---|
可樂 | 瓶 | 10 |
酸奶 | 瓶 | 8 |
雞翅 | g | 1000 |
如圖所示,用戶A在線下門店購買5瓶可樂,付款后庫存剩余5瓶。線下庫存變更后未及時同步至線上三方渠道,用戶B在線上三方渠道購買6瓶可樂,結賬后庫存剩余4瓶,一共售賣11瓶可樂,線下門店庫存發(fā)生超賣。
如圖所示,用戶A在到家渠道購買可樂6瓶,付款后剩余4瓶,庫存變更后未及時同步至自有渠道,用戶B在自有渠道購買8瓶可樂,結賬后庫存剩余2瓶,一共售賣14瓶可樂,線下門店庫存發(fā)生超賣。
如圖所示,用戶A在線下門店購買酸奶4瓶,同時用戶B在線上渠道購買5瓶酸奶,線上線下總共售賣9瓶酸奶,線下門店庫存發(fā)生超賣。
如圖所示,用戶A在到家渠道購買酸奶3瓶,同時用戶B在自有渠道購買6瓶酸奶,線上庫存總共售賣9瓶酸奶,線下門店庫存發(fā)生超賣。
線上渠道包括單品、箱包品、多規(guī)格品、組套品等多種類商品售賣,由于線下門店、線上渠道共享庫存,根據(jù)門店庫存換算后,如圖所示,線上渠道可售庫存分別為:可樂(瓶裝)10瓶、可樂(提裝)1提、雞翅(500g)2份、可樂雞翅(可樂【瓶裝】*1 + 雞翅*200g)5份。
用戶A在到家渠道購買了1份可樂雞翅, 其中可樂共享庫存關聯(lián)商品包括瓶裝可樂和提裝可樂,雞翅關聯(lián)商品500g稱重雞翅,所有關聯(lián)品庫存重新計算,計算量大、計算復雜、同時人工維護變更困難。
1.同步提效方案
門店庫存發(fā)生變更,從門店同步到三方渠道,如果同步時間過長,三方渠道庫存不準確,商家很容易發(fā)生超賣。我們需要保證同步時間在可控的范圍內,避免出現(xiàn)超賣。解決該問題難點及分析如下:
庫存變更頻繁:高動銷商品庫存變更頻繁,需提高同步效率。
同步數(shù)據(jù)量大:部分商家為保證庫存準確,線下早八晚九全量同步,其他時間增量同步,同步數(shù)據(jù)量大,需提升同步頻次。
三方渠道限頻:線上各渠道庫存同步存在限頻,且限頻不一致。
由上述問題可知,庫存同步數(shù)據(jù)量大、流程長,會影響庫存的同步性能,為了提升性能,將服務進行隔離,拆分如下兩個模塊,避免大量同步影響庫存計算。 線下庫存:主要負責庫存數(shù)據(jù)的校驗、過濾線上庫存:主要處理海博庫存的計算和渠道同步
鑒于庫存同步數(shù)據(jù)量大,為避免與手動調整庫存過程中發(fā)生沖突,造成庫存錯誤,我們通過分布式鎖實現(xiàn)并發(fā)控制;為了提高處理效率,剝離非核心業(yè)務操作,通過消息中間件異步保存流水和同步任務,同步操作是基于分布式調度框架多線程并行同步,提升同步頻次和效率。
如前文所述,同步渠道采用分布式調度框架,該框架能讓商家所有門店品任務,動態(tài)的分配到多個主機jvm中,通過不同的線程組并行執(zhí)行。在多線程情況下,這些同步任務通過劃分不同分片(每個分片為一組同步任務),每個線程執(zhí)行一個或多個分片的任務,避免重復處理。
如果根據(jù)商家維度分配某個分片,在數(shù)據(jù)量大時,很容易出現(xiàn)任務積壓;無限增加分片,可能會觸發(fā)渠道限頻,以上兩種場景均會導致同步效率低。
如圖所示,我們的策略是根據(jù)商家同步任務的情況,均衡分配任務所屬分片,實現(xiàn)不觸發(fā)渠道限頻的情況下達到最高同步效率。
在實際業(yè)務場景中,除線下同步,還有手動調整、同步配置變更、線上銷售等多種場景觸發(fā)庫存變更。每種業(yè)務場景對庫存的影響和及時性要求不同。
舉個案例,假如線下同步10個庫存至渠道,同時商家在海博將庫存手動調整為5,此場景下手動調整的優(yōu)先級比線下同步高,三方渠道最終庫存應該是5,否則會發(fā)生超賣。
我們的解決方案是根據(jù)特定算法和策略進行打分,分值高的任務優(yōu)先同步,可實現(xiàn)線下變更同步控制在分鐘級延遲,手動調整、線上銷售同步控制在秒級延遲。
基于前面提到的數(shù)據(jù)同步方案,雖然解決了同步延遲(控制在分鐘級),但是無法解決商品在低庫存量時,線下線上同時銷售發(fā)生超賣的問題,需要保證商品銷售最大化的前提下有效控制缺貨出。
從業(yè)務角度考慮,增加安全庫存,可降低超賣率。
安全庫存:保留固定庫存只在線下門店售賣
線上可售庫存 = 線下門店庫存 - 安全庫存
由于線下門店用戶選購時間不固定,無法精準確定商品具體的安全庫存值,如何合理設置安全庫存?如果粗暴的將商品安全庫存統(tǒng)一設置為4,會出現(xiàn)以下兩種問題,如圖所示:
8:31-9:00時段,線下門店庫存為10,線上可售庫存=總庫存(10)- 安全庫存(4), 此時線下一次賣出8個,在庫存同步生效之前,加上線上可售庫存6,理論上可能超賣個數(shù)=8+6-10;
10:01-10:30時段,線下門店庫存為10,線上可售庫存=總庫存(10)- 安全庫存(4),此時線下一次賣出2個,加上線上可售庫存6,理論上線下門店和線上三方渠道一共銷售庫存?zhèn)€數(shù)=2+6,其中有2個庫存在線上缺勤,無法售賣。
以上計算方法是在最理想的狀態(tài)下進行的計算,在實際計算中,動態(tài)安全庫存 ≈ 線下時段銷量。
此方案通過銷量預測算法,對線下門店各時段銷售庫存進行預測,動態(tài)設置安全庫存。
基于以上動態(tài)安全庫存設計,能夠降低線下線上同時銷售產(chǎn)生超賣問題,但無法避免渠道間并發(fā)銷售產(chǎn)生的超賣,通過增加同步系數(shù),按比例同步各渠道可售庫存,降低超賣率,保證商品銷售最大化,如圖所示:
同步系數(shù):線上可售庫存占用線下門店庫存比例
線上可售庫存 = 線下門店庫存 * 同步系數(shù)
線下涉及商品種類繁多(標品、箱包品、多規(guī)格稱重品、組套品等),為了提升用戶體驗,需保證所有商品種類在線上標品化銷售,并準確計算共享庫存的商品庫存。解決該問題難點及分析如下:
計算量大:線下門店庫存發(fā)生變更、線上銷售扣減庫存,關聯(lián)共享庫存商品都需重新計算,計算量大且極易發(fā)生并發(fā)。
時效要求高:所有共享庫存商品庫存需保證同時變更,否則會出現(xiàn)庫存不準確。
預占庫存:線上銷售未配送商品數(shù)量
線下可用庫存:共享庫存可用商品數(shù)量(線下門店庫存-共享庫存商品總預占)
可售庫存:可對外銷售的商品數(shù)量
現(xiàn)貨庫存:線上商品總數(shù)量(可售庫存 + 預占庫存)
針對計算量大,我們設計了可擴展、可編排的庫存計算引擎,如圖所示:
該方案支持標品、箱包品、稱重品以及共享庫存關聯(lián)品的并行計算,保證庫存變更的時效性、準確性。
庫存變動中,最關鍵的節(jié)點就是線上銷售扣減庫存,扣減規(guī)則如下:
預占:+預占,-可售
調整:-預占,+可售
換貨:【訂單品】-預占,+可售,【換貨品】+預占,-可售
出庫:-預占,-現(xiàn)貨
取消:-預占,+可售
為保證訂單處理流程性能和效率,線上銷售扣減庫存采用mq異步消息方式處理,由于mq無法保證與實際流程一致,按照錯誤順序處理庫存,會導致庫存數(shù)據(jù)錯誤。我們設計了訂單狀態(tài)機,在扣減庫存前,進行前置狀態(tài)校驗,避免此問題。
訂單狀態(tài)機主要包括訂單預占、訂單調整、訂單換貨、訂單出庫、訂單取消等節(jié)點,如圖所示:
為方便擴展,通過配置方式維護各節(jié)點的前置狀態(tài),扣減庫存前根據(jù)當前節(jié)點狀態(tài)進行處理。
基于以上即時零售場景存在的痛點,我們在分析、梳理、解決這些的問題過程中沉淀了如下的庫存系統(tǒng)架構:
庫存架構從多方面進行考慮設計:
服務隔離方面,拆分線下、線上庫存兩個模塊,線下庫存負責接收ERP庫存數(shù)據(jù),并進行數(shù)據(jù)過濾、清洗,線上庫存支持業(yè)務操作、庫存計算和渠道數(shù)據(jù)同步。
同步效率方面,設計了動態(tài)控頻同步組件,針對不同渠道動態(tài)控制同步頻率,保證渠道同步效率的最大化。
拓展性方面,設計了庫存計算引擎,根據(jù)不同業(yè)務場景可編排計算流程,同時支持新業(yè)務場景的拓展。
準確性方面,該架構支持全鏈路數(shù)據(jù)監(jiān)控,保證數(shù)據(jù)在各環(huán)節(jié)的準確、可追溯;
以上為即時零售庫存系統(tǒng)的整體設計,我們通過合理的架構設計保證了庫存在整體業(yè)務流程的實時、準確、統(tǒng)一。
瑪氏中國|2025年度瑪氏箭牌北京區(qū)域包材及原材料倉儲(VMI)項目
2229 閱讀華為的物流“布局”,為何備受關注?
1467 閱讀北美倉配一體機會和風險
1278 閱讀?年營收15億的跨境物流企業(yè)要上市
1140 閱讀解秘粵港澳大灣區(qū)規(guī)模最大的生產(chǎn)服務型國家物流樞紐——廣州東部公鐵聯(lián)運樞紐
1057 閱讀縱騰集團借殼上市,6.4億收購A股上市公司綠康生化
966 閱讀TEMU美區(qū)半托管即將開放國內發(fā)貨模式
841 閱讀京東物流一線員工日10周年:為5年、10年老員工授勛,為15000名標桿頒獎
808 閱讀2024年快遞滿意度出爐:順豐、京東快遞排名最高
767 閱讀15倍爆發(fā)式增長,網(wǎng)絡貨運行業(yè)跑出了一匹黑馬
720 閱讀
登錄后才能發(fā)表評論
登錄