1. 行政

ウォークスルー

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

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

このトピックでは、Sitecore XC環境からカタログおよび在庫データをエクスポートする方法を説明します。

Sitecore XCは、Commerce環境からカタログデータや在庫セットをエクスポートするためのアプリケーションプログラミングインターフェース(API)を提供します。例えば、開発環境からCommerceカタログをエクスポートし、テスト環境やステージング環境など別の環境にインポート できます。

エクスポートされたデータのデータ構造の詳細については、「 生成されたデータ構造 」セクションを参照してください。

カタログおよび在庫データのエクスポート:

インターネット情報サービス(IIS)関連設定の変更

カタログデータのエクスポートを始める前に、インターネット情報サービス(IIS)の設定(IISマネージャーおよびweb.configファイル)を変更し、データエクスポート中のタイムアウトのリスクを減らす必要があります。これは非常に大規模なカタログデータセットをエクスポートする際に重要です。

web.configファイルのIIS設定および関連設定を変更するには:

  1. インターネット情報サービス(IIS)マネージャーを起動し、ナビゲーションツリーで **「アプリケーションプール」**をクリックします。

  2. アプリケーションプールのページで、該当するアプリケーションプールの名前(例:CommerceAuthoring_Sc)をクリックしてください。

  3. アクションペインの**「アプリケーションプール編集**」セクションで「詳細設定」をクリックし、詳細設定ダイアログボックスで以下のパラメータ値を0(ゼロ)に設定します。

    セクション

    パラメータ

    価値

    CPU

    リミット間隔(分)

    0

    プロセスモデル

    アイドルタイムアウト(分)

    0

    リサイクル

    規則時間間隔(分)

    0

  4. OKをクリックします。

  5. カタログデータをエクスポートするサービスのweb.configファイル(例:C:\inetpub\wwwroot\CommerceAuthoring_Sc\web.config)を開き、以下の設定サンプルで太字で表示された設定を変更してください。

    !注以下の例のようにIISの設定を変更する前に、カタログエクスポート終了後に元の値を把握しておくと、元の値を把握してください。

                                                                           

    !注オプションとして、カタログエクスポートプロセス中に情報収集のためのログを有効にすることもできます。これを行うには、カタログデータをエクスポートするサービスのconfig.jsonファイル(例:C:\inetpub\wwwroot\CommerceAuthoring_Sc\wwwroot\config.json)を開き、ログレベルの値を"Information"に設定してください。

    "Serilog": {"Using": "Serilog.Sinks.Literate","Serilog.Sinks.File","Serilog.Sinks.ApplicationInsights","MinimumLevel": {"Default": "Information", "Override": {"Microsoft": "Information","System": "Information"}},

  6. インターネット情報サービスをリセットしろ。

SQLのタイムアウト設定を変更する

SQLのタイムアウト設定を変更して、SQLデータベースへの接続が開いたままにし、長いプロセスが完了しないようにしましょう。

SQLのタイムアウト設定を変更するには:

  1. カタログデータをインポートするために使用するオーサリングサービスのインスタンスで、Plugin.SQL.PolicySet-1.0.0.jsonファイルを開きます(例: C:\inetpub\wwwroot\CommerceAuthoring_Sc\wwwroot\data\Environments\Plugin.SQL.PolicySet-1.0.0.json

  2. "ConnectTimeout"とプロパティの値を"CommandTimeout" "0"に設定します。

    !注現在の不動産価値を記録し、カタログのインポートを終えた後に元の価値に戻すようにしましょう。

Bootstrapコマースエンジン

Commerce Engineの設定を変更した後、Commerce Engineをブートストラップしてください

Commerceカタログデータセットのエクスポート

この例は、Sitecore Commerce Engine SDKに付属しているPostmanサンプルに基づいています。

以下の手順は、Postmanアプリケーションのインストールと設定、Sitecore Commerce Engine SDKからのサンプルコレクションを取り込み、環境を設定し、Commerce Engine APIにアクセスするためのベアラートークンを取得したことを前提としています。

!注エクスポートカタログAPIリクエストを実行するためにPostmanを使う代わりに、このはBashスクリプトでcURLコマンドの使い方を示しています。

Postmanを使ってCommerce XCカタログデータセットをエクスポートするには:

  1. PostmanコレクションのペインでCatalogAPISamplesコレクションを展開します。

  2. カタログ - APIフォルダを開き、Export Catalogsリクエスト({{ServiceHost}}/{{ShopsApi}}/ExportCatalogs())を選択してください。

  3. Environmentフィールドで、エクスポートするカタログデータを含むCommerce環境を指定します。例えば、HabitatAuthoring環境です。

  4. ヘッダータブでは、展開に必要な以下のキー値を指定します:

    ヘッダーキー

    価値

    ShopName

    {{ShopName}}

    ShopperId

    {{ShopperId}}

    Language

    {{Language}}

    Currency

    {{Currency}}

    Environment

    {{Environment}}

    GeoLocation

    {{GeoLocation}}

    CustomerId

    {{CustomerId}}

    Authorization

    {{SitecoreIdToken}}

  5. ボディタブで、特定の要件に応じてエクスポート設定を変更してください。以下はデフォルトの設定です:

    { "fileName":"ExportCatalogs.zip", "mode":"full", "maximumItemsPerFile":"200", "excludeInventory"

    }

    excludeInventoryパラメータがtrueに設定されている場合、ExportCatalog通話には在庫情報が含まれません。

  6. カタログエクスポート操作を開始するには、Sendをクリックしてください。

  7. この手順は、Sitecore Commerceのデプロイメントからエクスポートしたい追加のカタログごとに繰り返します。

    !注エクスポート操作中に情報を収集するログリングを設定している場合は、ログレベルを元の値に戻してください(例えば、"Information"から"Warning"まで)。

    注意

    すべてのカタログをエクスポートし終えた後(関連するインベントリデータがエクスポートできない場合)、以前変更した設定をIIS Managerとweb.configファイルで 元の数値に戻す必要があります。

    それ以外は、在庫データのエクスポートを進めてください。

BashスクリプトでcURLを使ったカタログデータのエクスポート例

以下の例は、Postmanツールを使ってHTTPリクエストを送信する代わりに、BashスクリプトのcURLコマンドを使ってカタログデータセットをエクスポートする方法を示しています。

!注脚本を実行する前に、以下を務めなければなりません:

  • の値を、デプロイメントでAuthoringサービスを実行しているCommerce Engineインスタンスの名前で更新してください(デフォルト値はlocalhost

    )。

  • Authorizationリクエストヘッダーの値を有効なトークン値で更新します。

  • エクスポートに必要なカタログデータを含むCommerce環境名でEnvironmentヘッダーキーを更新してください。デフォルトではスクリプトはHabitatAuthoring環境を指定します。

  • ファイル権限を設定するにはchmod +x <your_base_script>.shを実行します。

  • スクリプトを修正して、マシン名やデプロイ環境に特有の情報を指定してください。

#!/bin/bash

Git Bash:

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

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

$ chmod +x WebRequest_ExportCatalogs.sh

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

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

$ ./WebRequest_ExportCatalogs.sh

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

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

curl --request POST \   --url 'https:///api/ExportCatalogs%28%29' \   --output ExportCatalogs.zip \   --insecure \   --header 'Authorization: Bearer ' \ --header 'cache-control: no-cache' \ --header 'Content-Type: application/json' \ --header 'Currency: USD' \ --header 'CustomerId: CustomerId' \ --header 'Environment: HabitatAuthoring' \ --header 'GeoLocation: IpAddress=1.0.0.0' \ --header 'Language: en-US' \ --header 'ShopName: CommerceEngineDefaultStorefront' \ --header 'ShopperId: ShopperId' \ --data '{ "fileName":"ExportCatalogs.zip", "mode":"full", "maximumItemsPerFile":"200" }'

商業在庫セットをエクスポートする

カタログをエクスポートした後、エクスポートする在庫データがなければ関連する在庫セットをエクスポートできます。

この手順は、Sitecore Commerce Engine SDKに提供されているPostmanサンプル を使用します。

!注エクスポートインベントリAPIリクエストを実行する際にPostmanを使う代わりに、このはBashスクリプトでcURLコマンドを使う方法を示しています。

在庫セットデータをエクスポートするには:

  1. Sitecore Identityトークンが期限切れの場合は、新しいトークンを取得するために別のGetTokenリクエストを実行してください。

  2. コレクションのパネルでInventoryAPISamplesコレクションを展開します。

  3. インベントリ - APIフォルダを開き、Export Inventory Setsリクエストを選択します。

  4. Environmentフィールドで、エクスポートしたいデータを含む環境(例えばHabitatAuthoring環境)を指定します。

  5. ヘッダータブで、展開に必要な以下のキー値を入力してください:

    ヘッダーキー

    価値

    ShopName

    {{ShopName}}

    ShopperId

    {{ShopperId}}

    Language

    {{Language}}

    Currency

    {{Currency}}

    Environment

    {{Environment}}

    GeoLocation

    {{GeoLocation}}

    CustomerId

    {{CustomerId}}

    Authorization

    {{SitecoreIdToken}}

  6. 在庫セットのエクスポートを開始するには、「 Send」をクリックしてください。

  7. この手順は、Sitecore Commerce展開にエクスポートしたい追加の製品在庫セットごとに繰り返します。

    注意

    すべてのカタログのエクスポートが終わったら、以前IISマネージャーとweb.configファイル で変更した設定を元の値に戻す必要があります。

    !注エクスポート操作中に情報を収集するログリングを設定している場合は、ログレベルを元の値に戻してください(例えば、"Information"から"Warning"まで)。

BashスクリプトでcURLを使ったインベントリデータエクスポートの例

以下は、Postmanツールを使ってHTTPリクエストを送信する代わりに、BashスクリプトのcURLコマンドを使って在庫セットをエクスポートする方法の例を示しています。

!注脚本を実行する前に、以下を務めなければなりません:

  • の値を、デプロイメントでAuthoringサービスを実行しているCommerce Engineインスタンスの名前で更新してください(デフォルト値はlocalhost

    )。

  • Authorizationリクエストヘッダーの値を有効なトークン値で更新します。

  • エクスポートするデータを含むCommerce環境名でEnvironmentヘッダーキーを更新してください。デフォルトではスクリプトはHabitatAuthoring環境を指定します。

  • ファイル権限はコマンドchmod +x <your_base_script>.shを実行することで設定します。

  • スクリプトを修正して、マシン名や環境、またはデプロイに特有の情報を指定してください。

#!/bin/bash

Git Bash:

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

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

$ chmod +x WebRequest_ExportInventorySets.sh

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

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

$ ./WebRequest_ExportInventorySets.sh

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

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

curl --request PUT \ curl --request POST \   --url 'https:///api/ExportCatalogs%28%29' \   --output ExportCatalogs.zip \   --insecure \   --header 'Authorization: Bearer ' \ --header 'cache-control: no-cache' \ --header 'Content-Type: application/json' \ --header 'Currency: USD' \ --header 'CustomerId: CustomerId' \ --header 'Environment: HabitatAuthoring' \ --header 'GeoLocation: IpAddress=1.0.0.0' \ --header 'Language: en-US' \ --header 'ShopName: CommerceEngineDefaultStorefront' \ --header 'ShopperId: ShopperId' \ --data '{ "fileName":"ExportInventorySets.zip", "mode":"full", "maximumItemsPerFile":"200" }'

生成されたデータ構造

カタログや在庫データをエクスポートすると、操作は特定の形式のデータを含むZIPファイルを生成します。システムはデータをインポートする際に同じデータ構造を期待します。

ZIPファイルには、エクスポートされたCommerceエンティティを定義する複数のJSONファイルが含まれており、JSONオブジェクトとして表現されます。各ファイル名はエンティティタイプを識別します。例えば、Category.1.jsonというファイルはカテゴリエンティティのリストの最初のページをJSONシリアル化形式で含んでいます。

!注カタログエクスポート機能は完全なカタログデータのエクスポートのみをサポートします。カタログデータは後でシステムにインポートできる.zipファイルにエクスポートされます。ファイル内のすべてのアイテムが並行でインポートされるため、パフォーマンス向上のために各ファイルでコマース関連エンティティの数が少なくまとめられます。

ZIPファイルには、ルートレベルのJSONファイル内のエンティティ間の関係を定義するJSONファイルのセットを含むRelationshipsフォルダも含まれています。ファイル名は関係タイプとソースエンティティを示し、ファイル自体にはJSONオブジェクトのリストが含まれています。各JSONオブジェクトは、ソースエンティティ、ターゲットエンティティ、そしてそれらの間の関係の種類を定義します。

例えば、CatalogToCategory.Habitat_Master.1.jsonというファイルには、Habitat_Masterカタログとカタログ内のカテゴリとの関係に関する情報が含まれています。

{ $type : Sitecore.Commerce.Plugin.Catalog.RelationshipArgument, Sitecore.Commerce.Plugin.Catalog "SourceName": "Entity-Catalog-Habitat_Master", "TargetName": "Entity-Category-Habitat_Master-Assortments", "RelationshipType": "CatalogToCategory" }, { $type : Sitecore.Commerce.Plugin.Catalog.RelationshipArgument, Sitecore.Commerce.Plugin.Catalog "SourceName": "Entity-Catalog-Habitat_Master", "TargetName": "Entity-Category-Habitat_Master-Departments", "RelationshipType": "CatalogToCategory" }, { $type : Sitecore.Commerce.Plugin.Catalog.RelationshipArgument, Sitecore.Commerce.Plugin.Catalog "SourceName": "Entity-Catalog-Habitat_Master", "TargetName": "Entity-Category-Habitat_Master-FeaturedProducts", "RelationshipType": "CatalogToCategory" }

この記事を改善するための提案がある場合は、 お知らせください!