チュートリアル: カタログとインベントリ データのエクスポート
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このトピックでは、Sitecore XC環境からカタログとインベントリ データをエクスポートする方法について説明します。
Sitecore XCは、Commerce環境からカタログ データと在庫セットをエクスポートするために使用するアプリケーション プログラミング インターフェイス (API) を提供します。たとえば、開発環境からCommerceカタログをエクスポートし、テスト環境やステージング環境などの別の環境にインポート できます。
エクスポートされたデータのデータ構造の詳細については、生成されたデータ構造の セクションを参照してください。
カタログとインベントリのデータをエクスポートするには:
インターネット インフォメーション サービス (IIS) 関連の設定を変更する
インターネット インフォメーション サービス (IIS) 関連の設定を変更する
カタログ データのエクスポートを開始する前に、インターネット インフォメーション サービス (IIS) の設定 (IISマネージャーとweb.configファイル) を変更して、データのエクスポート プロセス中にタイムアウトが発生するリスクを減らす必要があります。これは、非常に大きなカタログ・データ・セットをエクスポートする場合に重要です。
web.configファイル内のIIS構成と関連設定を変更するには、次の操作を行います。
-
インターネット インフォメーション サービス (IIS) マネージャーを起動し、ナビゲーション ツリーでApplication Poolsをクリックします。
-
Application Poolsページで、関連するアプリケーションプールの名前(CommerceAuthoring_Scなど)をクリックします。
-
ActionsペインのEdit Application PoolセクションでAdvanced Settingsをクリックし、Advance Settingsダイアログ ボックスで次のパラメータ値を0(ゼロ) に設定します。
節
パラメーター
価値
CPU
Limit Interval (minutes)
0
Process Model
Idle Time-out (minutes)
0
Recycling
Regular Time Interval (minutes)
0
-
「OK」をクリックします。
-
カタログデータのエクスポートに使用するサービスのweb.configファイル(C:\inetpub\wwwroot\CommerceAuthoring_Sc\web.configなど)を開き、次の設定サンプルで太字でマークされている設定を変更します。
メモ次の例に示すようにIIS設定を変更する前に、カタログのエクスポートが完了した後にIISの設定を何に戻すかがわかるように、元の値をメモしておいてください。
手記オプションで、カタログのエクスポートプロセスの実行中に情報を収集するためのロギングを有効にできます。 これを行うには、カタログデータのエクスポートに使用するサービスのconfig.jsonファイル(C:\inetpub\wwwroot\CommerceAuthoring_Sc\wwwroot\config.jsonなど)を開き、ログレベル値を"Information"に設定します。
-
インターネット インフォメーション サービスをリセットします。
SQLタイムアウト構成の変更
SQLタイムアウト構成の変更
SQLタイムアウト構成を変更して、SQLデータベースへの接続が開いたままであることを確認し、長いプロセスが完了しないようにします。
SQLタイムアウト設定を変更するには、次のようにします。
-
カタログデータのインポートに使用するオーサリングサービスのインスタンスで、Plugin.SQL.PolicySet-1.0.0.jsonファイル ( C:\inetpub\wwwroot\CommerceAuthoring_Sc\wwwroot\data\Environments\Plugin.SQL.PolicySet-1.0.0.json
-
"ConnectTimeout" プロパティと "CommandTimeout" プロパティの値を "0"に設定します。
手記現在のプロパティ値をメモして、カタログのインポートが完了した後に元の値に戻すことができるようにします。
Commerce Engineのブートストラップ
Commerce Engineのブートストラップ
Commerce Engine設定に変更を加えたら、 Commerce Engineをブートストラップします。
Commerceカタログ データ セットのエクスポート
Commerceカタログ データ セットのエクスポート
この例は、Sitecore Commerce Engine SDKで提供されるPostmanサンプルに基づいています。
次の手順は、Postmanアプリケーションをインストールして設定し、Sitecore Commerce Engine SDKからサンプル コレクションをインポートし、環境を設定し、Commerce Engine APIにアクセスするためのベアラー トークンを取得していることを前提としています。
この例では、Postmanを使用してカタログのエクスポートAPIリクエストを実行する代わりに、BashスクリプトでcURLコマンドを使用する方法を示します。
Postmanを使用してCommerce XCカタログ データ セットをエクスポートするには:
-
Postman Collectionsウィンドウで、CatalogAPISamplesコレクションを展開します。
-
Catalog - APIフォルダーを開き、Export Catalogsリクエスト ( ) を選択します{{ServiceHost}}/{{ShopsApi}}/ExportCatalogs()。
-
Environmentフィールドで、エクスポートする必要があるカタログ データを含むCommerce環境を指定します。 たとえば、HabitatAuthoring 環境です。
-
Headersタブで、デプロイに必要な次のキー値を指定します。
ヘッダーキー
価値
ShopName
{{ShopName}}
ShopperId
{{ShopperId}}
Language
{{Language}}
Currency
{{Currency}}
Environment
{{Environment}}
GeoLocation
{{GeoLocation}}
CustomerId
{{CustomerId}}
Authorization
{{SitecoreIdToken}}
-
Bodyタブで、特定の要件に基づいてエクスポート設定を変更します。次に、デフォルト設定を示します。
excludeInventoryパラメーターをtrueに設定すると、ExportCatalog呼び出しにインベントリ情報は含まれません。
-
カタログのエクスポート操作を開始するには、Sendをクリックします。
-
Sitecore Commerceデプロイメントからエクスポートする追加のカタログごとに、この手順を繰り返します。
手記エクスポート操作中に情報を収集するようにロギングを設定した場合は、ロギングレベルを元の値に戻します (たとえば、"Information"から"Warning"に戻します)。
注意すべてのカタログのエクスポートが完了したら (エクスポートする関連するインベントリ データがない場合)、IISマネージャーとweb.configファイルで以前に変更 した設定を元の値に戻す必要があります。
それ以外の場合は、インベントリ データのエクスポートに進みます。
BashスクリプトでcURLを使用したカタログ データのエクスポートの例
BashスクリプトでcURLを使用したカタログ データのエクスポートの例
次の例は、Postmanツールを使用してHTTP要求を送信する代わりに、BashスクリプトでcURLコマンドを使用してカタログ・データ・セットをエクスポートする方法を示しています。
スクリプトを実行する前に、次のことを行う必要があります。
-
値 <YOUR HOSTNAME> を、デプロイメントでAuthoringサービスを実行しているCommerce Engineインスタンスの名前で更新します (デフォルト値はlocalhost:5000です)。
-
Authorization要求ヘッダーの値 <YOUR TOKEN> を有効なトークン値で更新します。
-
Environmentヘッダーキーを、エクスポートする必要があるカタログデータを含むCommerce環境の名前で更新します。デフォルトでは、スクリプトはHabitatAuthoring 環境を指定します。
-
ファイルのアクセス許可を設定するには、chmod +x <your_base_script>.sh.
-
スクリプトを変更して、マシン名とデプロイ環境に固有のその他の情報を指定します。
Commerceインベントリ セットのエクスポート
Commerceインベントリ セットのエクスポート
カタログをエクスポートした後、エクスポートするインベントリーデータがない場合は、関連するインベントリーセットをエクスポートできます。
この手順では、Sitecore Commerce Engine SDKで提供されているPostmanサンプル を使用します。
この例では、Postmanを使用してインベントリのエクスポートAPIリクエストを実行する代わりに、BashスクリプトでcURLコマンドを使用する方法を示します。
インベントリ セット データをエクスポートするには:
-
Sitecore Identityトークンの有効期限が切れている場合は、別のGetTokenリクエストを実行して新しいトークンを取得します。
-
Collectionsウィンドウで、InventoryAPISamplesコレクションを展開します。
-
Inventory - APIフォルダーを開き、Export Inventory Sets要求を選択します。
-
Environmentフィールドで、エクスポートするデータを含む環境 (HabitatAuthoring 環境など) を指定します。
-
Headersタブで、デプロイに必要な次のキー値を指定します。
ヘッダーキー
価値
ShopName
{{ShopName}}
ShopperId
{{ShopperId}}
Language
{{Language}}
Currency
{{Currency}}
Environment
{{Environment}}
GeoLocation
{{ジオロケーション}}
CustomerId
{{CustomerId}}
Authorization
{{SitecoreIdToken}}
-
インベントリセットのエクスポートを開始するには、Sendをクリックします。
-
Sitecore Commerceデプロイメントにエクスポートする追加の商品在庫セットごとに、この手順を繰り返します。
注意すべてのカタログのエクスポートが完了したら、IISマネージャーとweb.configファイルで 以前に変更した設定を元の値に戻す必要があります。
手記エクスポート操作中に情報を収集するようにロギングを設定した場合は、ロギングレベルを元の値に戻します (たとえば、"Information"から"Warning"に戻します)。
BashスクリプトでcURLを使用したインベントリ データのエクスポートの例
BashスクリプトでcURLを使用したインベントリ データのエクスポートの例
次に、Postmanツールを使用してHTTPリクエストを送信する代わりに、BashスクリプトでcURLコマンドを使用してインベントリセットをエクスポートする方法の例を示します。
スクリプトを実行する前に、次のことを行う必要があります。
-
値 <YOUR HOSTNAME> を、デプロイメントでAuthoringサービスを実行しているCommerce Engineインスタンスの名前で更新します (デフォルト値はlocalhost:5000です)。
-
Authorization要求ヘッダーの値 <YOUR TOKEN> を有効なトークン値で更新します。
-
Environmentヘッダー キーを、エクスポートする必要があるデータを含むCommerce環境の名前で更新します。デフォルトでは、スクリプトはHabitatAuthoring 環境を指定します。
-
ファイルのアクセス許可を設定するには、コマンドchmod +x <your_base_script>.sh.
-
スクリプトを変更して、マシン名と環境、またはデプロイに固有のその他の情報を指定します。
生成されたデータ構造
カタログまたはインベントリーデータをエクスポートすると、特定の形式のデータを含むZIPファイルが生成されます。システムは、データをシステムにインポートし直すときに、これと同じデータ構造を想定しています。
ZIPファイルには、エクスポートされたCommerceエンティティを定義する多数のJSONファイルが含まれており、JSONオブジェクトとして表されます。各ファイル名はエンティティタイプを識別します。たとえば、Category.1.jsonという名前のファイルには、カテゴリエンティティのリストの最初のページがJSONシリアル化された形式で含まれています。
カタログのエクスポート機能は、完全なカタログ データのエクスポートのみをサポートします。カタログ・データは、後でシステムにインポートできる.zip・ファイルにエクスポートされます。ファイル内のすべてのアイテムが並行してインポートされるため、パフォーマンスを向上させるために、各ファイルでバッチ処理されるCommerceエンティティの数が少なくなります。
ZIPファイルには、ルートレベルのJSONファイル内のエンティティ間の関係を定義する一連のJSONファイルを含むRelationshipsフォルダーも含まれています。ファイル名はリレーションシップ タイプとソース エンティティを示し、ファイル自体にはJSONオブジェクトの一覧が含まれています。各JSONオブジェクトは、ソース エンティティ、ターゲット エンティティ、およびそれらの間のリレーションシップの種類を定義します。
たとえば、CatalogToCategory.Habitat_Master.1.jsonという名前のファイルには、Habitat_Masterカタログとカタログ内のカテゴリとの関係に関する情報が含まれています。