---
title: "カスタムチャイルドビューの作業"
slug: "work-with-custom-child-views"
abstract: "Commerceエンティティに関連付けられたプロパティを拡張し、Composerを使ってComposerテンプレートを作成する方法。"
---
# カスタムチャイルドビューの作業

Sitecore XC、カタログや販売可能なアイテムエンティティなど、Commerce entityに関連付けられたプロパティを拡張したいときに、Business Toolsユーザーインターフェースのページにセクションを追加できるカスタム子ビューを作成できます。

カスタムプロパティをSitecore Content Editorやストアフロントレンダリングで利用可能にし、カスタムの子ビューをComposerテンプレートに変換できます。

> !注Sitecore XC Business Toolsでは、すでに公開されているCommerceエンティティに変更することはできません。Commerceエンティティビューをカスタマイズしたい場合は、新しい [エンティティバージョン](https://doc.sitecore.com/xp/ja/users/100/sitecore-experience-commerce/entity-versions-and-publishing.html "Entity versions and publishing")を作成し、そのバージョンで関連する変更を加える必要があります。

> !注カスタムカタログプロパティ(sitecore\_web\_indexやsitecore\_master\_indexを含む)[を検索インデックスに追加](https://doc.sitecore.com/xp/en/developers/100/sitecore-experience-commerce/adding-a-property-field-to-an-index.html)すれば、検索時に検索可能になるSitecore。

## コマースエンティティに子ビューを追加する

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

以下は、サンプル*Habitat\_Master*カタログのプロパティを拡張するために使われた「*カスタムチャイルドビュー*」という子表示の例を示しています。この例では、子表示はカスタムプロパティ*Custom View Property*を定義し表示しています。

> !注カスタム子ビューを作成すると、それはBusiness Toolsでのみ表示されます。Sitecore Content Editorでは、[追加](https://doc.sitecore.com/xp/ja/users/100/sitecore-experience-commerce/work-with-custom-child-views.html#UUID-5e62ee47-9739-3845-db0f-d800baa6c11f_section_svq_5y5_n2b "Add a child view from a Composer template") またはComposerテンプレートに [変換](https://doc.sitecore.com/xp/ja/users/100/sitecore-experience-commerce/work-with-custom-child-views.html#UUID-5e62ee47-9739-3845-db0f-d800baa6c11f_section-5c9385c70c4cd-idm46449957630272 "Convert an existing child view to a Composer template") しない限り表示されません。

![Example of a custom child view](https://doc.sitecore.com/api/markdown-image/xp/ja/users/100/sitecore-experience-commerce/images/XC_BizTools_Custom_Child_View.png)

例えば、カタログエンティティにカスタムプロパティを追加する子ビューを追加するには:

1.  **マーチャンダイジング**ダッシュボードを開きます。
2.  **カタログ**セクションでカタログをクリックしてください。
3.  カタログ **詳細** ページの **サマリー** セクションのドロップダウンメニューで「 **View 追加**」をクリックします。
4.  「 **View 追加** 」ダイアログボックスで、子ビューの内部名と表示名を入力します。
5.  カタログ **詳細** ページで、新しい子表示のドロップダウンメニューを開き、「 **プロパティを追加**」をクリックします。
6.  「 **プロパティを追加** 」ダイアログボックスで、新しいプロパティの内部名と表示名を入力します。その後、ドロップダウンメニューで以下のいずれかのデータ型をクリックします。
    -   ストリング
    -   DateTimeOffSet
    -   小数点
    -   整数
    -   ブール
7.  新しいプロパティのデータ型に応じて、許可された値に制約を設定することも可能です。
    -   *整数*または*小数*型のプロパティに対する最大最小制約を設定するには、ドロップダウンメニューで「**最小最大制約を追加**」をクリックします。
    -   文字列型のプロパティの許可値を指定する *には、ドロップダウン*メニューで「 **選択オプション制約を追加**」をクリックします。

## 既存の子ビューをComposerテンプレートに変換する

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

既存のカスタム子ビューをComposerテンプレートに変換するには:

1.  Business ToolsのCommerce項目 **詳細** ページ、カスタム子表示セクションのドロップダウンメニューで「 **テンプレート作成** 」をクリックします。
2.  「 **テンプレート作成** 」ダイアログボックスで、Composerテンプレートの内部名と表示名を指定します。
3.  左側のナビゲーションペインで、Composerダッシュボードを開くには **「Composer**」をクリックしてください。
4.  新しいComposerテンプレートが **テンプレート** セクションに掲載されているか確認してください。

## 作曲家テンプレートを作成する

Composerダッシュボードから直接Composerテンプレートを作成できます。

新しいComposerテンプレートを作成するには:

1.  左側のナビゲーションペインで、Composerダッシュボードを開くには **「Composer**」をクリックしてください。
2.  **テンプレート**セクションのドロップダウンメニューで「**テンプレート作成**」をクリックします。
3.  「 **Create Template** diablo」ボックスで、以下のフィールドを指定します:
    -   **名前** - Composerテンプレートの内部名
    -   **表示名** - **Composer** ダッシュボード上のComposerテンプレートの外部名
    -   **View Name** - カスタム子ビューの内部名
    -   **表示表示 表示** 名前 - Commerce アイテム **詳細** ページ上の子表示の外部名
4.  **Composer**ダッシュボードの**テンプレート**セクションで、**テンプレート**セクションの新しいComposerテンプレートをクリックしてください。
5.  Composerテンプレート **の詳細** ページで、1つ以上のカスタムプロパティを追加してください。

## Composerテンプレートから子表示を追加する

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

Composerテンプレートからカスタム子表示を追加するには:

1.  商取引項目**の詳細ページ、****まとめ**セクションのドロップダウンメニューで「**テンプレートからビューを追加**」をクリックします。
2.  「 **テンプレートからView 追加** 」ダイアログボックスで、ドロップダウンリストの「Composer template」をクリックします。

## 複数のCommerceエンティティタイプにComposerテンプレートを適用してください

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

> !注ComposerダッシュボードのComposerテンプレートから子ビューを追加すると、Commerceエンティティ内の子ビューからプロパティを追加または削除することはできません。テンプレート自体に変更を加えなければならず、その変更は子ビューを引き継ぐすべてのCommerceエンティティに適用されます。

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

1.  **Composer**ダッシュボードの**テンプレート**セクションで、適用したいComposerテンプレートをクリックしてください。
    
2.  作曲家テンプレート **の詳細** ページで、リンクアイコンをクリックしてください。
    
3.  「 **エンティティへのリンク** 」ダイアログボックスで、カスタム子ビューを継承したいすべてのエンティティタイプを選択します。
    
    ![Displays the Link To Entities dialog box which contains a list of catalog entities that can be selected.](https://doc.sitecore.com/api/markdown-image/xp/ja/users/100/sitecore-experience-commerce/images/XC_BzTools_Link_To_Entities.png)
    
    > !注Composerテンプレートが以下のいずれかのエンティティタイプにリンクされている場合、Sitecoreコンテンツエディタはそのエンティティタイプのすべてのコンテンツ項目に対してComposerテンプレートのビューで定義されたカスタムプロパティを表示します。
    > 
    > -   Sitecore。Commerce.Plugin.Catalog.SellableItem
    >     
    > -   Sitecore。Commerce.Plugin.Catalog.category
    >     
    > -   Sitecore。Commerce.Plugin.Catalog.catalog
    >     
    > 
    > Composerテンプレートは1つのカタログエンティティタイプ(カタログ*、カテゴリ、**または販売*可能なアイテムのいずれか)にしかリンクできません。これらのエンティティの組み合わせにComposerテンプレートをリンクすることはできません。異なるカタログエンティティタイプごとに異なるComposerテンプレートを作成する必要があります。
    

## 特定の販売可能なアイテムの一部に作曲家テンプレートを適用してください

カスタムComposerテンプレートを、タグやアイテム定義が一致する販売可能なアイテムのサブセットに適用できます。

> !注カスタムプロパティをSitecoreコンテンツエディターから表示したり、ストアフロントでカスタムプロパティをレンダリングしたりするには、アイテム定義を使って販売可能なアイテムのサブセットにComposerテンプレートを適用する必要があります。
> 
> タグを使って販売可能なアイテムに適用されるComposerテンプレートのカスタムプロパティはSitecore Content Editorには表示されず、ストアフロントでレンダリングすることはできません。

販売可能なアイテムのサブセットにカスタム子表示を適用するには:

1.  **Composer**ダッシュボードの**テンプレート**セクションで、適用したいComposerテンプレートをクリックしてください。
    
2.  タグが一致する販売可能な商品にテンプレートを適用するには、**詳細** ページでタグアイコンをクリックしてください。
    
    > !注タグの代わりにアイテム定義を使って、テンプレートをマッチングする販売可能なアイテムに適用するには、[ステップ4](https://doc.sitecore.com/xp/ja/users/100/sitecore-experience-commerce/work-with-custom-child-views.html#UUID-5e62ee47-9739-3845-db0f-d800baa6c11f_N1621620913404 "Step 4")に進みましょう。
    
3.  「 **タグ管理** 」ダイアログボックスで、Composerテンプレートに関連付けたいタグを入力してください。
    
    > !注タグ文字列は完全に一致しなければなりません。タグが一致するすべての販売可能なアイテムは、カスタム子ビューとそのプロパティを引き継ぎます。
    
4.  または、アイテム定義を使うには、作曲家テンプレート **の詳細** ページで **+** アイコンをクリックしてください。
    
5.  有効な品目定義のリストを表示するには、「 **アイテム定義へのアソシエイト** 」ダイアログボックスのドロップダウンリストで、カタログをクリックしてください。 [そのカタログで定義された品目定義](https://doc.sitecore.com/xp/ja/users/100/sitecore-experience-commerce/work-with-catalogs-and-categories.html#UUID-352bdba2-b65d-0fe6-89d7-30a35afb292a_section-idm4515240406995232428970295554 "Add item definitions to a catalog") が表示されます。
    
6.  Composerテンプレートに関連付けられたいすべてのアイテム定義を確認してください。同じアイテム定義を持つカタログ内の販売可能なアイテムはカスタム子ビューを引き継ぎます。
    
    > !注もしComposerテンプレートがカタログエンティティタイプ(カタログ、カテゴリ、または販売可能なアイテム)のカスタムプロパティを定義している場合、[Commerce Dataテンプレートをコンテンツ](https://doc.sitecore.com/xp/ja/users/100/sitecore-experience-commerce/work-with-custom-child-views.html#UUID-5e62ee47-9739-3845-db0f-d800baa6c11f_section-5db1f251bc698-idm45815738472400 "Update Commerce data templates") エディターでカスタム子表示に更新する必要があります。
    

## Commerceエンティティから子ビューを削除する

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

> !注まずComposerテンプレートでカスタムプロパティを定義し、その後ComposerダッシュボードからCommerceエンティティにComposerテンプレートを適用した場合、[Composerテンプレート内でCommerceエンティティへの関連付け](https://doc.sitecore.com/xp/ja/users/100/sitecore-experience-commerce/work-with-custom-child-views.html#UUID-5e62ee47-9739-3845-db0f-d800baa6c11f_section-5db3135105c24-idm45530484761616 "Remove a child view from a Composer template")を削除しなければなりません。

例えば、Commerceエンティティから販売可能なアイテムから子ビューを削除するには:

1.  Business Toolsで**Merchandising**ダッシュボードを開きます。
    
2.  **カタログ**セクションで、販売可能な商品を含むカタログ(該当する場合はカテゴリ)をクリックしてください。
    
3.  **販売可能なアイテム**セクションで、販売可能なアイテムをクリックします。
    
4.  販売可能なアイテム詳細ページ、削除したい子ビューがあるセクションのドロップダウンメニューで **「ビューを削除**」をクリックします。
    
    > !注削除したカスタムプロパティがComposerテンプレートを使ってCommerceエンティティに割り当てられていた場合、ビューを削除した後に[Commerce Cacheを更新](https://doc.sitecore.com/xp/en/developers/100/sitecore-experience-commerce/manually-update-cache-and-indexing.html) する必要があります。
    

## Composerテンプレートから子ビューを削除する

**Composer**ダッシュボードを使ってComposerテンプレートに子ビューを追加すれば、テンプレートと特定のCommerceエンティティとの関連付けを解除できます。あるいは、Composerテンプレートが定義したカスタムプロパティをすべてのCommerceエンティティタイプで使う必要がなくなった場合は、テンプレート自体を削除することもできます。

> !注もし子ビューをアイテム定義やタグで割り当てた場合、個別のアイテム定義やタグを削除することもできます。

Composerテンプレートから子ビューを削除するには:

1.  Business Toolsで**Composer**ダッシュボードを開きます。
    
2.  **テンプレート**セクションで、削除したいプロパティを定義したComposerテンプレートの表示名をクリックします。
    
    > !注関連するすべてのCommerceエンティティからComposerテンプレートを削除するには、ドロップダウンメニューの「Remove」をクリックします。
    
3.  特定のCommerceエンティティタイプとの関連付けを解除するには、ドロップダウンメニューをクリックし、「 **エンティティへのリンク**」をクリックしてください。
    
4.  「 **エンティティへのリンク** 」ダイアログボックスで、Composerテンプレートから解除したいCommerceエンティティをクリアし、変更を保存するためにチェックマークをクリックします。
    
5.  関連するエンティティを削除した後、Sitecoreから [コマースデータテンプレートを削除](https://doc.sitecore.com/xp/ja/users/100/sitecore-experience-commerce/work-with-custom-child-views.html#UUID-5e62ee47-9739-3845-db0f-d800baa6c11f_section-5db331639c24e-idm45815737960784 "Delete Commerce data templates") し、その後コ [マースデータテンプレートを更新](https://doc.sitecore.com/xp/ja/users/100/sitecore-experience-commerce/work-with-custom-child-views.html#UUID-5e62ee47-9739-3845-db0f-d800baa6c11f_section-5db1f251bc698-idm45815738472400 "Update Commerce data templates") してデフォルトのコマースデータテンプレートを再適用してください。
    

## Commerceデータテンプレートの更新

Composerテンプレートを作成して、Commerceエンティティのカタログ、カテゴリ、販売可能なアイテムなどのカスタムプロパティを定義する際は、コンテンツエディターでデータテンプレートを更新し、新しいプロパティがSitecoreでそのコンテンツアイテムタイプを表示できるようにする必要があります。

> !注
> 
> -   Composerテンプレートを変更するたびに、Sitecoreで変更を伝播させるためにコンテンツエディターでデータテンプレートを更新する必要があります。
>     
> -   エンティティ内で直接Composer Templateのプロパティを変更する場合、Content Editorでその変更を見るためには、Content Editorで[Commerce Cacheをリフレッシュ](https://doc.sitecore.com/xp/en/developers/100/sitecore-experience-commerce/manually-update-cache-and-indexing.html) する必要があります。
>     

コンテンツエディタのComposerテンプレートで定義されたカスタムプロパティ(子ビューから)を表示するには:

1.  **Sitecore Launchpadで「Content Editor」をクリックしてください**
    
2.  コンテンツエディターのリボンで **「コマース**」をクリックします。
    
3.  「 **データテンプレートを更新**」をクリックします。
    
    アップデートが完了すると、テンプレートの影響を受けたコンテンツ項目にカスタムプロパティが表示されます。
    

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

コマースデータテンプレートの更新中、テンプレート生成プロセスは適切なタイプの既存のコマースエンティティ(例:カタログ、カテゴリ、販売可能なアイテム)をテンプレート構築の基準としてランダムに選びます。ベースとして使われる特定のエンティティに子ビューが含まれている場合、予期しない子ビューが生成されたテンプレートの一部になる可能性があります。この場合、Sitecore Content Editorのエンティティタイプの生成テンプレートフォルダで予期しない子ビューを確認できます。

カタログエンティティ(カタログ、カテゴリ、販売可能なアイテム)の生成テンプレートに不要なビューが含まれないように、デフォルトのテンプレートジェネレーター設定( /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 Content Editorを使ってCommerceのデータテンプレートを削除します。Commerceアイテムからプロパティを削除する必要があるときに、Commerceデータテンプレートを削除します。

商務データテンプレートを削除するには:

1.  Sitecore Launchpadで「**Content Editor**」をクリックしてください。
    
2.  コンテンツエディターのリボンにある「 **Commerce** 」タブをクリックします。
    
3.  「 **データテンプレートを削除**」をクリックします。
    
    データテンプレートを削除した後、[再度更新](https://doc.sitecore.com/xp/ja/users/100/sitecore-experience-commerce/work-with-custom-child-views.html#UUID-5e62ee47-9739-3845-db0f-d800baa6c11f_section-5db1f251bc698-idm45815738472400 "Update Commerce data templates") して有効なCommerceテンプレートをCommerceコンテンツ項目に再適用できます。
    

## カスタムプロパティの価値を編集する

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

カスタムプロパティの値を編集するには:

1.  Business Toolsで該当するエンティティビューに移動し、編集するカスタムプロパティを含む子ビューのドロップダウンメニューで「 **ビュー編集**」をクリックします。
2.  「 **編集表示** 」ダイアログボックスで、プロパティを必要な値に設定します:
    -   **DateTime**プロパティタイプを設定するには、Datepickerを使ってください。
    -   DecimalProperty型を設定するには、十進形式で値を入力します。
    -   **整数**プロパティ型を設定するには、整数値を入力します。
    -   **ブール**属性型の値を*true*に設定するには、**Boolean**を選択します。*false*に設定するには、チェックボックスを空のままにしてください。
3.  変更を保存するにはチェックマークをクリックしてください。