Inventory Management CLI參考

Inventory Management提供管理清查資料和組態設定的命令。

這些指令包括:

  • 檢查並解決影響可銷售數量的預留不一致
  • 新增距離優先順序演演算法的地理代碼

解決預留不一致

預留會針對各存貨的產品SKU保留可銷售數量。 當您出貨、新增產品、取消或退回訂單時,報酬預留會輸入以放置或清除這些保留。

Inventory Management提供兩個命令來檢查及解決保留不一致的問題:

預訂不一致的原因

Inventory Management產生主要事件的保留:

  • 訂購位置(初始預訂)
  • 訂單出貨(補償預留)
  • 退款訂單或發出銷退折讓單(薪酬預留)
  • 訂單取消(補償預訂)

在下列情況下,可能會出現預訂不一致的情況:

  • Inventory Management會遺失初始預訂,並輸入太多預訂補償(過度補償並導致數量不一致)
  • Inventory Management正確放置初始預訂,但會遺失補償預訂。

您可以在inventory_reservation表格中手動檢閱及檢查預留。

以下設定和事件可能會導致預訂不一致:

  • 升級至2.3.x,且訂單未處於最終狀態(完成、已取消或已關閉)。 Inventory Management會建立這些訂單的補償預留,但不會輸入或具有從可銷售數量扣除的初始預留。 建議在升級至Adobe Commerce或從2.1.x升級至Magento Open Source v2.3.x或2.2.x後使用這些命令。 如果您有暫緩訂單,這些指令會正確更新銷售與訂單履行的可銷售數量與預留。
  • 您不管理Stock,稍後再變更此設定。 ​您可以在設定中將​ Manage Stock ​設為No的情況下開始使用2.3.x。 Commerce不會在下單和出貨事件中預定時間。 如果您稍後啟用​ Manage Stock ​設定並建立某些訂單,當您處理並履行該訂單時,可銷售數量將會因補償預留而損毀。
  • 當訂單提交至網站時,您重新指派網站的庫存。 初始預留會針對初始存貨輸入,而所有報酬預留則會輸入至新存貨。
  • 所有保留的總數可能無法解析為0 ​處於最終狀態(完成、已取消、已關閉)之訂單範圍中的所有預留應解析為0,並清除所有可銷售數量保留。

清單不一致性指令

list-inconsistencies命令會偵測並列出所有保留區不一致。 使用指令選項僅檢查已完成或不完整的訂單,或檢查全部。

bin/magento inventory:reservation:list-inconsistencies

命令選項:

  • -c--complete-orders — 傳回已完成訂單的不一致專案。 不正確的預留可能仍會保留已完成的訂單。
  • -i--incomplete-orders — 傳回未完成訂單(部分出貨、未出貨)的不一致情況。 不正確的預留可能會保留太多或沒有足夠的訂單可銷售數量。
  • -b--bunch-size — 定義要同時載入多少訂單。
  • -r--raw — 原始輸出。

使用-r的回應會以<ORDER_INCREMENT_ID>:<SKU>:<QUANTITY>:<STOCK-ID>格式傳回:

  • 訂單ID表示不一致的範圍。
  • SKU會指出產品不一致之處。
  • 數量會設定要為預留補償輸入的金額。
  • 存貨識別碼定義成存貨的範圍,使用預留來計算可銷售數量。

範例:

bin/magento inventory:reservation:list-inconsistencies

Inconsistencies found on following entries:
Order 172:
- Product bike-123 should be compensated by +2.000000 for stock 1
bin/magento inventory:reservation:list-inconsistencies -r

172:bike-123:+2.000000:1

如果找不到問題,則會傳回此訊息:找不到訂單不一致。

建立補償指令

create-compensations命令會建立補償預留。 視問題而定,系統會建立新的預留以放置或解除可銷售數量的保留。

若要建立保留,請使用格式<ORDER_INCREMENT_ID>:<SKU>:<QUANTITY>:<STOCK-ID>提供補償,例如172:bike-123:+2.000000:1

bin/magento inventory:reservation:create-compensations

命令選項:

  • -r--raw — 傳回原始輸出。

如果請求的格式不正確,則會顯示以下訊息:

Error while parsing argument "your_incorrect_format_argument". Given argument does not match pattern "/(?P<increment_id>.*):(?P<sku>.*):(?P<quantity>.*):(?P<stock_id>.*)/".

當指令建立預留時,它會顯示訊息,指示SKU、訂單和庫存的更新。

bin/magento inventory:reservation:create-compensations 172:bike-123:+2.000000:1

Following reservations were created:
- Product bike-123 was compensated by +2.000000 for stock 1

如果薪酬專案的SKU包含空格,請用引號將SKU括住。

bin/magento inventory:reservation:create-compensations 172:"bike 123":+2.000000:1

偵測不一致並建立補償

您可以使用管道同時執行list-inconsistenciescreate-compensations,偵測不一致並立即建立補償。 使用-r命令選項產生原始資料並將其提交至create-compensations

bin/magento inventory:reservation:list-inconsistencies -r | bin/magento inventory:reservation:create-compensations

範例回應:

bin/magento inventory:reservation:list-inconsistencies -r | bin/magento inventory:reservation:create-compensations
Following reservations were created:
- Product bike-123 was compensated by +2.000000 for stock 1
- Product bikehat-456 was compensated by +1.000000 for stock 1

更新完成後,執行list命令以驗證:

bin/magento inventory:reservation:list-inconsistencies -r
No order inconsistencies were found.

您也可以傳送指令來偵測不一致,並為不完整(-i)或完整(-c)訂單建立補償。

bin/magento inventory:reservation:list-inconsistencies -r -i | bin/magento inventory:reservation:create-compensations
bin/magento inventory:reservation:list-inconsistencies -r -c | bin/magento inventory:reservation:create-compensations

匯入地理代碼

Inventory Management提供距離優先順序演演算法,可協助您決定送出完整或部份訂單的最佳選項。 演演算法會使用GPS資訊或地理代碼,來計算訂單中每個料號的來源(倉儲或其他實體地點)與出貨地址之間的距離。 演演算法會根據這些結果,建議應使用哪個來源來依順序出貨每個專案。

商家會選取計算距離所需的GPS或地理碼資料提供者:

  • Google MAP ​使用Google Map Platform服務來計算送貨目的地位址與來源位置之間的距離和時間。 此選項需要Google計費計畫,並可能透過Google產生費用。

  • 離線計算 ​使用從geonames.org下載的資料並使用命令匯入Commerce來計算距離。 這個選項是免費的。

若要匯入用於離線計算的地理代碼:

輸入下列命令,並包含以空格分隔的ISO-3166 alpha2國碼清單:

bin/magento inventory-geonames:import <country code> <country code> ...

例如:

bin/magento inventory-geonames:import us ca gb de

系統會下載地理編碼資料並匯入您的資料庫,然後顯示訊息Importing <country code>: OK

recommendation-more-help
c1792860-ac60-428b-ad4b-59517d4ea712