Skip to content
Last updated

Salesforce Commerce Cloud エクスポート連携

Salesforce Commerce Cloud(SFCC)は、B2C(企業対消費者)およびB2B(企業間)顧客向けのeコマースソリューションです。このコネクタは以下の機能を提供します。

  • TD Console上の顧客プロファイルをSFCCプラットフォーム上のCustomer Listsに同期する
  • SFCCプラットフォーム上の静的Customer Groupsに顧客を割り当てる、または削除する

前提条件

  • Treasure Dataの基本知識
  • Salesforce Commerce Cloudの基本知識
  • Open Commerce Cloud APIの基本知識
  • Commerce Cloud Account Manager SystemでAPIクライアントが作成されていること。詳細についてはこちらを参照してください

制限事項

  • アプリケーションシークレットには%文字を含めることはできません。SFCC認証サーバーの内部的な問題により、%文字を含むシークレットは認証できません。
  • このコネクタは顧客属性を検証せずにそのまま送信します。データ検証はSFCC側で行われます。
  • 顧客プロファイルをSFCC Customer Listに同期するには、ジョブ実行前にそのリストがSFCC上に存在している必要があります。
  • 大量のデータはパフォーマンスの低下を引き起こす可能性があります。

TD Consoleの使用

新しい接続の作成

クエリを実行する前に、TD Console上でデータ接続を作成し設定する必要があります。データ接続の一部として、以下の手順に従って連携にアクセスするための認証情報を提供します。

  1. TD Consoleを開く
  2. Integrations Hub > Catalogに移動
  3. Salesforce Commerce Cloudを検索して選択
  4. Create Authenticationを選択し、以下で説明する連携の認証情報を入力
  5. Continueを選択し、認証の名前を入力してDoneを選択

認証フィールド

フィールド説明
API Client IDAPIクライアントの作成と設定の手順に従って生成されるAPI Client ID
API Client PasswordAPIクライアントのパスワード
Base URIBusiness ManagerアプリケーションにアクセスするためのURL。例:https://xxxx.commercecloud.salesforce.com/

エクスポート用のクエリ結果の設定

TD Consoleはデータをエクスポートする複数の方法をサポートしています。以下の手順に従ってData Workbenchからデータをエクスポートしてください。

  1. Data Workbench > Queriesに移動
  2. New Queryを選択し、クエリを定義
  3. Export Resultsを選択してデータエクスポートを設定
  4. 既存のSFCC認証を選択するか、上記のセクションに従って新しい認証を作成
  5. 以下で説明するエクスポートパラメータを設定し、Doneを選択
  • 設定パラメータ
フィールド 説明
Data target
  • Customer Listを選択すると、ターゲットプラットフォーム上の顧客プロファイルを操作できます。これには、新しい顧客プロファイルの作成、プロファイルの更新、プロファイルの削除が含まれます。 - Customer Groupを選択すると、特定の静的Customer Groupsに顧客を割り当てる、または削除できます。
Operation modeCustomer Listデータターゲットの場合、以下のサポートされている操作モードのいずれかを選択します:
  • Create:新しい顧客プロファイルを作成します。 - Updatecustomer_noカラムで指定された顧客プロファイル属性を更新します。
  • Upsertcustomer_noカラムで指定された顧客プロファイルを上書きします。存在しない場合は、新しいプロファイルが作成されます。 - Deletecustomer_noカラムで指定された顧客プロファイルを削除します。 Customer Groupデータターゲットの場合、以下のサポートされている操作モードのいずれかを選択します:
  • Addcustomer_noカラムで指定された顧客を特定のCustomer Groupに割り当てます。
  • Removecustomer_noカラムで指定された顧客を特定のCustomer Groupから解除します。 - Replace:指定されたCustomer Groupは削除され、同じIDで新しいものが作成され、顧客プロファイルが追加されます。
Customer list IDCustomer Listデータターゲットの場合に必須です。事前定義されたCustomer ListのIDを指定する必要があります。それ以外の場合、クエリ結果にはcustomer_list_idという名前のカラムが含まれている必要があります。
Skip empty/null fieldsCustomer Listデータターゲットにのみ適用) チェックを外すと、空またはnullの属性(カラム)がSFCCに送信されます。その結果、SFCC上のこれらの属性はクリア(空の値で上書き)されます。デフォルトではチェックされており、空またはnullの属性はSFCCに送信されません。
Site IDCustomer Groupデータターゲットの場合に必須です。ターゲットCustomer Groupが属するサイトのID。
Customer group IDCustomer Groupデータターゲットの場合に必須です。静的Customer GroupのID。存在しない場合は、新しいものが作成されます。
Customer group name(オプション。Customer Groupデータターゲットにのみ適用) 指定されたCustomer Groupが存在しない場合に使用されるグループ名。
Thread count同時アップロードジョブの数。2から40の範囲。

Customer Listデータターゲットの顧客属性の上書き

  • Updateモードを使用して、既存の顧客プロファイルの選択された属性を更新します。Skip empty/null fieldsがチェックされている場合、空またはnullの属性はエクスポートされず、SFCC上の既存の値は変更されません。
  • Upsertモードは、すべての属性を上書きする場合に使用します。これは、既存の顧客プロファイルがクエリ結果に含まれるもので置き換えられ、含まれていない属性は空になることを意味します。存在しないプロファイルは新規作成されます。 |

Customer Listsに顧客プロファイルを同期するクエリの定義

  • クエリには、同期する顧客プロファイルを示すcustomer_noカラムを含める必要があります。
  • 複数のCustomer Listsを更新する場合、ターゲットリストを示すためにcustomer_list_idという名前のカラムを含めることができます。
  • その他の顧客属性については、SFCCのドキュメントを参照してください。すべての属性は検証なしでそのまま送信されます。
カラム説明必須
customer_list_id空白またはnullでない場合、行の顧客属性が更新されるCustomer ListのIDを定義します。それ以外の場合は、設定画面で入力されたCustomer Listが考慮されます。オプション
customer_noSFCCの顧客番号。Createモードでは不要です。必須
CredentialsCreateモードでは認証情報が必要です。詳細についてはこちらを参照してください。オプション
Customer attributesサポートされている属性のリストについてはこちらを参照してください。オプション
Customer addressサポートされている属性のリストについてはこちらを参照してください。オプション

Customer Groupsへの顧客の割り当て/削除のクエリを定義する

顧客をCustomer Groupに割り当てる(またはCustomer Groupから削除する)には、クエリにcustomer_noカラムのみが必要です。

(オプション) Query Export ジョブをスケジュールする

Scheduled Jobs と Result Export を使用して、指定したターゲット宛先に出力結果を定期的に書き込むことができます。

Treasure Data のスケジューラー機能は、高可用性を実現するために定期的なクエリ実行をサポートしています。

2 つの仕様が競合するスケジュール仕様を提供する場合、より頻繁に実行するよう要求する仕様が優先され、もう一方のスケジュール仕様は無視されます。

例えば、cron スケジュールが '0 0 1 * 1' の場合、「月の日」の仕様と「週の曜日」が矛盾します。前者の仕様は毎月 1 日の午前 0 時 (00:00) に実行することを要求し、後者の仕様は毎週月曜日の午前 0 時 (00:00) に実行することを要求するためです。後者の仕様が優先されます。

TD Console を使用してジョブをスケジュールする

  1. Data Workbench > Queries に移動します

  2. 新しいクエリを作成するか、既存のクエリを選択します。

  3. Schedule の横にある None を選択します。

  4. ドロップダウンで、次のスケジュールオプションのいずれかを選択します:

    ドロップダウン値説明
    Custom cron...Custom cron... の詳細を参照してください。
    @daily (midnight)指定されたタイムゾーンで 1 日 1 回午前 0 時 (00:00 am) に実行します。
    @hourly (:00)毎時 00 分に実行します。
    Noneスケジュールなし。

Custom cron... の詳細

Cron 値説明
0 * * * *1 時間に 1 回実行します。
0 0 * * *1 日 1 回午前 0 時に実行します。
0 0 1 * *毎月 1 日の午前 0 時に 1 回実行します。
""スケジュールされた実行時刻のないジョブを作成します。
 *    *    *    *    *
 -    -    -    -    -
 |    |    |    |    |
 |    |    |    |    +----- day of week (0 - 6) (Sunday=0)
 |    |    |    +---------- month (1 - 12)
 |    |    +--------------- day of month (1 - 31)
 |    +-------------------- hour (0 - 23)
 +------------------------- min (0 - 59)

次の名前付きエントリを使用できます:

  • Day of Week: sun, mon, tue, wed, thu, fri, sat.
  • Month: jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec.

各フィールド間には単一のスペースが必要です。各フィールドの値は、次のもので構成できます:

フィールド値 例の説明
各フィールドに対して上記で表示された制限内の単一の値。
フィールドに基づく制限がないことを示すワイルドカード '*''0 0 1 * *'毎月 1 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
範囲 '2-5' フィールドの許可される値の範囲を示します。'0 0 1-10 * *'毎月 1 日から 10 日までの午前 0 時 (00:00) に実行するようにスケジュールを設定します。
カンマ区切りの値のリスト '2,3,4,5' フィールドの許可される値のリストを示します。0 0 1,11,21 * *'毎月 1 日、11 日、21 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
周期性インジケータ '*/5' フィールドの有効な値の範囲に基づいて、 スケジュールが実行を許可される頻度を表現します。'30 */2 1 * *'毎月 1 日、00:30 から 2 時間ごとに実行するようにスケジュールを設定します。 '0 0 */5 * *' は、毎月 5 日から 5 日ごとに午前 0 時 (00:00) に実行するようにスケジュールを設定します。
'*' ワイルドカードを除く上記の いずれかのカンマ区切りリストもサポートされています '2,*/5,8-10''0 0 5,*/10,25 * *'毎月 5 日、10 日、20 日、25 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
  1. (オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。

クエリを実行する

クエリに名前を付けて保存して実行するか、単にクエリを実行します。クエリが正常に完了すると、クエリ結果は指定された宛先に自動的にエクスポートされます。

設定エラーにより継続的に失敗するスケジュールジョブは、複数回通知された後、システム側で無効化される場合があります。

(オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。

Audience Studio で Segment をアクティベートする

Audience Studio で activation を作成することで、segment データをターゲットプラットフォームに送信することもできます。

  1. Audience Studio に移動します。
  2. parent segment を選択します。
  3. ターゲット segment を開き、右クリックして、Create Activation を選択します。
  4. Details パネルで、Activation 名を入力し、前述の Configuration Parameters のセクションに従って activation を設定します。
  5. Output Mapping パネルで activation 出力をカスタマイズします。

  • Attribute Columns
    • Export All Columns を選択すると、変更を加えずにすべての列をエクスポートできます。
    • + Add Columns を選択して、エクスポート用の特定の列を追加します。Output Column Name には、Source 列名と同じ名前があらかじめ入力されます。Output Column Name を更新できます。+ Add Columns を選択し続けて、activation 出力用の新しい列を追加します。
  • String Builder
    • + Add string を選択して、エクスポート用の文字列を作成します。次の値から選択します:
      • String: 任意の値を選択します。テキストを使用してカスタム値を作成します。
      • Timestamp: エクスポートの日時。
      • Segment Id: segment ID 番号。
      • Segment Name: segment 名。
      • Audience Id: parent segment 番号。
  1. Schedule を設定します。

  • スケジュールを定義する値を選択し、オプションでメール通知を含めます。
  1. Create を選択します。

batch journey の activation を作成する必要がある場合は、Creating a Batch Journey Activation を参照してください。

(オプション) CLIを使用したエクスポート連携

TD Toolbeltを使用すると、CLIからクエリ結果のエクスポートをトリガーできます。td queryコマンドの--resultオプションとして、エクスポートジョブのパラメータを指定する必要があります。詳細については、この記事を参照してください。

オプションの形式はJSONで、一般的な構造は以下の通りです。

  • ケース: data_targetがcustomer_listの場合
{"type": "salesforce_commerce_cloud",    "client_id": "client_id",    "client_secret": "client_secret",    "base_url": "https://your link.commercecloud.salesforce.com",    "data_target": "customer_list",    "operation_mode": "create,update,delete,upsert",    "customer_list_id": "customer_list_id",    "skip_empty_fields": true,    "thread_count": 2}Case: data_target is customer_group{    "type": "salesforce_commerce_cloud",    "client_id": "client_id",    "client_secret": "client_secret",    "base_url": "https://your link.commercecloud.salesforce.com",    "data_target": "customer_list",    "customer_group_operation_mode": "add,remove,replace",    "site_id": "your site id",    "customer_group_id": "your customer group id",    "customer_group_name": "your customer group name",    "thread_count": 2}

CLIパラメータ

名前 説明 デフォルト値 必須
data_target設定パラメータセクションのdata_targetを参照オプションのリスト:
  1. customer_list
  2. customer_group
customer_groupYES
td_authentication_idこれはTDコンソール上の既存のSFCC認証のIDです。 注: td_authentication_idを使用する場合、client_idとclient_secretを宣言する必要はありません。TDシステムがtd_authentication_idによってそれらの情報を取得するためですNumbernullNO
client_idSFCCから取得したclient_id。 注: TDシステムは、td_authentication_idがnullの場合、この値を無視します。StringnullYES (td_authentication_idがnullの場合)
client_secretSFCCから取得したclient_secret。注: TDシステムは、td_authentication_idがnullの場合、この値を無視します。StringnullYES (td_authentication_idがnullの場合)
base_url設定パラメータセクションのbase_urlを参照StringnullYES
operation_mode設定パラメータセクションoperation_modeを参照。operation_modeはdata_targetcustomer_listの場合にのみ使用されます。オプション:
  1. customer_list
  2. customer_group
customer_listYES (data_targetcustomer_listの場合)
customer_list_id設定パラメータセクションcustomer_list_idを参照。operation_modeはdata_targetcustomer_listの場合にのみ使用されます。StringnullYES (data_targetcustomer_listの場合)
skip_empty_fieldsコネクタが空またはnullの値を持つフィールドを無視するかどうかを決定するインジケータフラグ。BooleantrueNO
customer_group_operation_modeoperation_modeはdata_targetcustomer_groupの場合にのみ使用されます。customer_groupに適用されるアクション。オプション:
  1. add: customer_noを特定のcustomer_group_idに割り当てます。
  2. remove: customer_noを特定のcustomer_group_idから削除します。
  3. replace: 特定のグループのすべてのメンバーを削除し、customer_noをそのリストに割り当てます。
AddNOYES (data_targetcustomer_group の場合)
site_id設定パラメータセクションsite_id を参照してください。StringnullYES (data_targetcustomer_group の場合)
customer_group_id設定パラメータセクションcustomer_group_id を参照してください。StringnullYES (data_targetcustomer_group の場合)
customer_group_name設定パラメータセクションcustomer_group_name を参照してください。StringemptyNO

使用例

  • 新しい顧客を作成
td --database luan_db --wait "SELECT customer_list_id,first_name,last_name,birthday,company_name,email,fax,gender,job_title,phone_business,phone_home,phone_mobile,second_name,credentials FROM (VALUES ('site_1','fname_201','lname_1','1990-05-12','Test Company','test201@test.com','84111111201',1,'Sr Software','84111111201','84111111201','84111111201','Ryan','{\"enabled\":true,\"locked\":false,\"login\":\"login_url_1_100001.csv\"}')) tbl(customer_list_id,first_name,last_name,birthday,company_name,email,fax,gender,job_title,phone_business,phone_home,phone_mobile,second_name,credentials)" \--type presto \--result '{"type":"salesforce_commerce_cloud","td_authentication_id": 2837,"base_url":"https://zzvt-003.dx.commercecloud.salesforce.com","operation_mode":"create","customer_list_id":"static_g_1","skip_invalid_record":true,"thread_count":2}'
  • 既存の顧客を更新
td --database luan_db --wait "SELECT customer_list_id,customer_no,first_name,last_name,credentials FROM (VALUES ('site_1','00000001','fname_1_updated','','{\"enabled\":true,\"locked\":false,\"login\":\"login_url_1_100001.csv\"}')) tbl(customer_list_id,customer_no,first_name,last_name,credentials)" \--type presto \--result '{"type":"salesforce_commerce_cloud","data_target": "customer_list","td_authentication_id": 2837,"base_url":"https://zzvt-003.dx.commercecloud.salesforce.com","operation_mode":"update","customer_list_id":"static_g_1","skip_invalid_record":true,"thread_count":2}'
  • 顧客を特定の顧客グループに割り当て
td --database luan_db --wait "SELECT customer_no FROM (VALUES ('00000001')) tbl(customer_no)" \--type presto \--result '{"type":"salesforce_commerce_cloud","data_target": "customer_group","td_authentication_id": 2837,"base_url":"https://zzvt-003.dx.commercecloud.salesforce.com","customer_group_operation_mode":"add","site_id":"site_1", "customer_group_id": "static_customer_group_1","thread_count":2}'

(参考) API Clientの作成と設定

このセクションでは、SFCC APIを使用するために必要な認証情報の取得と権限の設定方法について、概要レベルで説明します。詳細な手順は、Salesforceによって事前の通知なしに変更される可能性があります。

SFCC Account Manager SystemでAPI Clientを作成

  1. SFCC Account Managerにアクセスしてログイン
  2. API Clientを選択

  1. Add API Clientを選択

  1. Display Name、Password、Confirm Passwordに値を入力し、Access Controlを選択して有効化
  2. Organizationsエリアで、組織を選択
  3. Rolesエリアで、Addを選択
  4. 適切なロールを選択し、Addを選択
  5. Token Endpoint Auth Methodセクションまでスクロール
  6. 以下のようにAuth methodとtoken formatを選択し、Saveを選択

  1. API Client IDPasswordを記録し、TD ConsoleでSFCC統合用の新しいAuthenticationを作成する際に使用します

SFCCインスタンスにアクセスするためのAPI Clientを設定

これらの手順により、作成したAPI ClientがOpen Commerce API機能を使用してSFCCインスタンスのデータを変更できるようになります

  1. Business Managerを開く (https://{YOUR_INSTANCE_URL}.commercecloud.salesforce.com/on/demandware.store/Sites-Site/default/ViewApplication-DisplayWelcomePage)
  2. Administration >> Open Commerce API Settingsを選択

  1. Select TypeドロップダウンリストでDataを選択

  1. Data APIの設定文字列で、WRITE権限が設定されていることを確認: "write_attributes": "(**)"
  2. Select ContextドロップダウンリストでGlobal (organization-wide)を選択
  3. Saveを選択すると、数分でAPI Clientの権限が適用されます

これでAPI ClientをSalesforce Commerce Cloud統合で使用する準備が整いました

関連記事

  • Result Exportは、ターゲットの送信先にデータを定期的にアップロードするためにスケジュールを設定できます

  • すべてのインポートおよびエクスポート統合は、TD Workflowに追加できます。tdデータオペレータを使用して、クエリ結果を指定されたコネクタにエクスポートできます。詳細については、Reference for Treasure Data Operatorsを参照してください

  • Open Commerce Cloud API