1. レンダリング

レンダリングバリアントにおけるModelReferenceフィールドレンダラーの使用

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

SXAにはデフォルトのレンダリングおよび レンダリングバリエー ション( ReferenceやModelフィールドレンダラーを含む)が付属しています。しかし、タイプコレクションのモデルプロパティを処理するには、ModelReferenceフィールドレンダラーを使用する必要があります。

ModelReferenceフィールドレンダラーはレンダリングモデル内の指定されたコレクションを反復処理し、追加のモデルフィールドレンダラーをサブアイテムとして使用してデータを抽出できます。コレクションはアイテムのパススルーフィールドフィールドで指定します。対象となるモデルコレクションプロパティはIEnumerableインターフェースを実装しなければなりません。

Rendering variant structure diagram.

標準フィールドレンダラーは、任意の標準フィールドレンダラーを、ModelReferenceフィールドレンダラーの下にネスト方式で使用できます。また、ModelReferenceフィールドレンダラーをネストして、複数のネストされたオブジェクト(階層構造)を持つモデルのコレクションプロパティをターゲットにすることも可能です。これはProduct Bundle - Deprecatedの以下の図に示されています。

ModelReferenceContentTree94.png

以下のクラス図は、ModelReferenceフィールドレンダラーの使い方の例を示しています。図内には、ModelReferenceレンダラーがプロダクトバンドルコンポーネントのデフォルトレンダリングバリアントを反復するために使われる4つのネストされたコレクションがあります。

  • ProductBundleRenderingModelはLineItemsコレクションを繰り返します。
  • ProductVariantクラスはVariantSelectionsコレクションを反復します。
  • BundleVariantsReferenceはValidProductVariantsコレクションを繰り返します。
  • OptionsクラスはOptionsコレクションを反復します。
  • BundleValueVariantsReferenceはVariantsコレクションを繰り返します。
Diagram of the Product Bundle Rendering Model

Scribanテンプレートを修正することで 製品バンドルをカスタマイズ できます。

ModelReferenceレンダラーを使用するには、コレクションプロパティを持つレンダリングモデルクラスを作成する必要があります。モデルクラスはVariantsRenderingModelから継承しなければなりません。

using Sitecore.XA.Foundation.Variants.Abstractions.Models; namespace ProductList.Models { public class ProductListRenderingModel: VariantsRenderingModel { public ICollection Products { get; set; } } }

構成

Sitecore.Commerce.XA.Foundation.Common.config設定ファイルにModelReferenceフィールドレンダラーを登録するには、以下のコードスニペットを使用します。

この記事を改善するための提案がある場合は、 お知らせください!