商品リストに利用可能なレンダリングの選択
商品リスト レンダリング、プロモーション商品レンダリング、および Commerce 検索結果レンダリングの技術的な詳細と、それぞれを選択する利点。
Commerce 検索結果レンダリングを使用して、商品リストをオンラインでレンダリングできます。このレンダリングは、標準の SXA 検索結果レンダリングおよび検索サービスに基づいています。これには、レンダリング バリアントや Scriban テンプレートの使用が含まれます。
Commerce 検索結果レンダリングは、SXA 検索結果のレンダリングとほぼ同じですが、次の重要な違いがあります。
翻訳が組み込まれている変更済みの MVC ビューを使用します。
レンダリングされる商品のリストについて、Commerce Engine から商品の価格と在庫状況を要求する機能があります。2 回目の AJAX 呼び出しを使用して情報を要求し、データをバインドするために、JavaScript が追加されています。
SXA 検索結果コンポーネントで使用されるルートとは別のレンダリング バリアント ルートがあります。
次の表に、商品リストをレンダリングする方法の違いを詳しく示します。
違い | Commerce 検索結果レンダリング | 商品リスト レンダリングとプロモーション商品レンダリング |
---|---|---|
Sitecore 9.3 以降で利用できます。 | Sitecore 9.0 以降で利用できます。 | |
商品リストで利用可能なレンダリングの数 | 商品リストをレンダリングする必要があるすべてのシナリオで、1 つのレンダリングを使用できます。このレンダリングでは、ContentSearch クエリを含むコンテンツで定義された標準の SXA スコープが使用されます。また、動的クエリ トークンを使用して検索結果が決定されます。詳しくは、Commerce 検索スコープの作成に関するページを参照してください。 | 2 つのレンダリングが使用でき、それぞれ商品リストをレンダリングする必要がある異なるシナリオに対応しています。この 2 つ のレンダリングは似ていますが、さまざまなシナリオでレンダリングする商品を取得するためにさまざまなクエリを実行するコード ビハインドが異なります。 プロモーション商品レンダリングでは、コンテンツで定義されたクエリが実行されますが、動的クエリ トークンは使用できません。一方、商品リスト レンダリングでは、現在のコンテキスト アイテムに基づいて (カテゴリーであると想定)、またはクエリ検索用語に基づいて (クエリ パラメーターとして提供されている場合)、カタログに対するクエリが実行されます。 |
カスタマイゼーション | このレンダリングでは、出力を生成する Scriban テンプレートを含むレンダリング バリアントがサポートされています。デフォルトの実装は、商品カートのみを担当する Scriban テンプレートに基づいています。 | 両方のレンダリングの HTML 出力をカスタマイズするには、すべての変更について MVC ビューを上書きする必要があります。どちらのレンダリングでも商品カードのリスト全体が出力されるため、商品カードに変更を加えるには、コンポーネント全体をカスタマイズする必要があります。 |
パーソナライゼーション | レンダリング バリアントと Scriban テンプレートの両方でのパーソナライゼーション サポートにより、すべてのレベル (レンダリング、商品カード、商品カード内) でパーソナライゼーションを実行できます。 | 商品カード レベルではパーソナライゼーションを行うことができず、コンポーネント レベルでのみ可能です。 |
AJAX 呼び出しの回数 | デフォルトでは、1 回の AJAX 呼び出しが使用されます。ただし、2 回の AJAX 呼び出しが使用されるようにデフォルトを変更できます。1 回は SXA 検索サービスの呼び出しであり、レンダリング バリアント サーバー側を処理することで生成された商品リストの HTML を取得します。もう 1 回は、KnockoutJS を使用して HTML にバインドされたバルク価格と株式情報の組み合わせを取得するための呼び出しです。 | KnockoutJS を使用して MVC ビューで定義された静的 HTML にバインドされた JSON を返す、1 回の AJAX 呼び出し。JSON には、商品データと価格および在庫情報の両方が含まれています。 |
キャッシュとパフォーマンス | キャッシュはレンダリングに組み込まれていませんが、Content Delivery Networks (CDN) を使用してサポートされます。商品データは 1 回の AJAX 呼び出しを使用して取得され、価格および在庫情報は 2 回目の AJAX 呼び出しを使用して取得されるため、両方を別々にキャッシュできます。価格および在庫情報がライブで取得される一方で、主要な商品データのキャッシュがサポートされています。 | 商品リスト レンダリングには、AJAX 呼び出しのキャッシュのサポートが組み込まれています。キャッシュは CD インスタンス レベルで行われ、地理は認識されず、CDN を使用する場合ほど明瞭または機能的ではありません。プロモーション商品レンダリングには、キャッシュのサポートは組み込まれていませんが、AJAX 呼び出しをキャッシュするために CDN を使用してサポートされます。どちらのレンダリングでも、AJAX 呼び出しのキャッシュを有効にすると、価格および株式情報もキャッシュされますが、これは望ましくない場合があります。 |
レンダリング サポート | すべての標準 SXA 検索レンダリングと互換的に機能します。レンダリングのいくつかは、レンダリング バリアントに基づいており、Scriban テンプレートをサポートしています。 | ページングまたは無限スクロール用の Commerce 固有の検索レンダリングのみがサポートされています。このレンダリングは、レンダリング バリアントおよび Scriban テンプレートに基づいていません。 |
商品ランキング | ContentSearch クエリとともにスコープで定義されたルールを使用してサポートされます。Commerce 検索結果の並べ替えおよび検索結果での商品のブーストに関するページを参照してください。 | サポートされていません。 |
機能のスコープ | SXA 検索レンダリングのセットは、新しい集計済みファセット レンダリングやファセット サマリー レンダリングなど、広範囲に渡っています。 | Commerce 固有の検索レンダリングのセットは制限されています。 |
検索動作の追跡 | 集計済みファセット レンダリングまたはソート結果レンダリングを変更すると、FacetApplied イベントと ProductSorting イベントがトリガーされます。イベント データはコレクション DB に記録されます。 | ページ イベントは、検索開始レンダリングによってトリガーされます。 |
注記
更新されたレンダリングは、カスタマイズに関してはより柔軟性がありますが、ページの読み込みにかかる時間に影響を与える可能性があります。