Skip to content
Last updated

Salesforce Commerce Cloud インポート連携

Commerce Cloudは、あらゆる業界に対応した顧客中心のコマースにより、どこからでもカスタマージャーニーを繋ぎ、成功を促進します。

  • デジタルカスタマージャーニーを完全に接続

    • 顧客中心のコマースでエンゲージメントをパーソナライズ
    • データを統合し、すべてのインタラクションをパーソナライズし、自動化、AI、単一の信頼できる情報源により、チャネル全体で収益を拡大
  • カスタマージャーニーにコマースを接続

    • マーケティングから販売、コマース、フルフィルメント、サービス、そしてそれ以降まで、シームレスなカスタマージャーニーで、より多くの顧客を獲得し、ロイヤルティを促進します。クリックベースまたはコードベースのツールを選択して構築できます。
  • アジャイルでスケーラブル、かつ安全なプラットフォームで迅速に適応

    • 顧客のスピードでイノベーションを起こし、グローバルに簡単にスケールし、あらゆるレベルの需要に対応します。拡張現実、マーケットプレイスなどの体験を提供するアプリのパートナーエコシステムでコマースを拡張できます。

この連携でできること

  • Salesforce Commerce Cloud インポート連携は、以下の機能を提供します:
    • OAuthによるAPI Clientを使用した認証
    • 特定のリストの顧客情報の取り込み
    • 顧客リソースの取り込み、例えば:
      • 顧客情報
      • 名前、性別、メールアドレス
    • 商品リソースの取り込み、例えば:
      • 商品のリスト
      • 商品情報
    • 在庫および商品在庫リソースの取り込み、例えば:
      • 在庫のリスト
      • 商品在庫の割り当て
      • 商品在庫の在庫レベル
      • 商品在庫ID
    • カテゴリおよび商品割り当てリソースの取り込み、例えば:
      • カテゴリ情報
      • 各カテゴリに属する商品
    • ストアリソースの取り込み、例えば:
      • すべてのストア
      • ID、住所、郵便番号、国、在庫IDを含むストア情報
    • カタログリソースの取り込み、例えば:
      • カタログ情報
      • 割り当てられた商品数

前提条件

  • Treasure Dataの基本知識
  • Treasure Data CLIの基本知識
  • Salesforce Commerce Cloudの基本知識
  • Open Commerce Cloud APIの基本知識
  • Commerce Cloud Account Manager Systemへのアクセス

制限事項

  • アプリケーションシークレットには % 文字を含めることはできません。SFCCの認証サーバーの内部的な問題により、% 文字を含むシークレットは認証できません。
  • 増分読み込みは作成日のみサポートされ、変更日はサポートされていません
  • 大量のデータは低パフォーマンスを引き起こす可能性があります
  • プレビューモードでは、データプレビューの取得に時間制限があるため、コネクタは詳細なデータプレビューの生成をサポートしていません
  • 商品がない在庫リストでも1レコードとして挿入され、商品在庫リストに属するプロパティはnullになります

増分読み込みについて

増分読み込みとは、ソースからTreasure Dataに新規または更新されたレコードのみを読み込むことです。特に大規模なデータセットにおいて、フルロードと比較して効率的に実行されるため便利です。

増分読み込みは、多くのTreasure Data連携で利用可能です。単純なチェックボックスの選択で済む場合もあれば、増分読み込みを選択した後に、指定する必要のある他のフィールドが提供される場合もあります。

連携における増分読み込みについて

Treasure Dataの増分読み込みには4つのパターン(3種類のデータコネクタ + 1つのワークフローtd_loadオペレータ)があり、3つのデータコネクタの読み込み例は以下の通りです:

  • クラウドストレージサービス(例: AWS S3、GCSなど)

    • ファイル名の辞書順
  • クエリ(例: MySQL、BigQueryなど)

    • 日時
  • 可変期間(Google Analyticsなど)

    • 読み込みにstart_dateを使用

コネクタの増分読み込み

増分読み込みが選択されている場合、コネクタのデータは増分的に読み込まれます。

このモードは、前回のスケジュール実行以降に変更されたオブジェクトターゲットのみを取得する場合に便利です。

例えば、UIでは:

MySQL、BigQuery、SQL Serverなどのデータベース連携では、増分データを読み込むためにカラムまたはフィールド名が必要です。

データベースベースの連携について詳しく学ぶ。

制限事項、サポート、提案

  • 一部の連携では、増分読み込みを選択する場合、フルテーブルスキャンを回避するために、カラムにインデックスがあることを確認する必要がある場合があります。
  • Timestamp、Datetime、および数値カラムのみがincremental_columnsとしてサポートされています。
  • 複雑なクエリのプライマリキーを検出できないため、生のクエリにはincremental_columnsが必要です。

Commerce Cloud Account Manager SystemでAPI Clientを作成

これらの手順は、連携の認証を定義するために必要な認証情報を作成するために必要です。

  1. Salesforce Cloud Commerce UIにアクセスしてログインします。例えば、Account Manager UI

  1. API Clientを選択します。

  1. Add API Clientを選択します。

  1. 以下の値を入力します:
  • Display Name
  • Password
  • Confirm Password
  1. Access Controlを選択して有効にします。

  2. Organizationsエリアで、組織を選択します。

  3. Rolesエリアで、Addを選択します。

  4. 適切なロールを選択します。例えば、Sandbox API User

  5. Addを選択します。

  6. ロールが追加されたら、それに関連付けられたすべてのサンドボックスを選択します。

  1. Addを選択します。

  2. Open ID Connectまでスクロールダウンします。

  3. Default Scopesを追加します:

  • mail
  • roles
  • tenantFilter
  • profile
  1. Redirect URIを追加します。例えば:

https://admin.us01.dx.commercecloud.salesforce.com/oauth2-redirect.html

  1. Token Endpoint Auth Methodセクションまでスクロールします。

  2. client_secret_basicを選択します。

  3. Access Token FormatにはJWTを選択します。

  1. Saveを選択します。

  2. API Client画面に戻ります。

  1. API Client IDPasswordを書き留めるか、安全な場所に保存します。

これらは、SFCCインスタンスと連携するための認証資格情報として使用されます。

Data APIへのアクセスをAPI Clientに許可

これらの手順により、API ClientをData APIおよびSalesforce B2C Commerce Cloudコネクタで使用できるようになります。

  1. Business Managerを開きます。例えば:

https://{YOUR_INSTANCE_URL}.commercecloud.salesforce.com/on/demandware.store/Sites-Site/default/ViewApplication-DisplayWelcomePage

  1. Administrationを選択します。

  2. Open Commerce API Settingsを選択します。

TypeとしてDataを選択します。

Data APIの設定が表示されます。

  1. テキストフィールドに以下を入力またはコピーします:
{
  "_v": "21.6",
  "clients": [
    {
      "client_id": "your_api_client_id",
      "resources": [
        {
          "methods": [
            "get",
            "post",
            "put",
            "patch",
            "delete"
          ],
          "read_attributes": "(**)",
          "write_attributes": "(**)",
          "resource_id": "/**"
        }
      ]
    }
  ]
}
  1. Select Contextで**Global (organization-wide)**を選択します。

  1. Saveを選択します。

少なくとも3分間待ちます。

これでAPI ClientがData APIおよびSalesforce B2C Commerce Cloudコネクタで使用できる準備が整いました。

TD Consoleを使用して接続を作成

新しい接続を作成

Treasure Dataでは、クエリを実行する前にデータ接続を作成および設定する必要があります。データ接続の一部として、連携にアクセスするための認証を提供します。

TD Consoleを開きます。

Integrations Hub > Catalogに移動します。

Salesforce B2C Commerce Cloudを検索して選択します。

Create Authenticationを選択します。

以下のダイアログが開きます:

必要な情報を入力または選択します:

ParameterDescription
API Client IDCommerce CloudのAccount Manager Applicationでアプリケーションを作成した後に取得したキー。
API Client PasswordCommerce CloudのAccount Manager ApplicationでAPI Clientを作成する際のパスワード。
Base URIBusiness Manager ApplicationにアクセスするためのURL。例: https://xxxx.commercecloud.salesforce.com/
  1. 接続の名前を入力します。

  1. Continueを選択します。

Treasure Dataへのデータ転送

認証された接続を作成すると、自動的にAuthenticationsに移動します。

  1. 作成した接続を検索します。

  1. New Sourceを選択します。

  2. Data TransferフィールドでSourceの名前を入力します。

  1. Nextを選択します。

  2. Source Tableダイアログが開きます。

  3. 以下のパラメータを編集します:

ParametersDescriptionDescription of Data Types
Data TypeTreasure Dataに取り込みたいデータオブジェクト:
Customers From List特定の顧客リストからの顧客情報
ProductsSalesforce Commerce Cloudアカウントの商品情報
Categories and Product Assignments商品カテゴリ情報と各カテゴリに属する商品
Inventory Lists and Product Inventories在庫リストと各在庫リスト内の商品
Storesストア情報、場所、ストアに属する在庫
Catalogs商品カタログ情報と各カタログの商品数
Customer List ID顧客情報をインポートしたい顧客リストID
Incremental loading前回の取り込み以降に新しく作成されたデータのみを取り込む場合に選択します。
Created Fromデータを取り込みたい特定の時刻(YYYYMMDDHH形式)。
  1. Nextを選択します。

  2. Data Settingsページは、必要に応じて変更するか、ページをスキップできます。

オプションで、以下のパラメータを編集します:

  1. Nextを選択します。

Data Preview

インポートを実行する前に、Generate Preview を選択してデータのプレビューを表示できます。Data preview はオプションであり、選択した場合はダイアログの次のページに安全にスキップできます。

  1. Next を選択します。Data Preview ページが開きます。
  2. データをプレビューする場合は、Generate Preview を選択します。
  3. データを確認します。

Data Placement

データの配置について、データを配置したいターゲット database と table を選択し、インポートを実行する頻度を指定します。

  1. Next を選択します。Storage の下で、インポートされたデータを配置する新しい database を作成するか、既存の database を選択し、新しい table を作成するか、既存の table を選択します。

  2. Database を選択 > Select an existing または Create New Database を選択します。

  3. オプションで、database 名を入力します。

  4. Table を選択 > Select an existing または Create New Table を選択します。

  5. オプションで、table 名を入力します。

  6. データをインポートする方法を選択します。

    • Append (デフォルト) - データインポートの結果は table に追加されます。 table が存在しない場合は作成されます。
    • Always Replace - 既存の table の全体の内容をクエリの結果出力で置き換えます。table が存在しない場合は、新しい table が作成されます。
    • Replace on New Data - 新しいデータがある場合のみ、既存の table の全体の内容をクエリの結果出力で置き換えます。
  7. Timestamp-based Partition Key 列を選択します。 デフォルトキーとは異なるパーティションキーシードを設定したい場合は、long または timestamp 列をパーティショニング時刻として指定できます。デフォルトの時刻列として、add_time フィルターで upload_time を使用します。

  8. データストレージの Timezone を選択します。

  9. Schedule の下で、このクエリを実行するタイミングと頻度を選択できます。

一度だけ実行

  1. Off を選択します。
  2. Scheduling Timezone を選択します。
  3. Create & Run Now を選択します。

定期的に繰り返す

  1. On を選択します。
  2. Schedule を選択します。UI では、@hourly@daily@monthly、またはカスタム cron の 4 つのオプションが提供されます。
  3. Delay Transfer を選択して、実行時間の遅延を追加することもできます。
  4. Scheduling Timezone を選択します。
  5. Create & Run Now を選択します。

転送が実行された後、Data Workbench > Databases で転送の結果を確認できます。

利用可能な設定

Configuration nameTypeAvailable whenRequiredSample valueDescription
base_urlSTRINGdefaultyeshttps://xxxx.example.comSFCCインスタンスのベースURL
catalog_idSTRINGtarget = categoriesnotestカタログID
client_idSTRINGdefaultyesabcdefアプリケーションID
client_secretSTRINGdefaultyesabcdefアプリケーションシークレット
customer_list_idSTRINGtarget = customersyes if target = customerstest顧客リストID
incrementalBOOLEANtarget = customers target = products target = catalognotrue増分取り込みを行うかどうか
initial_retry_waitLONGdefaultno1再試行時の最初の待機時間(秒)
inventory_list_idSTRINGtarget = inventory_listsnotest在庫リストID
last_valueSTRINGtarget = customers target = products target = catalogno2021-05-25T02:49:29.000Zデータの取り込みを開始するタイムスタンプ
levelsLONGtarget = categoriesyes if target = categories0target = categoriesの場合に取り込むサブカテゴリのレベル
maximum_retriesLONGdefaultno5最大再試行回数
maximum_retry_waitLONGdefaultno120再試行時の最大待機時間(秒)
site_idSTRINGtarget = products target = storesyes if target = storestestサイトID
targetENUM (customers , stores , categories , products , catalogs , inventory_lists )defaultyescustomers取り込むターゲットデータタイプ
product_inventory_records_countINTEGERtarget = inventory_listsno300商品在庫レコードのサブセットのみを取得する場合のカウント。デフォルト: 200、最小: 25

サンプル設定

Customers

in:
  type: salesforce_commerce_cloud
  client_id: xxx
  client_secret: yyy
  base_url: https://{realm_id}-001.sandbox.us01.dx.commercecloud.salesforce.com/
  target: customers
  customer_list_id: phu_test
  last_value: 2021-05-25T02:49:29.000Z
  incremental: true

Products

in:
  type: salesforce_commerce_cloud
  client_id: xxx
  client_secret: yyy
  base_url: https://{realm_id}-001.sandbox.us01.dx.commercecloud.salesforce.com/
  target: products
  site_id: phu_test
  incremental: true
  last_value: 2021-05-25T02:55:28.000Z

Stores

in:
  type: salesforce_commerce_cloud
  client_id: xxx
  client_secret: yyy
  base_url: https://{realm_id}-001.sandbox.us01.dx.commercecloud.salesforce.com/
  target: stores
  site_id: phu_test2

Inventory Lists and Product Assignments

in:
  type: salesforce_commerce_cloud
  client_id: xxx
  client_secret: yyy
  base_url: https://{realm_id}-001.sandbox.us01.dx.commercecloud.salesforce.com/
  target: INVENTORY_LISTS

Categories

in:
  type: salesforce_commerce_cloud
  client_id: xxx
  client_secret: yyy
  base_url: https://{realm_id}-001.sandbox.us01.dx.commercecloud.salesforce.com/
  target: categories
  catalog_id: phu_cat

Catalogs

in:
  type: salesforce_commerce_cloud
  client_id: xxx
  client_secret: yyy
  base_url: https://{realm_id}-001.sandbox.us01.dx.commercecloud.salesforce.com/
  target: catalogs
  incremental: true
  last_value: 2021-05-26T02:55:28.000Z