庫存(請參閱可銷售數量

商品目錄中的 inventory 欄位代表可在 Facebook 商店或 Instagram 購物帳號上銷售之每項商品的庫存量。此值會反映在「商品詳情頁面」(PDP)中,幫助買家瞭解有多少商品可銷售。保持數量準確和最新狀態對使用體驗很有幫助,因為這可以指出商品何時缺貨,如果不正確,可能會導致超售。

注意:inventory 欄位將停用,並以新的 quantity_to_sell_on_facebook 欄位取代。雖然我們在短期內會支援舊欄位名稱,但建議您使用新名稱。如需這項更新的詳細資訊,請參閱支援的商品欄位 - 高效速成+ 目錄廣告和商務

注意:未設定庫存的商品無法供標註或購買。不過,您還是可以在不結帳的情況下,將其用於高效速成+ 目錄廣告。

庫存波動

inventory 欄位是動態的,這表示其值會隨著用戶從您的 Facebook 商店或 Instagram 購物帳號購買商品而波動。每當用戶下單時,對應商品的庫存量就會遞減。

如果是用戶進行取消,商務平台會自動增加此值或將商品加回庫存。如果是賣家進行取消,您可以在取消時將商品加回庫存,並設定取消 API 端點restock_items 欄位來增加對應的庫存量。

您透過商品目錄上傳或其他技術(詳情請參閱庫存更新策略)提供的值會視為真實來源,並且一律用來覆寫我們後端快取的值。

我們這一端會保留下列類型的庫存計數:

  • 提供的庫存是您透過商品目錄上傳或其他技術(詳情請參閱庫存更新策略)提供的值。
  • 可用的庫存是顧客可以購買的數值,並且會將未處理的訂單納入考量。

若要進一步瞭解這些庫存類型,請參閱商品生命週期

缺貨商品

當用戶在您的 Facebook 商店或 Instagram 購物帳號上購買商品時,inventory 值會隨之遞減。當此值達到 0 時,我們會將商品標示為「缺貨」,並限制任何人購買額外的單位。您應該盡力定期補充商品,因為「缺貨」商品會對用戶體驗和您的品牌認知產生負面影響。

如果買家發現缺貨商品,我們會根據您商品目錄中該商品的不同款式 inventory 值,盡量將「商品詳情」頁面切換到「有存貨」的單位款式。

停賣商品

停賣商品時,您可能會想要直接將其從商品目錄中刪除。我們不建議這麼做。

從目錄中刪除商品可能會導致不良影響,例如商品標籤和圖像消失。強烈建議您過了很長的時間(幾個月)後再刪除商品

您應該將停賣商品的 visibility 欄位設定為 staging,而不是刪除商品。如此可確保商務平台能夠將商品連結回已知實體,並從容地管理不同的情況。

商品生命週期

您每次更新庫存時,我們都會更新提供的庫存。此數值不會對應至可供顧客購買的商品數量。我們會追蹤傳入的訂單(可能處於不同狀態)並減去未確認的訂單,以計算最終的可用庫存。此數值不會在我們的平台之外曝光。

可用的庫存 = 提供的庫存 - 未確認的訂單

訂單確認後,有 30 分鐘的緩衝時間可讓您處理訂單及更新庫存量(透過目錄),之後我們就會從計數器移除那些已確認的訂單。

超售

為了將商務平台擴展到數以千計的商家,我們刻意決定不支援同步庫存管理。因此,我們不支援在只有極少量購買交易時,即同步減少您倉庫中的庫存量。如果您的庫存在多個通路之間共享,可能會意外地在 Facebook 或 Instagram 上超售商品。可銷售數量有限的熱銷商品可能就會發生這種情形。

當您因為超售而無法履行訂單時,應該進行取消並將 reason_code 設定為 OUT_OF_STOCK

如果您經常面臨超售的情況,可以增加處理訂單的頻率,並視情況調整商品的庫存量。

庫存整合策略

您可以根據正在進行的整合類型,以不同方式更新庫存:

  • 使用商務管理工具用戶介面(小型商品組合、測試等等)
  • 排程或手動上傳的摘要
  • 使用摘要 API
  • 使用批次 API

庫存更新策略

由於分散式系統的非同步本質,無論您更新庫存量的速度有多快,商品目錄中的 inventory 值都可能會不同步。以下是為了盡量減少競速條件,您可能需要考量的一些技術。

預先分配庫存

避免超售的最有效方法是為您的 Facebook 商店或 Instagram 購物通路預先分配庫存。為每個銷售通路指定庫存,可確保在任何個別通路發生的銷售作業不會相互干擾。此策略可以套用於部分或整個商品目錄。

滯銷商品

對於以正常速度銷售的商品,或庫存量較大的商品,超售的風險相對較低。在這種情況下,您可以讓商品目錄更新策略保持簡單:

  • 為每日/每小時更新配置排程的摘要。此摘要應包含所有欄位,包括最新的 inventory 值。

熱銷商品

對於庫存較少或極不穩定的熱銷商品,您可以更及時更新 inventory 等易變欄位。您可以使用即時批次 API 來達成此目的。以下是您可以遵循的一般策略:

  • 為每日/每小時更新配置排程的摘要。此摘要應包含所有必要的「商品目錄」欄位,並省略 inventory 等易變欄位。此摘要的目的是更新本質上較為靜態的欄位,並使用即時 API 延遲更新易變欄位。
  • 當後端中的值變更,或變更頻率固定時,可以使用即時批次 API 來更新 inventory 等易變欄位。為了一致性,請勿將使用此技術進行更新的欄位包含在您的摘要中,這一點很重要。

以下是使用即時批次 API 進行更新的範例:

curl \
  -d @body.json \
  -H "Content-Type: application/json"
  {
    "access_token": "<ACCESS_TOKEN>",
    "item_type": "PRODUCT_ITEM",
    "requests": [      
      {
        "method": "UPDATE",
        "retailer_id": "SKU1234567",
        "data": {
          "inventory": "1337",
        }
      }
    ]
  } https://graph.facebook.com/<CATALOG_ID/batch

批次 API 要求為非同步。您應該要檢查要求狀態及其結果,確認您的所有更新都成功。如需詳細資訊,請參閱批次 API 文件

如果您要管理少量商品,也可以直接使用圖形 API 來個別更新每項商品,而不使用即時批次 API。因為圖形 API 限速和節流的關係,這種方式只適用於少量商品。可使用此方法來更新的商品確切數量,取決於套用於 Facebook 應用程式的配額。有個很好的經驗法則,就是如果您一次要更新十幾個商品以上,就應該使用即時批次 API。

若要更新商品中的特定欄位,您可以進行下列 API 呼叫:

curl -d "inventory=1337" -X POST 
https://graph.facebook.com/<FACEBOOK_PRODUCT_ID>
access_token: PAGE_ACCESS_TOKEN

如果是使用圖形 API,請使用 Facebook 商品編號。如果是使用批次 API,請使用您自己的編號,也就是 retailer_id

庫存閾值

另一種防止超售的常用技術,是對庫存分配採取謹慎的態度。例如,當您在倉庫中發現特定品項快要缺貨時,可以將「商品目錄」中的庫存量設定為零。實際上這是低價出售時的最佳化做法,但如果超售是個問題,這也會有所幫助。

如果您知道每項商品的銷售速度,可以將商品劃分至不同儲存區,並根據銷售概況為每個儲存區套用不同的閾值。熱銷商品通常需要較高的閾值,而滯銷商品可能會使用較低的閾值來標示缺貨。