This data connector is in Beta. For more information, contact support@treasuredata.com.


Commerce Cloud connects the customer journey and drives success from anywhere with customer-centric commerce built for every industry.

What can you do with this Integration?



Prerequisites

Limitations

An Inventory List with no product is still inserted as one record, the properties belong to the Product Inventory List and will be null.

About Incremental Data Loading  



Create the API Client on Commerce Cloud Account Manager System

These steps are necessary to create the credentials that are needed to define the authentication for your integration.


Navigate to the Salesforce Cloud Commerce UI and login. For example, Account Manager UI.


Select API Client.

Select Add API Client.

Type values for:
    • Display Name
    • Password
    • Confirm Password
Select Access Control to enable it.
In the Organizations area, select your organization.
In the Roles area, select Add.
Select the appropriate role. For example, Sandbox API User.

Select Add.
After the role is added, select all the sandboxes associated with it.

Select Add.
Scroll down to Open ID Connect.
Add Default Scopes:
    • mail
    • roles
    • tenantFilter
    • profile
Add Redirect URI. For example:

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

Scroll to the Token Endpoint Auth Method section.
Select client_secret_basic.
Select JWT for Access Token Format.

Select Save.

You are taken back to the API Client screen.



Write down or save in a secure location the API Client ID and Password.

These are used as Authentication credentials to integrate with your SFCC instance.


Enable the API Client to Access the Data API

These steps enable your API Client to be used with the Data API and Salesforce B2C Commerce Cloud connector.

Open Business Manager. For example:

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

Select Administration.
Select Open Commerce API Settings.


Select Type as Data.

The configuration for Data API appears.

Type or copy the following into the text field:
{ "_v": "21.6", "clients": [ { "client_id": "your_api_client_id", "resources": [ { "methods": [ "get", "post", "put", "patch", "delete" ], "read_attributes": "(**)", "write_attributes": "(**)", "resource_id": "/**" } ] } ] }
For Select Context choose Global (organization-wide).

Select Save.
Wait for at least 3 minutes.

Your API Client is ready to be used with Data API and Salesforce B2C Commerce Cloud connector.

Use the TD Console to Create Your Connection

Create a New Connection

In Treasure Data, you must create and configure the data connection prior to running your query. As part of the data connection, you provide authentication to access the integration.

Open TD Console.
Navigate to Integrations Hub >  Catalog.
Search for and select Salesforce B2C Commerce Cloud.

Choose Create Authentication.

The following dialog opens:


Type or select the required information:
ParameterDescription

API Client ID

Key which you got after create your application on Commerce Cloud's Account Manager Application.

API Client Password

The password for your API Client when you create on Commerce Cloud's Account Manager Application.

Base URI

URL for accessing your Business Manager Application. Example value https://xxxx.commercecloud.salesforce.com/

Type a name for your connection.

Select Continue.



Transfer Your Data to Treasure Data


After creating the authenticated connection, you are automatically taken to Authentications.


Search for the connection you created. 

Select New Source.
Type a name for your Source in the Data Transfer field.

Select Next.

The Source Table dialog opens.

Edit the following parameters:

Parameters DescriptionDescription of Data Types
Data TypeThe data objects that you want to ingest into Treasure Data:

Customers From List

The customer info from a specific customer list


Products

Product info of Salesforce Commerce Cloud account


Categories and Product Assignments

Product category info and products belong to each category


Inventory Lists and Product Inventories

Inventory list and product in each inventory list


StoresStore info, location, and inventory belongs to stores

CatalogsProduct catalog info and count of products for each catalog 
Customer List IDThe customer List ID you want to import customer information from
Incremental loadingSelect to ingest only newly created data since the previous ingestion.
Created FromThe specific time you would like to ingest the data (YYYYMMDDHH format).
Select Next.

The Data Settings page can be modified for your needs or you can skip the page.

Optionally, edit the following parameters:


Select Next.

Data Preview 



Data Placement

Available Configuration

Configuration name

Type

Available when

Required

Sample value

Description

base_url

STRING

default

yes

https://xxxx.example.com

SFCC’s instance base url

catalog_id

STRING

target = categories

no

test

Catalog’s ID

client_id

STRING

default

yes

abcdef

Application’s ID

client_secret

STRING

default

yes

abcdef

Application’s Secret

customer_list_id

STRING

target = customers

yes if target = customers

test

Customer List Id

incremental

BOOLEAN

target = customers

target = products

target = catalog

no

true

Ingest incremental or not

initial_retry_wait

LONG

default

no

1

First wait time when retrying (in seconds)

inventory_list_id

STRING

target = inventory_lists

no

test

Inventory List’s ID

last_value

STRING

target = customers

target = products

target = catalog

no

2021-05-25T02:49:29.000Z

The timestamp to start ingest data

levels

LONG

target = categories

yes if target = categories

0

Level of sub-category to ingest when target = categories

maximum_retries

LONG

default

no

5

Maximum number of retry

maximum_retry_wait

LONG

default

no

120

Max wait time when retrying (in seconds)

site_id

STRING

target = products

target = stores

yes if target = stores

test

The Site ID

target

ENUM (customers , stores , categories , products , catalogs , inventory_lists )

default

yes

customers

Target data type to ingest


Sample Configuration

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