使用Adobe I/O啟用及設定目錄事件

目錄事件是電腦產生的通知,說明可透過Catalog Service使用的受支援目錄變更。 它們可啟用事件導向的工作流程,例如:

  • 讓外部快取或服務與目錄更新保持同步。
  • 產品、變體、價格或類別變更時觸發下游流程。
  • 支援Experience Edge和需要近乎即時目錄更新的Edge Delivery Services使用案例。

如需從Adobe Commerce到您的事件消費者的端對端路徑,請參閱透過 Adobe I/O Events的事件傳遞。

支援的事件型別 supported-event-types

目錄活動著重於透過Adobe Developer Console公開的店面相關變更。 目前支援的訂閱如下。

訂閱
活動
產品更新
產品建立、更新和刪除透過Catalog Service提供的產品變更
價格更新
價格建立、更新和刪除影響店面目錄資料的變更

每個事件包含:

  • 描述變更型別的事件識別碼。
  • 實體和環境內容,例如例項ID和SKU。
  • 說明已變更的實體和相關範圍資訊的裝載。

範例事件裝載

ProductUpdated事件

{
  "imsOrgId": "aaa-0",
  "instanceId": "instance-9",
  "eventCode": "productUpdated",
  "sku": "1234",
  "links": [
    {"type":  "variantOf", "sku": "5678"}
   ],
  "scope": [
    { "storeViewCode": "US-us" },
    { "storeViewCode": "FR-fr" },
    { "storeViewCode": "DE-de" }
  ]
}

PriceUpdated事件

{
  "imsOrgId": "aaa-0",
  "instanceId": "instance-9",
  "eventCode": "priceUpdated",
  "sku": "1234",
  "scope": [
    {
      "websiteCode": "website1",
      "customerGroupCode": "customer-group-code1"
    },
    {
      "websiteCode": "website2",
      "customerGroupCode": "customer-group-code2"
    }
  ]
}

透過Adobe I/O Events傳遞事件 event-delivery-through-adobe-io-events

Adobe I/O Events會將目錄事件傳送給您的整合。 下圖顯示從Adobe Commerce到Catalog Service和Adobe I/O Events的目錄變更高層級流向已訂閱的消費者:

從Adobe Commerce透過目錄服務和Adobe I/O Events到訂閱消費者的目錄事件高階流程

下列步驟將更詳細地說明每次移交:

  1. Adobe Commerce →目錄服務

Adobe Commerce使用支援的SaaS Data Export延伸模組將目錄資料匯出至Catalog Service。

  1. 目錄服務正在處理

    • Catalog Service個處理支援的目錄變更,並為事件傳遞準備這些變更。
  2. →目錄服務

  • 目錄事件已發佈至Adobe I/O Events。
  • 消費者使用日誌、webhook、Adobe I/O Runtime、Amazon EventBridge或其他支援的傳遞機制來訂閱。

Adobe I/O Events提供:

  • 每個訂閱者至少傳送一次 (可能有重複的事件)。
  • 不同傳遞之間不提供訂購保證。

您的消費者必須處理重複事件和順序錯亂的傳遞。 如需實作指南,請參閱Idempotency

使用案例 use-cases

您可在多個案例中使用目錄事件。

靜態網站和邊緣傳送

  • 目錄資料變更時,重新產生或失效目錄頁面和店面片段。
  • 避免頻繁輪詢Catalog Service API。

搜尋索引和快取

  • 觸發下游搜尋索引中的累加更新。
  • 當產品或類別資料變更時,更新快取圖層或目錄的外部檢視。

與外部系統整合

  • 將目錄變更轉寄給外部系統,例如PIM、訂價引擎或其他業務線系統。
  • 保持下游應用程式同步化而不需直接存取資料庫。

監視和可觀察性

將目錄事件與現有的監視(例如,Grafana與Prometheus)結合為:

  • 監視事件輸送量。
  • 偵測目錄更新磁碟區中的異常。

啟用目錄事件 enable-catalog-events

若要啟用端對端的目錄事件,請依照下列步驟操作。

PREREQUISITES
在啟用目錄事件之前,請確定您具備下列條件:
  • 支援的Adobe Commerce環境已啟用Catalog Service。
  • 已為Adobe Commerce設定 Adobe I/O 連線。
  • 存取布建Commerce環境的相同IMS組織中的Adobe Developer Console。
  • 若要確認同步處理至Commerce SaaS服務,請在[管理]中使用​Data Management Dashboard
  • 儀表板驗證需要Product Recommendations v6.0、Live Search v4.1.0+或Catalog Service v1.17+。 Adobe建議將您的Commerce專案更新至這些服務的最新支援版本。 對於舊版服務,請使用目錄同步進行同步驗證。
NOTE
若要使用目錄事件,請先設定Adobe I/O Events的Commerce環境,然後在Adobe Developer Console中註冊事件訂閱。
如果您的環境在設定後未出現在Adobe Developer Console中,請確認您已登入正確的IMS組織,且您的帳戶擁有必要的存取權。 如果環境仍未顯示,請聯絡Adobe支援。

驗證目錄資料 verify-catalog-data

在設定之前,請先確認Catalog Service擁有您Commerce執行個體目前的目錄資料。 目錄事件取決於SaaS Data Export完成兩個階段 — 確認​兩者

  1. 確認成功從Commerce 匯出​摘要。

    從Adobe Commerce Admin開啟資料摘要同步狀態頁面(System > Data Transfer > Data Feed Sync Status),並確認每個Catalog Service摘要的最後匯出狀態都成功。

  2. 確認從Adobe Commerce管理員成功​同步處理至連線的Commerce服務

    從Adobe Commerce管理員開啟資料管理儀表板 (System > Data Transfer > Data Management Dashboard),然後確認同步的產品資料包含預期的產品。

註冊並訂閱Adobe I/O Events register-events

定義要訂閱的Commerce事件,然後在專案中註冊這些事件。

如果您的執行個體不在選取專案清單中,則它未連線到Adobe I/O。 如需修正問題的指示,請參閱​ Adobe Commerce Developer ​檔案中的設定 Adobe I/O 連線

  1. 從Adobe Developer Console,登入用於Commerce專案的相同IMS組織。

  2. 為Commerce目錄事件建立專案,或將事件API新增至現有專案。

    • 在頂端導覽列中選取​APIs and services

    • 在​ Browse APIs and services ​頁面上,選取​ Events ​索引標籤。

    • 快速尋找Commerce Catalog Events API。 在搜尋方塊中輸入​目錄,或依​ Commerce ​產品篩選。

    • 在​ Commerce Catalog Events ​卡片上,選取​Project

    在[瀏覽API和服務]頁面上選取的 Commerce目錄事件提供者 {width="600" modal="regular"}

  3. 設定事件註冊。

    選取要從中接收事件通知的Commerce執行個體。 然後,選取​Next

    在事件註冊畫面上選取 個Commerce執行個體 {width="600" modal="regular"}

  4. 選擇要訂閱的事件。

    選取您想要接收的支援事件訂閱,例如​ Product Update ​或​Price Update。 然後,選取​Next

    在註冊畫面上選取要訂閱的 事件類別 {width="600" modal="regular"}

  5. 新增OAuth伺服器對伺服器認證。

    輸入​Credential name。 然後,選取​Next

  6. 輸入​ Event registration name ​和​Event registration description。 然後,選取​Next

  7. 在最後的註冊畫面中,接受預設消費者,即Journaling API。

    預設日誌API取用者可讓您測試事件註冊,並確認已傳送事件。 如果您已設定webhook或Adobe I/O Runtime動作使用者,請在此處選取它。 否則,稍後當您的消費者準備好時,請編輯事件註冊。

    在事件註冊完成畫面上選取的日誌API消費者預設值 {width="600" modal="regular"}

  8. 選取​Complete registration

設定事件取用者 configure-consumer

  1. 設定取用者,例如:

    • webhook端點
    • Adobe I/O Runtime動作
    • 另一個支援的目的地
  2. 如果您未在註冊期間選取消費者,請編輯事件註冊以新增消費者詳細資訊。

    • 從Adobe Developer Console編輯您的專案。 然後,選取您建立的事件註冊。

    • 在事件註冊詳細資訊頁面上,選取​Edit Events Registration

    • 選取​Next,直到您到達消費者選取畫面為止。 然後,選取您設定的消費者。

    • 將消費者更新至您設定的目的地。 然後,選取​Save configured events

驗證事件流程 validate-event-flow

已為您的環境啟用目錄事件。 當Commerce中的目錄資料變更時,更新會流經Catalog Service至Adobe I/O Events,而您訂閱的消費者會收到對應的目錄事件。 在建立生產整合之前,請檢閱限制和最佳實務

  1. 進行簡單的支援目錄變更,例如更新產品名稱或變更價格。

  2. 確認下列結果:

    • 透過Catalog Service API可以看到變更。
    • 您的Adobe I/O Events消費者會收到對應的產品或價格事件。

限制和最佳實務 limits-and-best-practices

在建立目錄事件時,請遵循這些最佳實務。

冪等性 idempotency

Adobe I/O Events可以傳遞相同目錄事件多次,而單一產品的事件可能會未依順序送達。 設計等冪的消費者,方法如下:

  • 搭配版本或時間戳記欄位使用實體ID。
  • 安全地忽略相同變更的重複通知。

輸送量和背壓

更新率高的大型目錄可能會產生大量的事件量。 請確定:

  • 消費者可以在尖峰輸送量處理事件。
  • 您可以視需要使用緩衝、批次處理或佇列。

安全性與隔離

  • Adobe I/O Events強制執行​租使用者隔離
  • 您的組織只會接收其自身環境和權益的事件。

結構描述演變

目錄事件裝載遵循與Catalog Service API相同的概念模型。 若要保持向前相容:

  • 儘可能避免嚴格執行結構描述。
  • 忽略未知的欄位而不是失敗。

疑難排解目錄事件 troubleshoot-catalog-events

如果目錄事件遺失或延遲,請完成以下步驟。

  1. 檢查目錄服務資料

    使用 Catalog Service API確認已成功儲存目錄變更。

  2. 驗證SaaS Data Export

    目錄事件需要Catalog Service中的目前資料。 確認匯出路徑的兩個階段:

    • 從Commerce匯出​摘要 — 在資料摘要同步狀態頁面或var/log/saas-export.log中,確認Catalog Service摘要已成功從Commerce匯出。

    • 同步處理至連線的Commerce SaaS服務 — 在資料管理儀表板目錄同步或匯出記錄檔中,確認資料已成功同步處理至Catalog Service。

    如需疑難排解匯出和同步處理工作,請參閱使用SaaS資料匯出同步處理資料記錄及疑難排解

  3. 驗證Adobe I/O Events組態

    確認:

    • 您已在Adobe Developer Console中登入正確的IMS組織。
    • Commerce Catalog Events​提供者已啟用。
    • 預期的​ Commerce Catalog Events ​提供者和環境是可見的。
    • 訂閱為作用中。
    • 您的端點、動作或日誌取用者可以接收及處理測試事件。
  4. 連絡Adobe支援

    開啟支援票證時,請選取與​ Adobe Commerce應用程式 ​對應的問題原因,並包含下列資訊:

    • 目錄服務詳細資料(環境、地區)。
    • Adobe I/O Events訂閱詳細資料。
    • 遺失事件的近似時間和說明。

    如需其他說明,請參閱支援票證

recommendation-more-help
commerce-help-catalog-service