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

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

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

カタログ マッピングは、Sitecoreコンテンツ アイテム (Sitecoreコンテンツ エディター内) から対応する元のCommerce Engineカタログ アイテムへの関係を表します。

カタログ販売可能商品は、コンテンツ エディターのコンテンツ ツリー内の複数の場所に表示される可能性があります。これは、たとえば、Sellable商品が複数のカテゴリに表示される場合に発生します。Sitecoreプラットフォームは、コンテンツ ツリー内のすべてのアイテムが一意の識別子 (コンテンツ エディターのItem IDプロパティで表される) を持つことを想定しているため、同じカタログ アイテムが出現するたびにItem Id値が異なります。同じカタログ アイテムのこれらの異なるインスタンスを元のカタログ エンティティIDにマッピングして解決するために、Commerce Engine Connectはカタログ マッピング システムを使用します。Catalogプラグインは、カタログマッピング情報の取得を可能にするコマンドとパイプラインを定義します。

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

次の表では、カタログ マッピング、コマンド、およびパイプラインについて説明します。

コマンド/パイプライン

形容

GetMappingsFromDbCommand

GetCatalogMappingsPipeline

Sitecoreコンテンツ エディターで選択したカタログの カタログ マッピング テーブルのコンテンツを返します。

GetMappingsForIdFromDbCommand

GetCatalogMappingsForIdPipeline

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

パラメーター:

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

Commerce Engine Connectは、GetCatalogMappingsForIdメソッドを使用してカタログ マッピングを20個ずつバッチでフェッチし (デフォルトのバッチ サイズは20ですが、設定可能です)、コンテンツ ツリー内の1つのカタログ アイテムのマッピングを更新します (コンテンツ エディターのコンテンツ ツリーの複数の場所に表示される場合があります)。

このメソッドは、sitecoreIdを使用して、Sitecoreアイテム (決定論的ID) がマップされている元のCommerce Engineアイテム (エンティティID) を検出します。その後、Commerce Engineは元のエンティティIDを使用して、Sitecoreのアイテムのすべての決定論的IDのテーブルを作成し、コンテンツを呼び出し元に返します。

この方法は、たとえば、XC Business Toolで1つのアイテムが更新された場合 (たとえば、新しいカタログ エンティティ バージョンが追加された場合) に便利です。また、インクリメンタル インデックス作成プロセスの一部としても使用されます。

CommerceエンティティIDからSitecoreアイテムIDへのマッピング

Catalogプラグインで定義されたカタログエンティティCommerceEntityIDCatalogItemBaseSitecoreIdSitecoreIdItem IdSitecoreIdItem Id

次に、SitecoreID値を生成するメソッドの例を示します。

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

カスタム メソッドでのSitecore Idプロパティの使用

カスタム メソッドを使用してカタログ品目エンティティを作成する場合は、CommerceエンティティIdSitecoreId = GuidUtility.GetDeterministicGuidString(entityId) プロパティの両方を常に含める必要があります。これは、マッピングシステムがコンテンツ エディターのカタログ アイテムを一致するCommerceエンティティに解決するために必要な決定論的なID値を生成するために必要です。

...  
  {
   sellableItem.Id = entityId;
   sellableItem.FriendlyId = productId;
   sellableItem.SitecoreId = GuidUtility.GetDeterministicGuidString(entityId);
   ...
  }
...
この記事を改善するための提案がある場合は、 お知らせください!