カスタムの子ビューを使用する

概要

Commerce エンティティに関連付けられたプロパティを拡張し、[コンポーザー] を使用して Composer テンプレートを作成する方法。

Sitecore XC では、カスタムの子ビューを作成できます。これにより、カタログや Sellable 商品のエンティティなど、Commerce エンティティに関連付けられたプロパティを拡張する必要がある場合に、Business Tools のユーザー インターフェイスでページにセクションを追加できます。

カスタムの子ビューを Composer テンプレートに変換することで、Sitecore コンテンツ エディターやストアフロント レンダリングでカスタム プロパティを利用できるようになります。

注記

Sitecore XC Business Tools で、パブリッシュ済みの Commerce エンティティを変更することはできません。Commerce エンティティ ビューをカスタマイズする場合は、新しいエンティティ バージョンを作成し、この新しいバージョンで変更を行う必要があります。

注記

sitecore_web_indexsitecore_master_index などの検索インデックスにカスタムのカタログ プロパティを追加できます。

子ビューを任意の Commerce エンティティに追加してカスタム プロパティを作成できます。

次の例では、Custom child view という名前の子ビューを使用して、サンプルの Habitat_Master カタログのプロパティを拡張しています。この例で、子ビューは Custom View Property というカスタム プロパティを定義して表示します。

注記

作成したカスタムの子ビューは、Business Tools にのみ表示されます。このビューを追加するか、Composer テンプレートに変換しない限り、Sitecore コンテンツ エディターには表示されません。

カスタムの子ビューの例

子ビューを追加する (カスタム プロパティをカタログ エンティティに追加するなど) には、次の手順に従います。

  1. [販売促進] ダッシュボードを開きます。

  2. [カタログ] セクションで、カタログをクリックします。

  3. カタログ詳細ページの [サマリー] セクションで、ドロップダウン メニューの [ビューを追加] をクリックします。

  4. [ビューを追加] ダイアログ ボックスで子ビューの内部名と表示名を入力します。

  5. カタログ詳細ページの新しい子ビューでドロップダウン メニューを開き、[プロパティを追加] をクリックします。

  6. [プロパティを追加] ダイアログ ボックスで新しいプロパティの内部名と表示名を入力します。ドロップダウン メニューで以下のデータ型のいずれかをクリックします。

    • String

    • DateTimeOffSet

    • Decimal

    • Integer

    • Boolean

  7. 新しいプロパティのデータ型に応じて、オプションで、プロパティに許可する値の制約を設定できます。 

    • Integer 型またはDecimal 型のプロパティに対して最小と最大の制約を設定するには、ドロップダウン メニューで [最小-最大制約を追加] をクリックします。

    • String 型のプロパティに許可する値のセットを指定するには、[選択オプション制約を追加] をクリックします。

カスタム エンティティ プロパティを定義するために子ビューを Commerce エンティティに追加した後で、カスタムの子ビューを Composer テンプレートに変換すると、定義したプロパティを他の Commerce エンティティで使用できます。

既存のカスタムの子ビューを Composer テンプレートに変換するには、次の手順に従います。

  1. Business Tools の Commerce 商品詳細ページの [カスタムの子ビュー] セクションで、ドロップダウン メニューの [テンプレートを作成] をクリックします。

  2. [テンプレートを作成] ダイアログ ボックスで、Composer テンプレートの内部名と表示名を指定します。

  3. 左側のナビゲーション ペインで、[コンポーザー] をクリックし、[コンポーザー] ダッシュボードを開きます。

  4. 新しい Composer テンプレートが [テンプレート] セクションに表示されていることを確認します。

Composer テンプレートは [コンポーザー] ダッシュボードで直接作成できます。

新しい Composer テンプレートを作成するには、次の手順に従います。

  1. 左側のナビゲーション ペインで、[コンポーザー] をクリックし、[コンポーザー] ダッシュボードを開きます。

  2. [テンプレート] セクションのドロップダウン メニューで、[テンプレートを作成] をクリックします。

  3. [テンプレートを作成] ダイアログ ボックスで、以下のフィールドを指定します。

    • 名前 - Composer テンプレートの内部名

    • 表示名 - [コンポーザー] ダッシュボードの Composer テンプレートの外部名

    • ビュー名 - カスタムの子ビューの内部名

    • ビュー名の表示 - Commerce アイテム詳細ページに表示される子ビューの外部名

  4. [コンポーザー] ダッシュボードの [テンプレート] セクションで、新しい Composer テンプレートをクリックします。

  5. Composer テンプレートの詳細ページで、1 つ以上のカスタム プロパティを追加します。

既存の Composer テンプレートから Commerce エンティティに子ビューを追加できます。Commerce エンティティ メニューから子ビューを追加すると、元の Composer テンプレートに影響を与えることなく、子ビューを変更できます。

Composer テンプレートからカスタムの子ビューを追加するには、次の手順に従います。

  1. Commerce アイテムの詳細ページの [サマリー] セクションで、ドロップダウン メニューの [テンプレートからビューを追加] を選択します。

  2. [テンプレートからビューを追加] ダイアログ ボックスのドロップダウン リストで Composer テンプレートをクリックします。

Composer テンプレートは複数の Commerce エンティティ タイプにさまざまな詳細レベルで適用できます。たとえば、カスタムの子ビューを特定のタイプのすべての Commerce エンティティに適用できます。

注記

[コンポーザー] ダッシュボードで Composer テンプレートから子ビューを追加すると、Commerce エンティティの子ビューからプロパティを追加、削除することはできません。テンプレート自体に変更を加える必要があります。またこれら変更は子ビューを継承するすべての Commerce エンティティに適用されます。

カスタムの子ビューを特定のタイプのすべての Commerce エンティティに適用する

  1. [コンポーザー] ダッシュボードの [テンプレート] セクションで適用する Composer テンプレートをクリックします。 

  2. Composer テンプレートの詳細ページで、[リンク] アイコンをクリックします。 

  3. [エンティティへのリンク] ダイアログ ボックスで、カスタムの子ビューを継承するすべてのエンティティ タイプを選択します。

    選択可能なカタログ エンティティのリストが含まれている [エンティティへのリンク] ダイアログ ボックスを表示します。

    注記

    Composer テンプレートが以下のいずれかのエンティティ タイプにリンクされている場合、Sitecore コンテンツ エディターは、エンティティ タイプのすべてのコンテンツ アイテムに対して Composer テンプレートのビューで定義されたカスタム プロパティを表示します。

    • Sitecore.Commerce.Plugin.Catalog.SellableItem

    • Sitecore.Commerce.Plugin.Catalog.category

    • Sitecore.Commerce.Plugin.Catalog.catalog

    Composer テンプレートは、1 つのカタログ エンティティ タイプ (カタログまたはカテゴリまたは Sellable 商品) にのみリンクできます。Composer テンプレートを、これらのエンティティの組み合わせにリンクすることはできません。他のカタログ エンティティ タイプには別の Composer テンプレートを作成する必要があります。

タグやアイテム定義が一致する Sellable 商品のサブセットにカスタム Composer テンプレートを適用できます。

注記

Sitecore コンテンツ エディターでカスタム プロパティを表示したり、ストアフロントでカスタム プロパティをレンダリングしたりするには、アイテム定義を使用して Sellable 商品のサブセットに Composer テンプレートを適用する必要があります。

タグを使用して Sellable 商品に適用した Composer テンプレートのカスタム プロパティは、Sitecore コンテンツ エディターには表示されないため、ストアフロントでレンダリングできません。

カスタムの子ビューを Sellable 商品のサブセットに適用するには、次の手順に従います。 

  1. [コンポーザー] ダッシュボードの [テンプレート] セクションで適用する Composer テンプレートをクリックします。

  2. タグが一致する Sellable 商品にテンプレートを適用するには、詳細ページで、[タグ] アイコンをクリックします。 

    注記

    タグの代わりにアイテム定義を使用して、一致する Sellable 商品にテンプレートを適用するには、手順 4に従います。

  3. [タグを管理] ダイアログ ボックスで、Composer テンプレートに関連付けるタグを入力します。

    注記

    タグの文字列は完全に一致する必要があります。一致するタグを持つすべての Sellable 商品は、カスタムの子ビューとそのプロパティを継承します。

  4. または、アイテム定義を使用するには、Composer テンプレートの詳細ページで [+] アイコンをクリックします。

  5. 有効なアイテム定義のリストを表示するには、[アイテム定義に関連付け] ダイアログ ボックスのドロップダウン リストで、カタログをクリックします。そのカタログに定義されたアイテム定義が表示されます。

  6. Composer テンプレートに関連付けるすべてのアイテム定義をチェックします。同じアイテム定義を持つカタログの Sellable 商品はカスタムの子ビューを継承します。

    注記

    Composer テンプレートでカタログ エンティティ タイプ (カタログ、カテゴリ、または Sellable 商品) のカスタム プロパティを定義する場合は、Commerce データ テンプレートを更新して、カスタムの子ビューをコンテンツ エディターで表示する必要があります。

エンティティの詳細ページから子ビューを直接追加した場合 (または、開始点として Commerce エンティティから Composer テンプレートを選択して追加した場合)、子ビューを Commerce エンティティ自体から削除できます。

注記

Composer テンプレートでカスタム プロパティを定義してから、[コンポーザー] ダッシュボードで Composer テンプレートを Commerce エンティティに適用した場合は、Composer テンプレート内から Commerce エンティティへの関連付けを削除する必要があります。

Commerce エンティティ (Sellable 商品など) から子ビューを削除するには、次の手順に従います。

  1. Business Tools で [販売促進] ダッシュボードを開きます。

  2. [カタログ] セクションで、Sellable 商品が含まれているカタログ (および該当する場合はカテゴリ) をクリックします。

  3. [Sellable 商品] セクションで、Sellable 商品をクリックします。

  4. Sellable 商品の詳細ページの、削除する子ビューが含まれているセクションで、ドロップダウン メニューの [ビューを削除] をクリックします。

    注記

    削除したカスタム プロパティが Composer テンプレートを使用した Commerce エンティティに割り当てられている場合、ビューの削除後に、Commerce キャッシュを更新する必要があります。

[コンポーザー] ダッシュボードを使用して Composer テンプレートに子ビューを追加した場合、テンプレートと特定の Commerce エンティティの関連付けを削除できます。または、すべての Commerce エンティティ タイプで、テンプレートが定義するカスタム プロパティを使用する必要がなくなった場合は、Composer テンプレートを完全に削除できます。

注記

アイテム定義やタグを使用して子ビューを割り当てた場合、個々のアイテム定義やタグを削除できます。

Composer テンプレートから子ビューを削除するには、次の手順に従います。

  1. Business Tools で [コンポーザー] ダッシュボードを開きます。

  2. [テンプレート] セクションで、削除するプロパティを定義する Composer テンプレートの表示名をクリックします。

    注記

    関連付けられているすべての Commerce エンティティから Composer テンプレートを削除するには、ドロップダウン メニューの [削除] をクリックします。

  3. 1 つ以上の特定の Commerce エンティティ タイプとの関連付けを削除するには、ドロップダウン メニューの [エンティティへのリンク] をクリックします。

  4. [エンティティへのリンク] ダイアログ ボックスで、Composer テンプレートから関連付けを解除するために選択した Commerce エンティティをクリアし、チェック マークをクリックして変更を保存します。

  5. 関連したエンティティの削除後に、Sitecore からCommerce データ テンプレートを削除します。次に、Commerce データ テンプレートを更新してデフォルトの Commerce データ テンプレートを再度適用します。

Composer テンプレートを作成して Commerce エンティティ タイプ (カタログ、カテゴリ、または Sellable 商品) のカスタム プロパティを定義する場合は、新しいプロパティが Sitecore の該当するコンテンツ アイテム タイプに表示されるように、コンテンツ エディターでデータ テンプレートを更新する必要があります。

注記

  • Composer テンプレートを変更するたびに、この変更を Sitecore に反映するためにコンテンツ エディターでデータ テンプレートを更新する必要があります。

  • Composer テンプレートのプロパティをエンティティで直接変更した場合は、これらの変更をコンテンツ エディターで表示するためにCommerce キャッシュを更新する必要があります。

コンテンツ エディターの Composer テンプレートで定義したカスタム プロパティを (子ビューから) 表示するには、次の手順に従います。

  1. Sitecore スタート画面で、[コンテンツ エディター] をクリックします。

  2. コンテンツ エディターのリボンで、[Commerce] をクリックします。

  3. [データ テンプレートを更新] をクリックします。

    更新が完了すると、テンプレートの影響を受けるコンテンツ アイテムにカスタム プロパティが表示されます。

Commerce データ テンプレートの更新に関する考慮事項

Commerce データ テンプレートの更新中、テンプレート生成プロセスは、テンプレートを構築するベースとして適切なタイプの既存の Commerce エンティティ (カタログ、カテゴリ、または Sellable 商品など) をランダムに選択します。ベースとして使用される特定のエンティティに子ビューが含まれている場合、生成されたテンプレートに予期しない子ビューが含まれる場合があります。これが発生すると、Sitecore コンテンツ エディターで、エンティティ タイプ用に生成されたテンプレート フォルダーに予期しない子ビューが表示されます。

カタログ エンティティ (カタログ、カテゴリ、または Sellable 商品) 用に生成されたテンプレートに不要なビューが含まれないようにするには、デフォルトのテンプレート ジェネレーター設定を (/App_Config/Include/Y.Commerce.Engine/Sitecore.Commerce.Engine.TemplateGenerator.configファイル内で) 変更し、該当するエンティティ タイプのデータ テンプレートの生成時にベースとして使用するエンティティ ID を指定します。

デフォルトのテンプレート ジェネレーター設定の例をを次に示します。

<!-- Defines the catalog item to use for template generation -->      
     <catalogId></catalogId>
<!-- Defines the category item to use for template generation -->
     <categoryId></categoryId>
<!-- Defines the sellable item to use for template generation -->
     <sellableItemId></sellableItemId>
<!-- Defines the bundle to use for template generation -->
     <bundleId></bundleId>

注記

空の値は、テンプレート生成プロセスがエンティティをランダムに選択することを意味します。デフォルトの動作を上書きするには、エンティティ ID を指定してそのエンティティに必要な基本テンプレートを使用します。

Commerce データ テンプレートを削除するには、Sitecore コンテンツ エディターを使用します。Commerce アイテムからプロパティを削除する必要がある場合は、Commerce データ テンプレートを削除します。

Commerce データ テンプレートを削除するには、次の手順に従います。

  1. Sitecore スタート画面で、[コンテンツ エディター] をクリックします。

  2. コンテンツ エディターのリボンで、[Commerce] タブをクリックします。

  3. [データ テンプレートを削除] をクリックします。

    データ テンプレートの削除後は、テンプレートを再度更新して、有効な Commerce テンプレートを Commerce コンテンツ アイテムに再度適用します。

子ビューでカスタム プロパティの値を設定または変更できます。

カスタム プロパティの値を編集するには、次の手順に従います。

  1. Business Tools で該当するエンティティ ビューを参照し、編集するカスタム プロパティが含まれている子ビューのドロップダウン メニューで [ビューを編集] をクリックします。

  2. [ビューを編集] ダイアログ ボックスで、プロパティを必要な値に設定します。

    • DateTime プロパティ タイプを設定するには、日付ピッカーを使用します。

    • DecimalProperty タイプを設定するには、10 進法形式で値を入力します。

    • Integer プロパティ タイプを設定するには、整数値を入力します。

    • Boolean プロパティ タイプの値を true に設定するには、[ブール値] を選択します。プロパティ タイプの値を false に設定するには、チェックボックスをオフにします。

  3. チェック マークをクリックして、変更を保存します。