庫存能見度庫存分配
業務背景及目的
組織通常必須將其現有庫存預先分配給最重要的銷售通路、客戶群、地區和促銷活動,以確保預先分配的庫存不會被任何其他用途所影響,並且只能透過與分配相關的銷售交易來消耗。 庫存可見性中的庫存分配是銷售營運規劃流程的組成部分,會在任何實際銷售活動發生或建立銷售訂單之前完成。
例如,一家名為 Contoso 的公司生產一款受歡迎的自行車。 不幸的是,由於最近的供應鏈中斷而影響了該自行車的所有途中庫存,因此 Contoso 的現有庫存有限,必須充分利用它。 Contoso 經營線上銷售和店內銷售。 在每個銷售通路中,公司都有一些要求公司保留特定部分的自行車可用庫存給他們的重要公司合作夥伴 (市場和大型零售商) 。 因此,自行車公司必須要能平衡跨通路的庫存分配,並同時管理其 VIP 合作夥伴的期望。 實現這兩個目標的最佳方法是使用庫存分配,這樣每個通路和零售商都可以收到特定的分配數量,稍後便可以出售給消費者。
庫存分配有兩個基本的商業目的:
- 庫存保護 (也稱為圍欄) – 組織希望將受限制或有限的庫存預先分配給優先通路、地區、VIP 客戶和子公司。 庫存能見度分配功能旨在保護已分配的庫存,讓其他分配、保留或其他銷售需求不會影響先前分配的庫存。
- 超賣控制 – 庫存能見度分配功能旨在對先前分配的數量進行限制,這樣接收方 (例如通路或客戶群) 在根據軟保留的實際銷售交易生效時,就不會過度消耗。。
庫存能見度服務中的分配定義
分配虛擬集區
雖然庫存能見度中的分配功能不預留實體庫存數量,但它會參考產品的可用實體庫存數量來定義其初始可供分配虛擬集區數量。 庫存能見度中的庫存分配是軟分配。 分配是在實際銷售交易發生之前完成的,而不是根據銷售訂單進行。 例如,您可以在任何造訪銷售通路或零售店的終端客路購買庫存之前,將庫存分配給最重要的銷售通路或大型企業零售商。
庫存分配與軟保留之間的區別
軟保留通常與實際銷售交易 (銷售訂單明細) 有關。 分配和軟保留都可以獨立使用,但如果要一起使用,則應在分配後進行軟保留。 我們建議您先進行庫存分配,然後針對分配的數量進行軟保留,以實現近即時的分配消耗。 如需詳細資訊,請參閱本文後面的做為軟保留消耗區段。
庫存分配功能讓銷售規劃人員或主要帳戶經理可以跨分配群組 (如通路、區域和客戶群組) 管理和預先分配重要庫存。 它還支援對分配數量的消耗進行即時追蹤、調整和分析,以確保補貨或重新分配能及時進行。 這種即時了解分配、消耗和分配平衡的功能在快速銷售或促銷活動中尤為重要。
術語
以下術語和概念在討論庫存分配時很有用:
- 分配群組 – 擁有分配的群組,例如銷售通道、客戶群組或訂單類型。
- 分配群組名稱 – 各個分配群組的名稱。 例如,網頁或商店可能是銷售通路分配群組的名稱,而 VIP 或一般則可能是客戶分配群組的名稱。
- 分配階層 – 一種以階層方式分配群組的方法。 最多支援八個階層等級。 在 Microsoft Power Apps中,在庫存可見性的分配設定頁面上,它們被標為 Group0 至 Group7。 例如,您可以將通路定義為階層等級 1 (Group0),將區域定義為等級 2 (Group1),並將客戶群組定義為等級 3 (Group2)。 分配庫存時,指定分配群組的值時必須遵循分配階層順序。 例如,您可以將 200 台紅色自行車分配給 Web 通路、倫敦地區和 VIP 客戶群組。
- 可供分配 – 指出可用於進一步分配數量的虛擬一般集區。 其為計算量值,您可以使用自己的公式自由定義。 如果您還使用軟保留功能,我們建議您使用相同的公式來計算可分配和可保留的數量。
- 已分配 – 一種實體量值,顯示分配群組可以使用的已分配配額。 在新增消耗量的同時扣除。
- 已消耗 – 一種實體量值,指出相較於原始分配數量,已消耗的數量。 隨著數字新增到此實體量值,已分配的實體量值就會自動減少。
下圖顯示庫存分配的商務工作流程。
下圖顯示分配階層和分配群組。 此處顯示的虛擬一般集區是可供分配的數量。
在 UI 版本 2 中開啟並設定庫存分配
本部分適用於使用庫存能見度 UI 版本 2 時,。
若要設定庫存分配,您必須完成本區段各小節所述的以下工作:
- 啟用分配功能,並更新設定以對其進行初始化。
- 設定可供分配計算的量值 (並在計算中包含已分配的實體量值)。
- 設定您的分配群組。
- 更新設定以啟動您的新設定。
啟用庫存分配功能
請按照以下步驟操作來啟用庫存分配功能。
在 Power Apps 中,開啟庫存能見度應用程式。
請在瀏覽窗格上,選取功能管理。
在庫存分配圖格上,選取管理。
將啟用功能選項設為是。
在工具列上,選取儲存。
請在瀏覽窗格上,選取系統管理員設定。
在 更新設定圖格上,選取管理。
在對話方塊中檢閱您的修改。
重要
請務必驗證即將對資料來源、實體量值和維度對應進行的所有重要修改。
選取確認更新以套用您的設定變更。
設定可供分配的計算度量
當您啟用庫存分配功能並更新設定為先前部分所述時,庫存能見度會建立一個預先定義資料來源和多個初始量值。
資料來源名為 @iv。 它包括以下一組預設實體測量:
- @allocated
- @cumulative_allocated
- @consumed
- @cumulative_consumed
若要使用分配,您必須正確設定可供分配計算量值的公式 (*@iv.@available\_to\_allocate*)。 例如,您在 fno 資料來源中具有 onordered實體量值和在 pos 資料來源中具有入庫實體量值。 然後,您可以根據 fno.onordered 和 pos.inbound 的總和分配現有庫存。 在這個情況下,*@iv.@available\_to\_allocate* 應在公式中包含 pos.inbound 和 fno.onordered 。 計算範例如下:。
*@iv.@available\_to\_allocate* = fno.onordered + pos.inbound – *@iv.@allocated*
附註
@iv 資料來源是預先定義的資料來源, 而 @iv 中具有一個小老鼠符號 (@) 為首碼的實體量值則是預先定義的量值。 這些量值是分配功能的預定義設定。 因此,請勿更改或刪除它們。 否則,您在使用分配功能時,可能會遇到意外錯誤。
您可以將新的實體量值新增到預定義的 *@iv.@available\_to\_allocate* 計算的量值中。 但是,您不得更改其名稱。
請依照下列步驟來設定可供分配計算的量值:
- 在庫存能見度應用程式中,選取瀏覽窗格上的功能管理。
- 在資料來源設定圖格上,選取管理。
- 開啟名為 @iv 的資料來源。
- 在計算的量值部分,開啟名為 @available_to_allocate 的紀錄 (如果存在的話)。 否則,建立一筆記錄,其中計算的量值名稱值為 @available_to_allocate,並儲存新紀錄。
- 在計算的量值詳細資訊部分中,新增要用於計算可供分配數量的實體量值。 請務必在公式中包含 *@iv.@allocated* 實體量值。
設定您的分配群組和階層
在庫存能見度中建立的每個分配都必須指派給特定的分配群組。 您最多可以建立八個分配群組,每個分配群組都有一個名稱和一個等級。 您必須指派等級才能建立群組階層。
每個等級被定義為一個 0 (零) 到 7 的整數,在群組階層中,會對應為 Group0 到 Group7 等級決定了群組在分配階層中的使用順序。 指派為等級 0 的群組是階層中的最高等級,而指派為等級 7 的群組是階層中的最低等級。
建立分配時,必須依照從最高等級到最低等級的順序指定階級。 例如,您的設定有 Group0 的國家/地區、狀態 為了 Group1 的州,和 Group2 的城市。 在這種情況下,指定城市時需要國家/地區和州兩者。 但是,可以僅使用國家/地區和州或僅使用 國家/地區。
請依照以下步驟來設定您的分配群組和階層。
- 在庫存能見度應用程式中,選取瀏覽窗格上的功能管理。
- 在庫存分配圖格上,選取管理。
- 在分配群組區段中,使用工具列上的新分配群組按鈕來為每個您需要的分配群組新增一列。 指定介於 0 和 7 的等級。 若要編輯現有群組,請在分配群組名稱行中選取其名稱。
- 在頁面頂端的工具列上,選取儲存。
重要
刪除或變更分配階層時要小心。 如需指引,請參閱使用分配的提示部分。
更新設定以啟動您的新設定
完成設定更新後,您必須套用變更才能啟動它們。
在庫存能見度應用程式中,選取瀏覽窗格上的系統管理員設定。
在 更新設定圖格上,選取管理。
在對話方塊中檢閱您的修改。
重要
請務必驗證即將對資料來源、實體量值和維度對應進行的所有重要修改。
選取確認更新以套用您的設定變更。
在 UI 版本 1 中開啟並設定庫存分配
本部分適用於使用庫存能見度 UI 版本 1 時,。
如果您使用的是 UI 版本 1,請依照下列步驟啟用庫存分配並設定分配群組。
啟用庫存分配功能。
- 請移至舊版 UI>設定。
- 在功能管理 & 設定索引標籤上,開啟名為庫存分配的功能。
- 選擇右上角的 更新設定 以套用新設定。
設定可供分配計算的量值和已分配的實體量值。
- 在計算的量值索引標籤上,查看名為 *@iv.@available\_to\_allocate* 的初始計算量值。
- 透過新增和刪除實體量值來編輯公式以滿足您的業務需求。 請務必在公式中包含 *@iv.@allocated* 實體量值。
設定您的分配群組和階層。
- 選取分配索引標籤。
- 在預設分配設定中,有四個階層等級。 這些等級從最高到最低依序為通路 (Group0)、客戶群組 (Group1)、區域 (Group2) 和 訂單類型 (Group3)。 您可以在編輯設定欄位中編輯群組。 若要刪除現有分配群組,請選擇其名稱旁的 X 。 若要新增分配群組,請直接在編輯設定欄位中輸入名稱。
- 完成編輯群組後,選取儲存。
更新設定以啟動您的新設定。
- 完成分配群組和階層設定的設定後,選取儲存,然後選取右上角的更新設定。
當您使用使用者介面或 API POST (/api/environment/{environmentId}/allocation/allocate
) 建立分配時,已設定的分配群組的值將會更新。 本文稍後將提供有關這兩種方法的詳細資訊。 如果您使用四個群組名稱並將它們設定為 [channel
、customerGroup
、region
、orderType
],則當您呼叫設定更新 API 時,這些名稱將對與分配相關的要求有效。
附註
在 UI 版本 1 中套用於分配功能的啟用狀態和分配群組的設定不會影響 UI 版本 2 中的對應設定。 同樣地,UI 版本 2 中的啟用狀態和分配群組設定,不會影響 UI 版本 1 中的對應設定。 僅適用於套用在使用中 UI 版本中的設定。
重要
刪除或變更分配階層時要小心。 如需指引,請參閱使用分配的提示部分。
使用分配的技巧
- 對於每個產品,分配函數必須使用相同的維度等級 (根據在現有索引設定上設定的現有索引設定)。 例如,您的索引階層是 [
Site
、Location
、Color
、Size
]。 您可以在 [Site
、Location
、Color
] 維度等級為一種產品分配一些數量。 在這種情況下,下次要分配相同的產品時,必須在同一等級進行分配。 如果您使用 [Site
、Location
、Color
、Size
] 等級或 [Site
、Location
] 等級,資料會不一致。 - 修改分配群組和階層時,如果系統中已存在分配資料,則刪除現有分配群組或移動分配群組階層將破壞分配群組之間的現有對應。 因此,在更新設定之前,請務必使用
unallocate
API 移除所有舊資料。 但是,如果您只是將新的分配群組新增至最低階層,則無需清理資料。 - 只有
available_to_allocate
數量為正的產品,分配才會成功。 - 若要將產品從高分配階層群組分配到子群組,請使用
Reallocate
API。 例如,您的分配群組階層是[channel
、customerGroup
、region
、orderType
],且您想從 [Online
、VIP
] 分配群組分配一些產品到 [Online
、VIP
、EU
] 分配子群組。 在這種情況下,請使用Reallocate
API來移動數量。 當您使用Allocate
API 時,它將從虛擬一般集區分配數量。 - 若要查看整體產品可用性 (一般集區),請使用 現有查詢 API 來要求可供分配的庫存量。 然後,您可以根據此資訊做出分配決策。
使用分配 API
下表列出了目前可用的分配 API。
方法 | API | 說明 |
---|---|---|
POST | /api/environment/{environmentId}/allocation/allocate |
建立分配 |
POST | /api/environment/{environmentId}/allocation/unallocate |
還原或移除已分配的記錄 |
POST | /api/environment/{environmentId}/allocation/reallocate |
將已分配數量從現有分配移至其他分配群組 |
POST | /api/environment/{environmentId}/allocation/consume |
扣除 (使用) 已分配的數量 |
POST | /api/environment/{environmentId}/allocation/query |
根據分配群組和階層檢查現有分配記錄 |
分配
呼叫 Allocate
API 來分配具有特定尺寸的產品。 這是要求正文的結構描述。
{
"id": "string",
"productId": "string",
"dimensionDataSource": "string",
"groups": {
"groupA": "string",
"groupB": "string",
"groupC": "string"
},
"quantity": decimal,
"organizationId": "string",
"dimensions": {
"dimension1": "string",
"dimension2": "string",
"dimension3": "string"
}
}
例如,您要為產品自行車、站點 1、位置 11、顏色紅、通路線上、客戶群組 VIP,和地區美國分配數量 10 。 若要執行此分配,您可以進行具有以下正文內容的呼叫。
{
"id": "test101",
"productId": "Bike",
"groups": {
"channel": "Online",
"customerGroup": "VIP",
"region": "US"
},
"quantity": 10,
"organizationId": "usmf",
"dimensions": {
"siteId": "1",
"locationId": "11",
"colorId": "red"
}
}
數量必須始終大於 0 (零)。
取消分配
使用 Unallocate
API 來撤銷 Allocate
作業。 Allocate
作業中不允許出現負數量。 Unallocate
的正文與 Allocate
的正文完全相同。
重新分配
使用 Reallocate
API 將某些分配的數量移至另一個群組組合。 這是要求正文的結構描述。
{
"id": "string",
"productId": "string",
"dimensionDataSource": "string",
"sourceGroups": {
"groupA": "string",
"groupB": "string",
"groupC": "string"
},
"groups": {
"groupD": "string",
"groupE": "string",
"groupF": "string"
},
"quantity": decimal,
"organizationId": "string",
"dimensions": {
"dimension1": "string",
"dimension2": "string",
"dimension3": "string"
}
}
例如,您可以透過呼叫 Reallocate
API 並提供以下正文內容,將維度為 [站點=1、位置=11、顏色=紅] 的兩輛自行車從分配群組 [線上、VIP、美國] 移動到分配群組 [線上、VIP、歐盟]。
{
"id": "test102",
"productId": "Bike",
"sourceGroups": {
"channel": "Online",
"customerGroup": "VIP",
"region": "US"
},
"groups": {
"channel": "Online",
"customerGroup": "VIP",
"region": "EU"
},
"quantity": 2,
"organizationId": "usmf",
"dimensions": {
"siteId": "1",
"locationId": "11",
"colorId": "red"
}
}
消耗
使用 Consume
API 以根據分配發布消耗數量。 例如,您可以使用此 API 將分配的數量移至某些實際量值。 這是要求正文的結構描述。
{
"id": "string",
"productId": "string",
"dimensionDataSource": "string",
"groups": {
"groupA": "string",
"groupB": "string",
"groupC": "string"
},
"quantity": decimal,
"organizationId": "string",
"dimensions": {
"dimension1": "string",
"dimension2": "string",
"dimension3": "string"
},
"physicalMeasures": {
"datasource1": {
"measure": "string" // Addition or Subtraction
}
}
}
例如,分配群組 [線上、VIP、美國] 有 8 輛分配的自行車,其維度為 [站點=1、地點=11、顏色=紅]。 使用以下可供分配公式:
@iv.@available_to_allocate
=
fno.onordered
+
pos.inbound
– @iv.@allocated
這八輛自行車是從 pos.inbound
量值中分配的。
現在,三輛自行車已售出,並從分配集區中取出。 若要登記此移動,您可以進行具有以下要求正文的呼叫。
{
"id": "test103",
"organizationId": "usmf",
"productId": "Bike",
"dimensions": {
"siteId": "1",
"locationId": "11",
"colorId": "red"
},
"groups": {
"channel": "Online",
"customerGroup": "VIP",
"region": "US"
},
"quantity": 3,
"physicalMeasures": {
"pos": {
"inbound": "Subtraction"
}
}
}
此次呼叫後,產品的分配數量將減少 3。 此外,庫存能見度將產生一個現有變更事件,其中 pos.inbound
= -3。 或者,您可以保持 pos.inbound
值不變,只消耗分配的數量。 但是,在這種情況下,您必須建立另一個實際量值來保留消耗的數量,或使用預定義的量值 @iv.@consumed
。
在此要求中,請注意,與計算的量值中使用的修飾符類型相比,您在消耗要求正文中使用的實際量值應使用相反的修飾符類型 (加法或減法)。 因此,在這個消耗正文中,iv.inbound
具有值 Subtraction
,而不是 Addition
。
fno
資料來源無法在消耗正文中使用,因為我們一直聲稱庫存能見度無法變更 fno
資料來源的任何資料。 資料流程是單向的,這意味著 fno
資料來源的所有數量變更,必須都來自您的 Supply Chain Management 環境。
作為軟保留消耗
Consume
API 也可以將分配的數量用作軟保留消耗。 在這種情況下,Consume
作業將減少分配的數量,然後為該數量建立軟保留。 若要使用此方法,您還必須使用庫存能見度的軟保留功能。
例如,您已將軟保留實際量值設定為 iv.softreserved
。 以下公式是用來計算可供保留的量值:
iv.available_to_reserve
=
fno.onordered
+
pos.inbound
– iv.softreserved
若要將此設定與分配功能結合使用,請將 @iv.@allocated
新增至 iv.available_to_reserve
以產生下列公式:
iv.available_to_reserve
=
fno.onordered
+
pos.inbound
– iv.softreserved
– @iv.@allocated
然後更新 @iv.@available_to_allocate
為相同的值。
當您想要消耗 3 個並直接保留該數量時,您可以呼叫具有以下要求正文的呼叫。
{
"id": "???",
"organizationId": "usmf",
"productId": "Bike",
"dimensions": {
"siteId": "1",
"locationId": "11",
"colorId": "red"
},
"groups": {
"channel": "Online",
"customerGroup": "VIP",
"region": "US"
},
"quantity": 3,
"physicalMeasures": {
"iv": {
"softreserved": "Addition"
}
}
}
在此要求中,請注意 iv.softreserved
的值為 Addition
,而不是 Subtraction
。
查詢
使用 Query
API 來檢索某些產品的分配相關資訊。 您可以使用維度篩選條件和分配群組篩選條件來縮小結果範圍。
維度必須與您要檢索的維度完全相符,例如,[站點=1、位置=11] 與 [站點=1、位置=11、顏色=紅] 相比,具有不相關的結果。
{
"productId": "string",
"organizationId": "string",
"dimensions": {
"dimension1": "string",
"dimension2": "string",
"dimension3": "string"
},
"groups": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
}
例如,使用 [站點=1、位置=11、顏色=紅] 和空群組欄位來取得所有分配記錄:
{
"organizationId": "usmf",
"productId": "Bike",
"dimensions": {
"siteId": "1",
"locationId": "11",
"colorId": "red"
},
"groups": {},
}
使用 [站點=1、位置=11、顏色=洪] 和群組 [通路=線上、客戶群組=VIP、地區=美國] 來取得此群組的分配記錄:
{
"organizationId": "usmf",
"productId": "Bike",
"dimensions": {
"siteId": "1",
"locationId": "11",
"colorId": "red"
},
"groups": {
"channel": "Online",
"customerGroup": "VIP",
"region": "US"
},
}
使用分配使用者介面
您可以使用 Power Apps中的庫存能見度應用手動管理分配。
重要
在目前版本的庫存能見度應用程式中,僅在當您使用庫存能見度 UI 版本 1 時,才能管理分配。 如果您使用的是 UI 版本 2,則必須使用 API 來管理分配。 有關兩個 UI 版本以及如何在它們之間切換的詳細資訊,請參閱庫存能見度應用程式使用者介面版本。
打開分配使用者介面
營運能見度頁面上的 分配索引標籤是充當使用者介面,您可以在其中建立、使用、重新分配、和查詢分配,如後面小節所述。
若要打開分配使用者介面,請按照下列步驟動作。
- 登入您的 Power Apps 環境,並開啟庫存能見度應用程式。
- 在瀏覽窗格底部選單中的變更區域上,選取舊版 UI。
- 請在瀏覽窗格上,選取營運能見度。
- 選取分配索引標籤。
建立分配
請依照下列步驟在庫存能見度應用程式中建立分配。
- 在分配索引標籤的工具列上,選取分配。
- 設定基本欄位、維度和目標分配群組的值。 當您選取維度部分中的值時,請先選取資料來源,然後從該資料來源中選取一個維度,然後在每次新增維度時出現的欄位中輸入維度值。
- 選取送出。
消耗分配
在分配索引標籤的工作列上,選取消耗來消耗分配。 為了確保您在正確的分配群組和階層中消耗,請輸入您在建立分配時指定的相同組織和維度詳細資訊集。
重新分配一個分配
在分配索引標籤的工具列上,選取重新分配以將現有分配數量從一組分配群組移至另一組。
查詢現有分配
在分配索引標籤的工具列上,選取查詢,然後輸入產品、組織、維度、分配群組值,以取得現有分配的查詢結果。