SaaS データ エクスポートを使用してデータを同期する
カタログサービス、Live Search、Product Recommendationsなど、データのエクスポートを必要とするCommerce サービスをインストールすると、データの収集と同期プロセスを管理するために、Saas データのエクスポートモジュールのコレクションがインストールされます。
SaaS データのエクスポートでは、商品データをAdobe Commerce インスタンスからCommerce サービスプラットフォームに継続的に移動して、データを最新の状態に保ちます。 例えば、商品Recommendationsでは、現在のカタログ情報を使用して、正確な名前、価格、在庫状況でレコメンデーションを正確に返す必要があります。 データ管理ダッシュボードを使用して、同期プロセスまたはコマンドラインインターフェイスを監視および管理し、同期をトリガーして、Commerce Services で使用するために製品データを再インデックス化します。
次の図は、SaaS データの書き出しフローを示しています。
{width="900" modal="regular"}
SaaS データ書き出しフローの主なコンポーネントは次のとおりです。
- Adobe Commerceからフィードのデータを収集し、フィード項目を組み立て、更新をリッスンし、フィードステータスを保持する SaaS データエクスポートモジュール。
- SaaS は、データをエクスポートするモジュールをエクスポートし、ルーティングを設定して、接続されたサービスにフィードを公開します。
- Adobe Commerce サービスは、データ取得プロセスを管理して、受信フィードを検証し、接続されたサービスの更新を保持します。
同期モード
SaaS データ エクスポートには、エンティティ フィードを処理するための 2 つのモードがあります。
-
即時エクスポートモード – このモードでは、データが収集され、1 回のイテレーションでCommerce サービスにすぐに送信されます。 このモードでは、Commerce サービスへのエンティティの更新の配信が高速化され、フィードテーブルのストレージサイズが縮小されます。
-
レガシーエクスポートモード – このモードでは、データは 1 つのプロセスで収集されます。 次に、cron ジョブが、収集したデータを接続されたコマースサービスに送信します。 データ書き出しログエントリでは、レガシーモードを使用するフィードには
(legacy)
というラベルが付けられます。
同期タイプ
SaaS データのエクスポートでは、フル同期、部分同期、および失敗した項目同期の再試行の 3 種類の同期タイプがサポートされています。
完全同期
Adobe Commerce インスタンスをCommerce サービスに接続した後、完全同期を実行して、Adobe Commerceから接続されたサービスにエンティティフィードデータを送信します。
部分同期
部分同期を使用すると、SaaS データの書き出しは、Commerce アプリケーションから接続されたコマースサービスに、商品名の変更や価格の更新などのアップデートを自動的に送信します。
データの書き出しプロセスでは、次の cron ジョブを使用して部分同期操作を自動化します。
-
cron グループジョブの「インデックス」:
indexer_reindex_all_invalid
ジョブでは、無効なフィードのインデックスがすべて再作成されます。 これは、標準のAdobe Commerce cron ジョブです。saas_data_exporter
のジョブは、従来のエクスポートフィードに対するものです。sales_data_exporter
ジョブは、販売データのエクスポート フィードに固有です。
これらのジョブは毎分実行されます。
部分同期を機能させるには、Commerce アプリケーションで次の設定が必要です。
-
すべての SaaS データ書き出しインデクサーは、
Update by Schedule
モードで設定されます。SaaS データ エクスポート バージョン 103.1.0 以降では、
Update by Schedule
モードはデフォルトで有効になっています。 Commerce CLI コマンド(bin/magento indexer:show-mode | grep -i feed
)を使用して、サーバー上のインデックス設定を確認できます。
失敗した項目の同期を再試行
失敗した項目の同期の再試行では、アプリケーション エラー、ネットワーク障害、SaaS サービス エラーなど、同期プロセス中のエラーが原因で同期に失敗した項目を、別のプロセスを使用して再送信します。 この同期の実装は、cron ジョブにも基づいています。
resync_failed_feeds_data_exporter
cron グループジョブ:<feed name>_feed_resend_failed_feeds_items
ジョブは、同期に失敗した項目(例:products_feed_resend_failed_items
)を再送信します。
同期プロセスの表示と管理
ほとんどの同期アクティビティは、アプリケーション設定に基づいて自動的に処理されます。 ただし、SaaS データのエクスポートには、プロセスを管理するためのツールも用意されています。
-
管理者ユーザーは、同期の進行状況を表示および追跡し、データに関する情報を データ管理ダッシュボードから取得できます。
-
Commerce アプリケーションサーバーへのアクセス権を持つ開発者、システムインテグレーター、管理者は、Adobe Commerce コマンドラインツール(CLI)を使用して同期プロセスとデータフィードを管理できます。 データ書き出しコマンドリファレンスを参照してください。
Commerce アプリケーション設定の確認
部分同期および失敗した項目の再試行同期は、Commerce インスタンスが正しく設定されている場合にのみ機能します。 通常、設定はCommerce サービスを設定する際に完了します。 データの書き出しが正しく機能しない場合は、次の設定を確認します。
データ転送ログのイベント マネージャー通知
バージョン 103.3.4 以降では、Commerce インスタンスからAdobe Commerce サービスにデータが送信されると、SaaS データエクスポートによって data_sent_outside
イベントがディスパッチされます。
$this->eventManager->dispatch(
"data_sent_outside",
[
"timestamp" => time(),
"type" => $metadata->getFeedName(),
"data" => $data
]
);