データのインポートとエクスポートについて
学習の目的
この単元を完了すると、次のことができるようになります。
- スキーマファイルのインポート/エクスポートが重要な理由を 2 つ挙げる。
- 通常インポートされる 2 種類のデータを挙げる。
- インポート/エクスポートの 2 つのモードについて説明する。
- エクスポートプロセスについて説明する。
- デルタフィードが重要な理由を説明する。
はじめに
ほとんどのマーチャントには、記録システムであるバックエンドシステムがあります。Salesforce B2C Commerce アプリケーション環境は、ストアフロントに対応するよう設計された独自のデータベースとサーバーを備えています。B2C Commerce のインポート/エクスポート機能はこの両者をつなぐ架け橋です。
記録システムから B2C Commerce へ、そして B2C Commerce の取得から記録システムへと行き来するデータの流れを考えてみてください。SKU 番号、商品説明、サイズ、画像、価格、動画といった商品情報は、記録システムで開発されてから、B2C Commerce にインポートされます。買い物客が注文を作成すると、外部システムにエクスポートされて処理されます。クーポンコードは B2C Commerce にインポートできますが、クーポンを使用するという買い物客の行為によってデータが作成されエクスポートされます。
インポートでは、外部ファイルからのデータを使用して B2C Commerce データベースに入力します。エクスポートでは、B2C Commerce データベースからデータを抽出し、外部システムへのフィードとして使用可能な XML ファイルを作成できます。フィードとは、特定のインポートあるいはエクスポートプロセスです。
データは本番からエクスポートされます。
以下は、ストアフロントデータのインポート/エクスポートプロセスではありません。
-
データのレプリケーションは、コードとデータをあるインスタンスから別のインスタンスにコピーすることです。データのレプリケーションについては次の単元で説明します。
- Business Manager のカタログフィード機能は、サードパーティ (Certona など) のファイルを処理します。
-
サイトのインポート/エクスポートは、サイト固有の設定などの情報をあるインスタンスから別のインスタンスに移動することです。
スキーマ
スキーマファイルは、B2C Commerce のインポートやエクスポートで生成される可能性のあるファイル構造を指定します。B2C Commerce では、これらのスキーマによって形式設定された XML インポートファイルのみを受け入れます。スキーマは必須のデータ属性も文書化します。インポートされるデータはスキーマと一致している必要があり、一致していなければインポートされません。
B2C Commerce は XML 形式でエクスポートしますが、クーポンコードは例外で CSV 形式にエクスポートされます。.csv ファイルは、サードパーティのプログラムを使用して必須の XML 形式に処理することをお勧めします。処理に大量のメモリが割り当てられている純正の .NET または Java プラットフォームを使用してファイルを変換するほうがはるかに高速で効率的です。
ところで、スキーマファイルにはどのようなものがあるのでしょうか? 実際のところ、たくさんあります。ここでいくつかの例を示します。
- sort.xsd
- coupon.xsd
- couponredemption.xsd
- order.xsd
- Promotion.xsd
モード
インポートモードを指定して、B2C Commerce がインポートフィード内のデータをどのように解釈するかを定義します。このモードは、フィード内のすべてのオブジェクトと、スキーマによって定義されたすべてのインポートファイルに適用されます。
以下はインポートモードです。
モード |
説明 |
---|---|
マージ |
オブジェクトが存在しない場合に作成され、そのオブジェクトで更新が実行されます。 |
更新 |
既存のオブジェクトが変更される。オブジェクトが存在しなくても作成されません。
|
置換 |
フィードに提供されたデータを使用してオブジェクトが再作成されます。オブジェクトは必ずしも存在する必要はありません。既存の属性がフィードに提供されていない場合は、インポート時に削除されます。 置換モードは、削除してからマージするのと同じことです。 |
削除 |
オブジェクトがデータベースから削除される。フィードに提供する必要があるのはオブジェクト ID のみです。オブジェクトの他の属性は無視されます。 |
インポートでオブジェクトを削除するときは注意が必要です。削除モードでは、フィードにあるオブジェクトが削除されます。同様に、置換モードでは、フィードにあるオブジェクトが削除された後、再び作成されます。1 つのオブジェクトのみを変更するために置換インポートを実行した場合、オブジェクトセット全体が削除されます。
スキーマの中には、インポート要素レベルで属性モードをサポートするものがあります。この場合にサポートされる唯一のモードは削除で、特定の要素でプロセスのインポートモードを上書きできます。この操作は、1 回のインポートプロセスでオブジェクトを作成、更新、削除し、情報を変更する場合に役立ちます。
本番フィード
本番フィードには、以前のフィードからの変更のみを含めることをお勧めします。これをデルタフィードといいます。デルタフィードのほうがアーカイブの量が少なく、インポートが迅速で、トラブルシューティングが簡単です。ただし、スキーマの中には、グローバルインポートモードを上書きし、常に置換モードを使用する要素のあるものがあります。これらの要素は、各インポートにオブジェクトのフルセットを含める必要があるため、デルタフィードに含めることができません。
list-type (リストタイプ) 要素
XML ファイルの list-type (リストタイプ) 要素の標準動作は、インポートモードに関係なく、リスト全体を置換することです。インポートファイルにリスト要素が含まれていない場合は、次のようになります。
- マージモードでは、リストがそのままになります。
- 置換モードでは、リストが削除されます。
インポート/エクスポートプロセス
以下は、典型的なインポートプロセスです。
- WebDAV、SFTP、HTTPS のいずれかを使用して、XML ファイルをバックエンドシステムから B2C Commerce のインスタンスに転送します。
- ステージングまたは本番インスタンスの場合は、ファイル転送用にセキュアな接続を設定します。Sandbox では必要ありません。
- Business Manager を使用して XML ファイルをインスタンスにインポートするか、カスタムコントローラーを作成します。B2C Commerce には、大量のデータセットを処理でき、迅速で信頼性が高く、システムリソースを効率的に使用できるインポートパイプレットがあり、ほとんどの標準インポートに対応します。ビジネスオブジェクトを B2C Commerce に読み込む必要がある場合は、B2C Commerce のスクリプトやパイプレットを含むカスタムロジックを使用するのではなく、インポートパイプレットを使用することをお勧めします。
以下は、典型的なエクスポートプロセスです。
- スキーマを使用して、データベースオブジェクトを XML ファイルにエクスポートします。この処理は、Business Manager を使って手動で行うか、カスタムコントローラーを作成します。大半のエクスポートには B2C Commerce のエクスポートパイプレットを使用できます。場合によっては、Business Manager よりもオブジェクトを使用したほうが細かく処理できることがあります。データのエクスポートを自動化するコントローラーを作成する必要があります。
- ファイルをインスタンスからマーチャントのバックエンドシステムに転送します。
- データ転送に関する PCI-DSS (セキュリティ) 要件またはバックエンドシステムの要件を満たす必要がある場合は、セキュアな接続を設定します。
インスタンス別の詳細
インスタンスタイプによって B2C Commerce のインポート/エクスポートの使用法が異なります。ここでは、インスタンスタイプごとに説明していきます。
Sandbox
サイトを開発するときに、各デベロッパーが個別の Sandbox を使用します。追加の Sandbox のテンプレートとなる初期 Sandbox を作成しておけば、サイトの構成が 1 回で済みます。
最初に、データファイルをローカルマシンからインスタンスに転送します。次に、Business Manager を使用して、データをインスタンスのデータベースにインポートします。初期 Sandbox に開発チームに必要な設定とデータがある場合は、[Site Export (サイトのエクスポート)] を使用して、サイトのコンテンツや設定をエクスポートしてからデベロッパーマシンにダウンロードします。
開発中に、新しい商品や価格のフィードを各 Sandbox に直接インポートできます。どの Sandbox にも同じインポートファイルを使用しますが、個別にインポートする必要があります。また、カスタムコントローラーを作成して、データのインポートを自動化することもできます。これは通常、ステージングや本番システムの自動データインポートをサポートするために行うステップです。次に、別の Sandbox で [Site Import (サイトのインポート)] を使用して設定やコンテンツを取得できます。
ステージングと本番
プライマリインスタンスグループ (PIG) には、開発、ステージング、本番のインスタンスがあります。カスタムコントローラーを使用して、バックエンドシステムからセキュアな接続経由でデータを上記のいずれかのインスタンスタイプに移動します。フィードが頻繁に使用されない場合は、データをステージングのみにインポートしたうえで、本番にレプリケートします。この方法では本番インスタンスが保護され、インポートされたデータの問題が潜入することがありません。
フィードによっては、Business Manager でさらなる機能強化が必要になることがあります。たとえば、Web 限定の説明やその他の情報を手動で追加したい場合などです。ステージングで機能強化を要するフィードが更新され、その後データが本番にレプリケートされます。
頻繁な変更を要するデータをステージングしてレプリケートすることは現実的でないため、頻繁なフィードは直接本番にインポートされます。頻繁なフィードはステージングと本番に同時にインポートされるため、インスタンス間で常に同期した状態になります。ステージングインスタンスには常に本番が反映されるようにします。
コントローラーを使用するとインポート/エクスポートの柔軟性が向上します。コントローラーにビジネスロジックを追加すれば、インポートファイルに値を追加したり、検索インデックスを自動的に更新したり、インポートファイルをアーカイブしたりすることができます。本番からデータをエクスポートする場合も、ビジネスロジックをコントロールに追加すれば、エクスポートファイルの形式の変更や値の追加をはじめとする処理を実行できます。
開発
開発インスタンスは、本番インスタンスのテスト環境です。開発インスタンスを設定する場合は、ステージングから開発インスタンスへの初期サイトのインポート/エクスポートを行います。その後、データのレプリケーションを使用して、そのインスタンス上でデータとコードを更新します。
次のステップ
スキーマ、モード、B2C Commerce のインポート/エクスポートプロセスの詳細について説明しました。次は、コードとデータをあるインスタンスから別のインスタンスに移動する、レプリケーションについて学習します。
リソース
Help: Import and Export (インポートとエクスポート)