Adobe Commerceの Catalog Service
Catalog Service for Adobe Commerce拡張機能は、専用のGraphQL API を通じて最適化された読み取り専用カタログデータを提供することで、ストアフロントの読み込み時間を向上させます。 このサービスは、製品関連のページエクスペリエンスを強化するように特別に設計されており、結果として、ページの読み込みが速くなり、コンバージョン率が向上します。
Catalog Service が提供する豊富な表示モデルのデータには、製品の詳細、属性、在庫、価格が含まれており、次のような製品関連のストアフロントのエクスペリエンスをすばやくレンダリングできます。
- 製品詳細ページ
- 製品リストページとカテゴリページ
- 検索結果のページ
- 製品カルーセル
- 製品比較ページ
- 買い物かご、注文、ウィッシュリストページなど、商品データをレンダリングするその他のページ
主なメリットと機能
- ページの読み込みの高速化:コアのGraphQL システムと比較して、カタログデータを最大 10 倍高速に取得するための最適化されたクエリ
- コンバージョン率の向上:読み込み時間が短縮され、ユーザーエクスペリエンスが向上します
- シンプルな製品タイプ:シンプルで複雑な製品タイプに基づく統合スキーマにより、開発者の複雑さが軽減されます
- 価格精度の向上:小数点以下 4 桁の 16 桁の値のサポート
- 分離されたアーキテクチャ:カタログデータ用の個別のGraphQL システムにより、Commerceのコア業務に影響を与えることなく高いパフォーマンスを確保します
- リアルタイムデータ同期:カタログサービスは、SaaS Data Export 拡張機能を通じてAdobe Commerce アプリケーションと同期が維持され、クエリは最新のカタログデータを返します
- Data Management Dashboard:Adobe Commerce Admin Interface からデータ同期処理をモニターおよび管理します
- API メッシュ統合: オプションで Adobe Developer App Builderの API メッシュと統合して、Adobe Commerce GraphQL システムを他の内部およびサードパーティ API と組み合わせ、カタログサービスのGraphQL スキーマを拡張し、カスタムデータや機能を追加できます
アーキテクチャの概要
Catalog Service は GraphQL を使用して、商品、商品属性、在庫、価格などのカタログデータをリクエストおよび受け取ります。 GraphQLは、フロントエンドクライアントが、Adobe Commerceなどのバックエンドで定義されたアプリケーションプログラミングインターフェイス(API)との通信に使用するクエリ言語です。 GraphQLは軽量で、システムインテグレーターが各応答の内容と順序を指定できるため、一般的な通信方法です。
Adobe Commerceには、異なる目的に使用する 2 つのGraphQL システムが用意されています。
コアGraphQLシステム
- 目的:すべてのCommerce操作用のフル機能の API
- 機能:製品、顧客、買い物かご、チェックアウトなどに対するクエリ(読み取り)とミューテーション(書き込み)
- 制限事項:製品クエリは速度を最適化していません
- ユースケース:Commerceの一般的な操作と書き込み操作
カタログサービスGraphQLシステム
- 目的:高パフォーマンスの製品カタログクエリのみ
- 機能:製品、属性、在庫および価格に関する読み取り専用クエリ
- メリット:製品データに関してコアシステムよりも大幅に高速
- ユースケース:速度が重要なストアフロントの製品エクスペリエンス
カタログサービスで使用可能なデータは、SaaS データエクスポート拡張機能によって配信されます。 この拡張機能では、Commerce アプリケーションと接続されたCommerce サービスの間でデータを同期し、サービス GraphQL API エンドポイントへのクエリが最新のカタログデータを返すようにします。 SaaS データ書き出し操作の管理とトラブルシューティングについては、『 SaaS データ書き出しガイド』を参照してください。
Catalog Service のお客様は、より迅速な価格更新と同期時間を提供する SaaS 価格インデクサーを使用できます。
アーキテクチャの詳細
次の図は、コア GraphQL システムと Catalog Service GraphQL システムのアーキテクチャの違いを示しており、これらのシステムが連携してストアフロントのパフォーマンスを最適化する仕組みを示しています。
システムの仕組み
コアGraphQLシステム(従来のアプローチ):
プログレッシブ web アプリケーション(PWA)は、Commerce アプリケーションにリクエストを直接送信します。このアプリケーションは、複数のサブシステムを介して各リクエストを処理してから応答を返します。 この複数ステップのラウンドトリップにより、ページの読み込み時間が遅くなり、コンバージョン率が低下する可能性があります。
カタログサービス(最適化されたアプローチ):
カタログサービスは、製品の詳細、属性、バリアント、価格、カテゴリを含む専用の最適化されたデータベースにアクセスするストアフロントサービスゲートウェイとして機能します。 このサービスは、自動インデックス作成を通じてAdobe Commerceとの同期を維持し、従来のリクエスト – 応答サイクルを回避して待ち時間を大幅に短縮します。
コアおよびサービスのGraphQL システムは、相互に直接通信しません。 異なる URL から各システムにアクセスする場合、呼び出しには異なるヘッダー情報が必要です。 2 つのGraphQL システムは、一緒に使用するように設計されています。 Catalog Service GraphQL システムは、コアシステムを強化して、製品ストアフロントのエクスペリエンスを高速化します。
オプションで、Adobe Developer App Builderの API メッシュを実装して、2 つのAdobe Commerce GraphQL システムをAdobe Developerを使用してプライベートおよびサードパーティの API やその他のソフトウェアインターフェイスと統合できます。 メッシュは、各エンドポイントにルーティングされる呼び出しにヘッダーの正しい認証情報が含まれるように設定できます。
アーキテクチャの詳細
以下の節では、2 つのGraphQL システムの違いの一部を説明します。
スキーマ管理
カタログサービスはサービスとして機能するので、インテグレーターはCommerceの基盤となるバージョンについて心配する必要はありません。 クエリの構文は、すべてのバージョンで同じです。 また、このスキーマはすべてのマーチャントで一貫しています。 この一貫性により、ベストプラクティスの確立が容易になり、ストアフロントウィジェットの再利用が大幅に増加します。
製品タイプの簡素化
このスキーマにより、製品タイプの多様性は次の 2 つのユースケースに限定されます。
-
シンプルな商品 - カタログサービスは、Adobe Commerceのシンプル、バーチャル、ダウンロード可能、ギフトカードの商品タイプを
simpleProductViews
にマッピングします。 このタイプの特徴は次のとおりです。- 単一の固定価格と数量
- 通常価格(割引前)と最終価格(割引後)
- 色、サイズ、その他の特性など、製品属性のサポート
-
複合製品 - カタログサービスは、設定可能なAdobe Commerce、バンドル、グループ化された製品タイプを
complexProductViews
にマッピングします。 複雑な製品は、設定したりバンドルしたりできる複数の単純な製品の集まりです。- 各コンポーネントの単純な製品は、独自の価格を持つことができます。
- 買い物客は、個々のコンポーネント製品の数量を指定できます。
- 製品オプション(サイズ、色、素材など)は統一されており、製品タイプに関係なく同じように機能します。 各オプションの選択は、独自の属性と価格を持つ特定のシンプルな製品を指しています。 最終製品は、買い物客が必要なオプションをすべて選択するまで、未定義のままです。
製品ビュー属性
シンプルな製品と複雑な製品にはどちらも、ストアフロントに表示できる顧客定義の属性があります。 これらの属性は ProductViewAttributes として返されます。 Adobe Commerceでは、使用可能な属性は商品の作成時に定義されます。 属性は、Adobe Commerce バックエンドから、またはプログラムを使用して追加できます。 SaaS データ書き出しフィードデータの拡張とカスタマイズを参照してください。
価格
単純な製品は、価格のある基本販売単位を表します。 Catalog Service は、割引前の通常価格と、割引後の最終価格を計算します。 価格の計算には、固定製品税を含めることができます。 パーソナライズされたプロモーションは除外されます。
複雑な製品には定価がありません。 代わりに、カタログサービスはリンクサンプルの価格を返します。 例えば、マーチャントは最初に設定可能な商品のすべてのバリエーションに同じ価格を割り当てることができます。 特定のサイズや色が人気がない場合、商人はそれらのバリアントの価格を下げることができます。 したがって、最初の複雑な(設定可能な)製品の価格は、標準的なバージョンと人気のないバージョンの両方の価格を反映して、価格範囲を示しています。 買い物客が使用可能なすべてのオプションの値を選択すると、ストアフロントに単一価格が表示されます。
カタログサービスは、大きな値(最大 16 桁)と高い小数点精度(最大 4 桁)の価格をサポートすることで、正確な価格の更新と計算を保証します。
実装
実装プロセスには、以下が含まれます。
- [PaaS のみ ]{class="badge informative" title="Adobe Commerce on Cloud プロジェクト(Adobeが管理する PaaS インフラストラクチャ)およびオンプレミスプロジェクトにのみ適用されます。"}カタログサービスをインストールして設定 – カタログサービス拡張機能をインストールして設定し、Commerce Services Connector を使用して SaaS 接続を設定します。
- ストアフロントコードの更新:カタログサービスのGraphQL クエリをフロントエンドに統合します。
- ルートクエリ:すべてのカタログサービスクエリはGraphQL ゲートウェイを経由します(オンボーディング時に提供される URL)
- データ同期の監視とトラブルシューティング:向上したパフォーマンスの確認と結果の監視