ウォークスルー Content HubからSitecore Commerceコネクタへの設定
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
商品更新の同期をCommerce Engineに同期させるために、Content Hub to Sitecore Experience Commerce(XC)コネクターを設定しContent Hubします。設定はSitecore Content HubとSitecore XCの両方で必要です。
このウォークスルーでは、以下の方法を説明します:
- Content Hubでトリガーとアクションを設定する
- Commerce Engine上でContent HubからCommerce XCコネクターへ設定してください
- オーサリング環境を設定し、Business ToolsでDAM資産を表示するようにします
前提条件
- Sitecore Content HubとSitecore XC間の情報交換は、Azureプラットフォーム上でホストされるサービスバスMicrosoft Azureメッセージングサービスに依存しています。Sitecore Content HubからSitecore Experience Commerceコネクター構成に進む前に、必ず Azure Service Bus Serviceトピックを作成し なければなりません。
- アカウントを作成して Content HubのNugetフィードにアクセスし設定してください。
Content Hubでトリガーとアクションを設定する
コネクターは特定のSitecore Content Hubトリガーとアクション設定に依存し、Content Hubの製品プロパティや関連画像の更新を自動的にAzureサービスバスメッセージングにプッシュします。
!注以下の構成例で使用されているContent Hubの製品プロパティは、Sitecore Content Hub 3.2.203に付属するProSaasテンプレートで定義された製品プロパティに基づいています。
使用しているContent Hubテンプレートの定義に合わせて設定プロパティの値を変更する必要があります。
Create an Azure Service Bus action
Content HubでAzureサービスバスへの接続性を確立するための接続パラメータを定義するアクションを作成します。
アクションを作成するには:
- Content Hubの 管理 タブの Search ボックスで「 Actions 」と入力し、 アクションタイルをクリックします 。
- アクションページで「新しいアクション」をクリックします。
- 新しいアクションダイアログボックスで、以下のパラメータを定義してください:
-
Name - アクション名を提供する。
-
Label - ラベルを定義する。
-
Type - ドロップダウンリストで「 Azure Service Bus」をクリックします。
-
Connection string - サービスバス接続文字列を入力します。例えば 、Endpoint=sb://msb-xc-ch-integration。
!注 接続文字列を取得する手順については、このMicrosoft Azureサービスバスドキュメントを参照してください。
-
Destination Type- ドロップダウンリストでトピックをクリックします。
-
Destination - サービスバストピックの名前を入力します。
-
- 「保存」をクリックします。
- Azureサービスバスへの接続が成功しているか確認するために 、接続のテスト をクリックしてください。
トリガーを作成する
トリガーは、トリガーが反応する条件やユーザーの行動を定義します。この場合、ユーザーが既存の製品プロパティを更新した際にエンティティの変更イベントに反応するようにトリガーを設定します。
トリガーを作成するには:
-
Content Hubの**「管理**」タブでトリガータイルをクリックします。
-
トリガーページで「新しいトリガー」をクリックしてください。
-
一般タブで、以下のトリガー設定を定義します:
- 名前 - トリガーの名前を指定してください。
- 説明 - トリガーの簡単な説明を提供してください。
- 目的 - トリガーが反応するイベント(条件が満たされた場合)を指定します。ドロップダウンリストで「 エンティティ作成 」チェックボックスと「 エンティティ修正 」チェックボックスを選択します。
- 実行タイプ - ドロップダウンリストで「 **背景で」**をクリックします。これはアクションが非同期的に行われることを示します。
-
条件タブのマッチドロップダウンで、論理演算子Anyをクリックして(定義された3つのエンティティ定義と条件のいずれかでマッチングします)。
-
「 定義を追加 」をクリックし、検索欄で 「product」と入力し、「 Product (M.PCM.)」を選択します。「Product)」
!注203年2月3 Sitecore Content Hubでは、Product (M.PCM.Product) 法人はSitecore XCの商SellableItem事業体にマッピングされています。
以下を繰り返して、以下のエンティティタイプの定義を追加してください:
-
アセット(M.Asset)
!注アセットエンティティの定義は、製品に関連する画像アセットのAlternateTextプロパティの変更を同期させるために必要です。
-
パブリックリンク(M.PublicLink)
-
-
製品(M.PCM.製品)エンティティに対して、対応する条件を追加してください。 Product (M.PCM.Product)定義領域で、以下の各条件に対して条件 を追加 をクリックします。
-
名称(ProductName)が変更されました
-
Long Description(ProductLongDescription)が変更されました
-
マスターアセット(PCMProductToMasterAsset)が変更されました
!注オプションリストからOR論理演算子を使わなければなりません。
製品(M.PCM.製品)エンティティの条件設定は、以下のようになります。

-
-
Asset (M.Asset) エンティティタイプの条件を追加してください。 Asset (M.Asset) 定義領域でADD CONDITIONをクリックし、次の条件を追加します: AlternateText has changed。
-
条件サブグループを追加してください。「 AlternateText has changed」の行末で、+ の記号をクリックして、以下の条件をそれぞれ追加してサブグループを形成します。
-
Product (PCMProdcutToAsset)に追加されたアイテムは空ではありません
-
Product (PCMProdcutToAsset) 削除されたアイテムは空ではありません
-
製品(PCMProductToAsset)が変更されました
!注オプションリストのOR論理演算子を必ず使う必要があります。
構成は以下のようになります。

-
-
パブリックリンク(M.PublicLink)エンティティタイプに対してマッチする条件を追加してください。 パブリックリンク(M.PublicLink) 定義領域で、次の条件を追加するために条件 を追加 してください: 相対的なURL(RelativeUrl)が変更されました 。
-
行末尾の 「Relativeurl(RelativeUrl)」が変更された場合は、+ 記号をクリックして以下の条件を追加してサブグループを形成します。
-
追加されたアセットリンク(AssetToPublicLink)が空ではありません
-
アセットリンク(AssetToPublicLink)削除された項目は空ではありません
-
アセットリンク(AssetToPublicLink)が変更されました
!注オプションリストからOR論理演算子を使わなければなりません。
構成は以下のようになります。

-
Commerce Engine上でContent HubからCommerce XCコネクターへ設定してください
Content Hub to Commerce XC connectorをデータ同期のために設定するには、Commerce minionsサービスを実行しているCommerce Engineのインスタンス上で設定変更を行います。 PlugIn.ContentHub.PolicySet-1.0.0.json(the-plugin-contenthub-policyset-file.md "The PlugIn.ContentHub.PolicySet file") ファイルは、コネクタSitecore XC Content Hub設定および有効化に使うポリシーを公開します。JSONファイルへのデフォルトパスはC:\inetpub\wwwroot\<CommerceMinions_Sc>\wwwroot\data\Environments\PlugIn.ContentHub.PolicySet-1.0.0.jsonです。
Azure Service Busへの接続設定
Plugin.Sample.ContentHub.AzureServiceBusPolicyポリシーには、Azureサービスバスとの接続を確立するために必要な構成プロパティが含まれています。
Azure Service Busへの接続性を設定するには:
-
Plugin.Sample.ContentHub.AzureServiceBusPolicyセクションで*「PlaceholderFor...」*で始まる値を、あなたのデプロイメントに関連する値に置き換えてください:
{ "$type": "Plugin.Sample.ContentHub.AzureServiceBusPolicy, Plugin.Sample.ContentHub", "ConnectionString": "PlaceholderForASBPrimaryConnectionString", "TopicName": "PlaceholderForASBTopicName", "SubscriptionName": "PlaceholderForASBSubscriptionName" },
同期ポリシーの設定
同期ポリシー("Sitecore.Commerce.Plugin.ContentHub.SynchronizationPolicy")は、同期の元となるContent Hubエンティティを定義します。構成では、これはProductEntityType値で表されます。コマースエンジンでは、このプロパティはSellableItemエンティティタイプに対応します。
Content HubとSitecore XC間のデータの同期は、Content HubのエンティティキーとSitecore XCの一意なSellable item IDキーとの1対1の関係に依存しています。これは以下のコードサンプルで表現されています "EntityForeighKey"。
"DefaultCulture"属性は製品プロパティのローカライズをサポートします。"DefaultCulture"の値は、Commerce Engineのデフォルト言語にマッピングされたContent Hubの文化に対応します。
!重要不整合な挙動を避けるために、非ローカライズ可能なContent HubプロパティをCommerce Engine内のローカライズされた販売可能なアイテムプロパティにマッピングしないでください。
同期ポリシーの設定を変更するには:
- SynchronizationPolicyセクションでは、以下のサンプルで示されているデフォルトのプロパティ値を、Content Hub実装の実際の値に置き換えてください:
{ "$type": "Sitecore.Commerce.Plugin.ContentHub.SynchronizationPolicy, Sitecore.Commerce.Plugin.ContentHub", "DefaultCulture": "en-US", "EntityForeignKey": "ProductNumber", "ProductEntityType": "M.PCM.Product", "AssetEntityType": "M.Asset", "PublicLinkEntityType":"M.PublicLink" },
Commerce Engine上でContent Hubクライアントサービスを設定する
Sitecore Content HubとCommerce Engine間の接続を確立するには、Commerce Engine上でContent Hubのクライアントサービスを設定する必要があります。
Content Hubクライアントの設定:
-
ContentHubClientPolicyセクションで、"PlaceholderFor..."で始まるプロパティ値を、Content Hubデプロイメントで使用した値に置き換えてください。
{ "$type": "Sitecore.Commerce.Plugin.ContentHub.ContentHubClientPolicy, Sitecore.Commerce.Plugin.ContentHub", "EndpointUrl": "PlaceholderForContentHubEndpointUrl", "UserName": "PlaceholderForContentHubUserName", "Password": "PlaceholderForContentHubPassword", "ClientId": "PlaceholderForContentHubClientId", "ClientSecret": "PlaceholderForContentHubClientSecret", "KnownSSORedirects": "PlaceholderForContentHubKnownSSORedirects", "TimeoutInSeconds": 90, "RetryCount": 3 },
Content HubのプロダクトエンティティプロパティをXC販売可能なアイテムプロパティマッピングに定義する
ProductSynchronizationPolicyポリシーは、同期プロセスがどのPCMエンティティプロパティがどの販売可能なアイテムプロパティにマッピングするかを決定するために使うマッピング("PropertyMapping"セクションで)を定義XC。
デフォルトの製品プロパティを販売可能なアイテムプロパティマッピングに変更するには:
-
"FromProperty"プロパティを使ってContent Hubデプロイメントで使うPCM製品プロパティを指定し、"ToProperty"プロパティを使って同期するXC販売可能なアイテムプロパティを指定します。同期したいプロパティ値に基づいて、必要なだけマッピングを追加できます。以下の例はデフォルトのプロパティマッピングを示しています:
{ "$type": "Sitecore.Commerce.Plugin.ContentHub.ProductSynchronizationPolicy, Sitecore.Commerce.Plugin.ContentHub","PropertyMapping":{ "$type": "System.Collections.Generic.List`1Sitecore.Commerce.Plugin.ContentHub.PropertyMap, Sitecore.Commerce.Plugin.ContentHub, mscorlib", "$values": { "type": "Sitecore.Commerce.Plugin.ContentHub.PropertyMap, Sitecore.Commerce.Plugin.ContentHub", "FromProperty": "ProductName", "ToProperty": "Name" }, { "$type": "Sitecore.Commerce.Plugin.ContentHub.PropertyMap, Sitecore.Commerce.Plugin.ContentHub", "FromProperty": "ProductName", "ToProperty": "DisplayName" }, { "$type": "Sitecore.Commerce.Plugin.ContentHub.PropertyMap, Sitecore.Commerce.Plugin.ContentHub", "FromProperty": "ProductLongDescription", "ToProperty": "Description" }
} },
デジタルアセット同期の設定
ContentHub.AssetSynchronizationPolicyポリシーには、アセットのパブリックリンクが追加されたり変更したり削除された際に、アセット画像の変更を同期するために使われる設定プロパティが含まれています。
デフォルトでは、コネクターの設定では製品画像がContent Hubでアセットとして管理されていることを前提としています(Sitecoreメディアライブラリでは管理されません)。
製品イメージの同期を無効にするには:
-
ポリシーセットファイルから以下の構成ブロックを削除します:
{ "$type": "Sitecore.Commerce.Plugin.ContentHub.AssetSynchronizationPolicy, Sitecore.Commerce.Plugin.ContentHub", "EntityToMasterAssetRelationName": "PCMProductToMasterAsset", "EntityToAssetRelationName": "PCMProductToAsset", "AssetToPublicLinkRelationName": "AssetToPublicLink", "AssetsAlternateTextFieldName": "Title" }
!注DAMの製品画像を使用する場合は、ストアフロントが カタログ画像の適切なソースを使用するように設定されていることを確認してください。
コネクタ構成の有効化または無効化
デフォルトでは、ポリシーセットファイルJSONは無効化されています(PlugIn.ContentHub.PolicySet-1.0.0.json.disabled)。
設定を有効にするまたは無効化するには:
- ファイル名を変更してください:
- PlugIn.ContentHub.PolicySet-1.0.0.json 設定を有効にするために、
- 設定を無効にするために PlugIn.ContentHub.PolicySet-1.0.0.json.disabled 。
- Commerce EngineをBootstrap で設定をCommerce Engineに保存します。
オーサリング環境を設定し、Business ToolsでDAM資産を表示するようにします
DAMで商品画像を管理する場合、オーサリング環境の設定にポリシーを追加し、Content Hub管理される商品に関連するDAMアセットがSitecore XC Business Tools、特にマーチャンダイジングユーザーインターフェースで対応する販売可能なアイテムと共に表示されるようにする必要があります。以下は、マーチャンダイジングツールで販売可能なアイテムに対して画像アセットDAMがどのように表示されるかの例を示しています:

Business ToolsでDAM資産を表示するためにオーサリング環境を設定するには:
-
Commerce Authoring環境のファイルを開JSON。 Sitecore.Commerce.Engine.SDKフォルダ内のこのファイルのデフォルトパスはsrc/Sitecore.Commerce.Engine/wwwroot/data/Environments/PlugIn.Habitat.CommerceAuthoring-1.0.0.jsonです。
!注Adventure Worksのカタログを使用している場合は、Adventure Worksのオーサリング環境にポリシーを追加する必要があります: PlugIn.AdventureWorks.CommerceAuthoring-*.*.*.jsonファイル。
-
"Policiesコレクションでは、以下の例のようにbizFxPolicyをJSONファイルに追加します:
{ "$type": "Plugin.Sample.ContentHub.BizFxPolicy, Plugin.Sample.ContentHub" }
-
Commerce EngineをBootstrapで設定をCommerce Engineに保存します。