SaaS データ書き出しとデータの同期

カタログサービス、ライブサーチ、製品レコメンデーションなどのデータ書き出しを必要とするAdobe Commerce サービスをインストールすると、データ収集と同期プロセスを管理するために、SaaS データ書き出しモジュールのコレクションがインストールされます。

SaaS データ書き出しは、データを最新の状態に保つために、継続的にAdobe CommerceインスタンスからCommerce Services プラットフォームに商品データを移動します。 たとえば、商品レコメンデーションを利用するには、正しい名前、価格、在庫状況を反映したレコメンデーションを正確に返すために、最新のカタログ情報が必要です。 同期プロセスの監視について詳しくは、同期プロセスの表示と管理を参照してください。

次の図は、SaaS データ書き出しフローを示しています。

Adobe Commerce 🔗 {width="900" modal="regular"}のSaaS データ書き出し収集と同期フロー

Adobe Commerceでカタログデータが変更されると、同期はこれらのステージを移動します。

  1. エンティティの変更の検出 - MagentoのMview システムは、購読されたデータベース テーブル (例:catalog_product_entity)の行の変更を検出し、変更ログ テーブルにエントリを書き込みます。
  2. フィードのインデックス作成 - フィードのインデクサーは、変更ログを読み取り、ソーステーブルからエンティティ データを読み込み、フィード アイテムをアセンブリします。
  3. データの収集と変換 - フィード スキーマ et_schema.xmlに登録されているプロバイダーは、フィールド データを収集します。
  4. ハッシュ重複排除 - フィード項目ごとにコンテンツハッシュが計算されます。 前回の書き出しからハッシュが変更されていない項目はスキップされるので、変更されたデータのみが送信されます。
  5. HTTP送信 - フィード項目は、認証されたHTTP POST バッチとしてAdobe SaaS フィード取得サービスに送信されます。
  6. ステータスの永続性 - API応答のステータスが、各項目の​ フィードテーブル ​に書き戻されます。
  7. 失敗の再試行 – 書き出しに失敗したアイテムは、スケジュールされたcron ジョブによって自動的に再試行されます。
NOTE
Adobe Commerce Optimizer Connector回のデプロイメントの場合、SaaS Data Exportはエンティティの変更の検出とフィード アセンブリを処理します。 その後、コネクタはフィードをCatalog Data Ingestion API形式にマッピングし、Adobe Commerce Optimizerに送信します。 スコープの制御、送信、エラー処理については、​ コネクタ同期パイプライン ​を参照してください。
NOTE
スムーズなスケジュール設定を実現し、サイト運用の中断を回避するために、Adobeでは、データフィードの同期を開始する前に、データ量と同期時間を見積もることをお勧めします。 この見積もりは、初回の同期や、大量価格の変更などの大規模なカタログ更新を計画する際に重要です。 詳しくは、​ データ同期のデータ量と送信時間の見積もりを参照してください

同期モード

SaaS データの書き出しには、エンティティフィードを処理するための2つのモードがあります。

  • 即時エクスポート モード – このモードでは、データが収集され、1回のイテレーションですぐにCommerce サービスに送信されます。 このモードは、Commerce サービスへのエンティティ更新の配信を高速化し、フィードテーブルのストレージサイズを削減します。

  • 従来の書き出しモード – このモードでは、データは単一のプロセスで収集されます。 次に、cron ジョブが、収集したデータを接続されたコマースサービスに送信します。 データ書き出しログのエントリでは、従来のモードを使用するフィードには(legacy)というラベルが付けられます。

同期タイプ

SaaS データの書き出しは、3つの同期タイプのフル同期、部分同期、失敗した項目の同期を再試行することをサポートしています。

完全同期

Adobe Commerce インスタンスをCommerce サービスに接続した後、完全同期を実行して、Adobe Commerceから接続されたサービスにエンティティ フィード データを送信します。

NOTE
完全同期は主にオンボーディングフェーズ用です。 データベースの過負荷を防ぐために、定期的な使用は避けてください。 初期同期後、部分同期を使用して継続的な変更が自動的に同期されます。

部分同期 partial-sync

部分的な同期により、SaaS データの書き出しは、Commerceアプリケーションから、製品名の変更や価格の更新などの更新情報を、接続されたコマースサービスに自動的に送信します。
部分的な同期を機能させるには、Commerce アプリケーションで次の設定が必要です。

失敗した項目の同期を再試行 retry-failed-items-sync

再試行に失敗した項目の同期では、同期プロセス中のエラー(アプリケーションエラー、ネットワークの中断、SaaS サービスエラーなど)が原因で同期に失敗した項目を再送信するために、別のプロセスを使用します。 resync_failed_feeds_data_exporter グループの*_resend_failed_items cron ジョブは、5分ごとに自動的にこれを処理します。

スケジュール済みcron ジョブ

次のcron グループは、固定スケジュールでパイプラインを自動化します。

Cron グループ
Cron ジョブ
目的
スケジュール
index
indexer_update_all_views
プロセス Mviewの変更ログとトリガーの部分的なフィード更新
1分ごと
index
indexer_reindex_all_invalid
「Reindex required」としてマークされたフィード インデックスの完全な再同期を実行します
1分ごと
resync_failed_feeds_data_exporter
*_resend_failed_items
失敗したフィード項目を検出して再送信します
5分ごとに
commerce_data_export
saas_data_exporter
レガシーモードのフィード(注文、スコープ)のデータを送信します
5分ごとに
commerce_data_export
cleanup_deleted_feed_items
保存期間(7日間)を過ぎて同期された削除されたフィード項目をクリーンアップします
毎日、午前2:00時

フィード送信とHTTP エラー処理 feed-submission-and-http-error-handling

フィード項目は、HTTP POST経由で認証されたgzip圧縮JSON バッチとして送信されます。 次の表は、HTTP応答コードがステータスのエクスポートと再試行動作にどのようにマッピングされるかを示しています。

ステータスコード
再試行しますか?
意味
200
いいえ
正常に承認されました
400
いいえ
不正なデータまたは検証エラー – 手作業による調査が必要です。 詳細については、var/log/saas-export-errors.logを確認してください。
429
はい
レート制限ヒット - 書き出し処理設定thread_countを減らします
5xx
はい
SaaS側エラー – 自動再試行
2
はい
アイテムは再試行の予定です

HTTP レベルのエラーに加えて、ローカル処理エラーやネットワーク障害などのアプリケーションレベルのエラーも、*_resend_failed_items cron ジョブによる自動再試行のためにスケジュールされます。

Commerce AdminのData Feed Sync Status ページからフィードごとのステータスを監視します。

recommendation-more-help
commerce-help-data-export