---
title: "カタログマッピングコマンドとパイプライン"
slug: "catalog-mappings-commands-and-pipelines"
abstract: "カタログマッピング情報を取得するために使われるコマンドとパイプラインの概要。"
---
# カタログマッピングコマンドとパイプライン

カタログマッピングは、Sitecoreコンテンツエディタ内のSitecoreコンテンツ項目と元の対応するCommerce Engineカタログ項目への関係を表します。

カタログ販売可能なアイテムがコンテンツエディタのコンテンツツリー内の複数の場所に現れることがあります。例えば、販売可能なアイテムが複数のカテゴリに表示されている場合などが挙げられます。Sitecoreプラットフォームは、コンテンツツリー内のすべてのアイテムに固有の識別子(Content Editorの**Item ID**プロパティで表される)を持つことを期待しているため、同じカタログアイテムの出現ごとに異なる**Item ID**値が付与されます。同じカタログアイテムの異なるインスタンスを元のカタログエンティティIDにマッピング・解決するために、Commerce Engine Connectはカタログマッピングシステムを使用します。Catalogプラグインは、カタログマッピング情報の取得を可能にするコマンドとパイプラインを定義します。

## カタログマッピングコマンドとパイプライン

以下の表はカタログマッピングコマンドとパイプラインについて説明します。

コマンド/パイプライン

概要

GetMappingsFromDbCommand  
  
GetCatalogMappingsPipeline

Sitecore Content Editorで選択したカタログのカタログマッピングテーブルの内容を返します。

GetMappingsForIdFromDbCommand  
  
GetCatalogMappingsForIdPipeline

指定されたSitecoreIDのすべてのカタログマッピングのリスト(一括で)を返します。  
  
パラメータ:  
  

-   SitecoreID:これは、商業事業体の関係IDと1対1の関係、およびSitecoreのアイテムIDとの1対多関係を表すID(カタログマッピングシステムでは deterministicIDs と呼ばれます)。

  
  
Commerce Engine Connectは GetCatalogMappingsForId メソッドを用いてカタログマッピングを20個のバッチで取得します(デフォルトのバッチサイズは20ですが設定 [可能です](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/configure-the-batch-size-for-the-getmappingsforidfromdbcommand-requests.html))。また、コンテンツツリー内の単一のカタログ項目のマッピングを更新します(コンテンツエディタのコンテンツツリー内の複数の場所に現れることもあります)。  
  
このメソッドは、 sitecoreId を使って元のCommerce Engineのアイテム(エンティティID)を発見し、Sitecoreアイテム(決定性ID)がマッピングされます。Commerce Engineは元のエンティティIdを使ってSitecore内のアイテムのすべての決定的IDのテーブルを構築し、その内容を呼び出し元に返します。  
  
この方法は、例えばXCビジネスツールで単一のアイテムが更新される場合(例えば新しいカタログエンティティバージョンが追加される場合)に有用です。また、インクリメンタルインデックスプロセスの一部としても使われます。

## CommerceエンティティIDをSitecore Item IDにマッピングする

[カタログプラグインで定義されたカタログエンティティ](urn:resource:component:595779/section-idm232352568183)CommerceEntityIDCatalogItemBaseSitecoreIdSitecoreId**プロパティは、Mappings システム内部で Content Editor のSitecore Item ID**SitecoreIdItem Id

以下はSitecoreID値を生成する手法の例を示しています。

SitecoreId = GuidUtility.GetDeterministicGuidString(categoryId)SitecoreId = GuidUtility.GetDeterministicGuidString(sellableItemId),

## カスタムメソッドでSitecore IDプロパティを利用する方法

カスタム方法でカタログアイテムエンティティを作成する場合は、必ずCommerceエンティティIdとSitecoreId = GuidUtility.GetDeterministicGuidString(entityId) プロパティの両方を含める必要があります。これは、マッピングシステムがContent Editor内のカタログアイテムを対応するCommerceエンティティに解決するために必要な決定的なID値を生成するために必要です。例えば:

...
 {
 sellableItem.Id = entityId;
 sellableItem.FriendlyId = productId;
 sellableItem.SitecoreId = GuidUtility.GetDeterministicGuidString(entityId);
 ...
 }
...