Reading from Salesforce Commerce Cloud entities
Prerequisites
-
A Salesforce Commerce Cloud Object you would like to read from. Refer the supported entities table below to check the available entities.
Supported entities
| Entity | Can be Filtered | Supports Limit | Supports Order By | Supports Select * | Supports Partitioning |
|---|---|---|---|---|---|
| Assignments | Yes | Yes | Yes | Yes | Yes |
| Campaigns | Yes | Yes | Yes | Yes | Yes |
| Catalogs | Yes | Yes | Yes | Yes | Yes |
| Categories | Yes | Yes | Yes | Yes | Yes |
| Coupons | Yes | Yes | Yes | Yes | Yes |
| Gift Certificates | Yes | Yes | Yes | Yes | Yes |
| Products | Yes | Yes | Yes | Yes | Yes |
| Promotions | Yes | Yes | Yes | Yes | Yes |
| Source Code Groups | Yes | Yes | Yes | Yes | Yes |
Example
salesforce_commerce_cloud_read = glueContext.create_dynamic_frame.from_options( connection_type="SalesforceCommerceCloud", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "campaign", "API_VERSION": "v1" } )
Salesforce Commerce Cloud entity and field details
Entities list:
-
Assignments: https://developer.salesforce.com/docs/commerce/commerce-api/references/assignments
-
Campaigns: https://developer.salesforce.com/docs/commerce/commerce-api/references/campaigns
-
Catalogs: https://developer.salesforce.com/docs/commerce/commerce-api/references/catalogs
-
Categories: https://developer.salesforce.com/docs/commerce/commerce-api/references/catalogs?meta=searchCategories
-
Gift Certificates: https://developer.salesforce.com/docs/commerce/commerce-api/references/gift-certificates
-
Products: https://developer.salesforce.com/docs/commerce/commerce-api/references/products
-
Promotions: https://developer.salesforce.com/docs/commerce/commerce-api/references/promotions
-
Source Code Groups: https://developer.salesforce.com/docs/commerce/commerce-api/references/source-code-groups
Partitioning queries
Additional spark options PARTITION_FIELD, LOWER_BOUND, UPPER_BOUND,
NUM_PARTITIONS can be provided if you want to utilize concurrency in Spark. With these parameters,
the original query would be split into NUM_PARTITIONS number of sub-queries that can be executed by spark
tasks concurrently.
-
PARTITION_FIELD: the name of the field to be used to partition query. -
LOWER_BOUND: an inclusive lower bound value of the chosen partition field.For date, we accept the Spark date format used in Spark SQL queries. Example of valid values:
"2024-02-06". -
UPPER_BOUND: an exclusive upper bound value of the chosen partition field. -
NUM_PARTITIONS: number of partitions.
Entity-wise partitioning field support details are captured in below table:
| Entity | Partitioning Field | DataType |
|---|---|---|
| Campaigns | lastModified | DateTime |
| Campaigns | startDate | DateTime |
| Campaigns | endDate | DateTime |
| Catalogs | creationDate | DateTime |
| Categories | creatiionDate | DateTime |
| Gift Certificates | merchantId | String |
| Gift Certificates | creatiionDate | DateTime |
| Products | creatiionDate | DateTime |
| Products | lastModified | DateTime |
| Source Code Groups | creationDate | DateTime |
| Source Code Groups | startTime | DateTime |
| Source Code Groups | endTime | DateTime |
Example
salesforceCommerceCloud_read = glueContext.create_dynamic_frame.from_options( connection_type="SalesforceCommerceCloud", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "coupons", "API_VERSION": "v1", "PARTITION_FIELD": "creationDate", "LOWER_BOUND": "2020-05-01T20:55:02.000Z", "UPPER_BOUND": "2024-07-11T20:55:02.000Z", "NUM_PARTITIONS": "10" } )