Ellipse Gradient for Header
Salesforce Commerce Cloud logo

Salesforce Commerce Cloud Integration Guide

Integrate Salesforce Commerce Cloud with enterprise systems through OAuth 2.0-protected REST APIs, selective webhooks, scheduled workflows, and supported import/export processes.

Salesforce Commerce Cloud integration options at a glance

Salesforce Commerce Cloud provides REST-based Shopper APIs, Admin APIs, and established OCAPI resources for storefront, catalog, customer, basket, order, inventory, promotion, and site operations. OAuth 2.0, client credentials, authorization code with PKCE, SLAS, scopes, and API-client permissions control access according to the API family and application type. Selected Commerce API events can generate webhook-style notifications, while administrative and high-volume processes may use supported jobs and import/export files. Martini can consume these APIs, receive supported notifications, orchestrate scheduled and asynchronous workflows, transform commerce data, and coordinate rate-aware synchronization with downstream systems.

Integration pointSupported by Salesforce Commerce Cloud?Common use casesHow Martini supports it
REST APIsYesThe current Shopper APIs, Admin APIs, and OCAPI resources support catalog, customer, basket, order, site, inventory, and other commerce operations. API selection depends on the resource, client type, site, locale, and lifecycle guidance.Martini can consume OAuth-protected REST endpoints, paginate responses, map payloads, apply business rules, and expose reusable APIs or workflows around Commerce Cloud operations.
Webhooks / outbound callbacksLimitedSalesforce Commerce Cloud provides webhook-style notifications for selected Commerce API events and resources, but not a universal event stream for every object or change.Martini can expose a secured API or workflow trigger, validate incoming requests, deduplicate notifications, retrieve the current resource, and process the work asynchronously.
Bulk / async / batch operationsLimitedOperational jobs and supported import/export processes handle selected administrative, catalog, inventory, and other high-volume activities. They are not a universal replacement for individual Shopper API operations.Martini can coordinate job initiation, polling, file preparation, validation, status handling, and rate-aware batch workflows.
File import/exportLimitedFile-oriented processes support selected commerce data, catalog, inventory, and configuration workflows. This should not be treated as a general-purpose attachment API.Martini can validate, transform, deliver, and reconcile supported files, while tracking import status and surfacing row-level failures where available.
AuthenticationYesOAuth 2.0 is the primary model, with client credentials for server-to-server access and authorization code with PKCE or SLAS for customer-facing Shopper API applications. Scopes, client permissions, roles, and site or organization context further restrict access.Martini can store client credentials and token configuration as environment-specific secrets, obtain and refresh tokens, and expose separately secured downstream APIs.
GraphQL APIsNot confirmedA general-purpose Salesforce Commerce Cloud GraphQL integration surface was not confirmed. New integrations should use documented REST APIs unless a specific Salesforce product confirms GraphQL for the required resource.Martini can consume GraphQL APIs when a confirmed endpoint exists, but GraphQL should not be assumed for Salesforce Commerce Cloud.
SOAP APIsNoSOAP is not the documented or recommended API style for current Salesforce Commerce Cloud integrations; SOAP capabilities elsewhere in the Salesforce portfolio should not be assumed to apply.Martini can consume SOAP services generally, but a Salesforce Commerce Cloud integration should use its confirmed REST and import/export mechanisms instead.
Database accessNoDirect SQL access to the managed Commerce Cloud database is not a standard integration mechanism. Supported APIs and export facilities should be used instead.Martini can connect to external databases when required for staging or canonical state, without bypassing Salesforce Commerce Cloud through direct database access.

How Salesforce Commerce Cloud exposes data and business events

Salesforce Commerce Cloud REST APIs

REST is the principal Salesforce Commerce Cloud integration mechanism. Shopper APIs, Admin APIs, and OCAPI resources expose operations for storefront, catalog, customer, basket, order, inventory, promotion, and site use cases, with availability varying by resource and API version.

Martini implementation pattern

Martini implementation pattern: Martini obtains an OAuth 2.0 access token, calls the appropriate API with site, realm, organization, locale, or currency context, follows pagination, maps the response into a canonical model, and invokes the downstream application or exposes the result through a Martini API.

Implementation sequence

Obtain an OAuth 2.0 access token
Select the documented API family and resource
Request the resource with required site and locale context
Follow pagination or cursor information
Validate and map the response
Write the result to the target system and persist progress

Salesforce Commerce Cloud Webhooks

Salesforce Commerce Cloud supports webhook-style notifications for selected Commerce API events and resources. Coverage is selective, so a webhook should be treated as a notification rather than assumed to contain a complete source-of-truth record.

Martini implementation pattern

Martini implementation pattern: A Martini API or workflow trigger receives the notification, validates the configured authentication or signature controls, records an event identifier, acknowledges quickly, and starts asynchronous processing that retrieves the current Salesforce resource when required.

Implementation sequence

Receive the supported webhook notification
Validate authentication and request structure
Check the event identifier for duplicate delivery
Acknowledge the request promptly
Retrieve the current Salesforce resource when needed
Process the event asynchronously and route failures for retry

Salesforce Commerce Cloud Import and Export

Salesforce B2C Commerce provides jobs and file-oriented import/export processes for selected catalog, inventory, configuration, and administrative tasks. These processes are useful for selected high-volume operations but do not replace all resource-level APIs.

Martini implementation pattern

Martini implementation pattern: Martini prepares or receives a file, validates encoding, delimiters, identifiers, site context, and locale data, transforms the content, coordinates delivery or job execution, and monitors the resulting import status.

Implementation sequence

Prepare or receive the supported commerce file
Validate encoding, structure, identifiers, and site context
Transform the file into the required Salesforce format
Deliver the file or initiate the supported job
Poll or receive the import status
Record row-level failures and reconcile successful data

Salesforce Commerce Cloud Authentication

Commerce API access uses OAuth 2.0 with client credentials, authorization code with PKCE, or SLAS according to the API family and application type. Scopes, client permissions, administrative roles, and site or organization context restrict operations.

Martini implementation pattern

Martini implementation pattern: Martini stores client IDs, secrets, token endpoints, scopes, and environment-specific URLs securely, requests tokens using the approved grant, refreshes or reacquires credentials as needed, and keeps authentication configuration separate from workflow logic.

Implementation sequence

Register and authorize the appropriate API client
Store credentials and token configuration as environment secrets
Request a token using the approved OAuth 2.0 flow
Attach the token and required context to API requests
Refresh or reacquire the token when it expires
Audit permissions and rotate credentials without changing mappings

Common Salesforce Commerce Cloud integration patterns

Pattern 1: Synchronize products and categories to downstream systems

When to use this pattern

Use this pattern when ERP, PIM, marketplace, or search platforms need a consistent Commerce Cloud catalog. It supports full or incremental synchronization through paginated REST requests or supported import/export processes.

Integration direction
Salesforce Commerce Cloud
Martini
NetSuite
Example Mapping
Salesforce Commerce Cloud FieldCanonical FieldTarget Field
Product.idproduct.externalIditem.externalId
Product.nameproduct.nameitem.displayName
Category.parentCategoryIdcategory.parentIdcategory.parentExternalId
Product.availabilityproduct.availabilityStatusitem.availability
Martini implementation pattern

A scheduler starts a Martini workflow that retrieves Products and Categories page by page, validates identifiers and site context, preserves hierarchy, applies ownership and availability rules, and upserts the target model. The workflow checkpoints progress, uses bounded concurrency, and retries failed pages without restarting the entire synchronization.

Martini capabilities used
  • scheduled workflows
  • API consumption
  • pagination and checkpointing
  • data mapping
  • business rules
  • error handling

Pattern 2: Export orders to an ERP or fulfillment platform

When to use this pattern

Use this pattern when submitted Commerce Cloud Orders must be processed by an ERP, warehouse, tax, or fulfillment application. The design protects against duplicate order creation during retries or repeated notifications.

Integration direction
Salesforce Commerce Cloud
Martini
NetSuite
Example Mapping
Salesforce Commerce Cloud FieldCanonical FieldTarget Field
Order.orderNoorder.sourceIdsalesOrder.externalId
Order.productItemsorder.linessalesOrder.items
Order.shipmentsfulfillment.shipmentssalesOrder.fulfillmentLines
Order.taxTotalorder.taxAmountsalesOrder.taxTotal
Martini implementation pattern

Martini retrieves an eligible Order after a supported event or scheduled query, validates payment and fulfillment boundaries, maps line items, addresses, taxes, discounts, and shipping methods, and submits the target transaction. It stores the returned external identifier and checks the idempotency key before every non-idempotent write.

Martini capabilities used
  • webhook-triggered workflows
  • API consumption
  • data transformation
  • idempotency controls
  • business rules
  • retry and exception routing

Pattern 3: Synchronize inventory availability

When to use this pattern

Use this pattern when an ERP or warehouse system owns inventory and Commerce Cloud or other sales channels need current availability. It is appropriate for scheduled extraction and rate-aware updates rather than unrestricted concurrent writes.

Integration direction
SAP S/4HANA
Martini
Salesforce Commerce Cloud
Example Mapping
Salesforce Commerce Cloud FieldCanonical FieldTarget Field
InventoryList.idinventory.locationIdinventoryList.id
ProductInventoryRecord.atsinventory.availableToSellavailability.quantity
Product.idproduct.externalIdavailability.productId
InventoryList.recordSetinventory.itemsavailability.items
Martini implementation pattern

Martini extracts inventory from the source system, validates product IDs, inventory lists, quantities, and allocation rules, then sends bounded updates to Commerce Cloud. Unknown products, invalid lists, insufficient permissions, and throttling are routed to controlled exception handling while successful batches are checkpointed.

Martini capabilities used
  • scheduled workflows
  • API orchestration
  • data validation
  • rate-aware batching
  • conditional routing
  • error handling

Pattern 4: Orchestrate supported basket or order events

When to use this pattern

Use this pattern when a selected Commerce Cloud event should trigger fraud review, customer communication, fulfillment, service, or analytics processing. Because webhook coverage is selective, reconciliation should supplement event processing.

Integration direction
Salesforce Commerce Cloud
Martini
ServiceNow
Example Mapping
Salesforce Commerce Cloud FieldCanonical FieldTarget Field
event.idevent.sourceIdcase.externalEventId
Order.orderNocommerce.orderIdcase.orderReference
Order.statuscommerce.statuscase.commerceStatus
Customer.profilecustomer.contactcase.requester
Martini implementation pattern

A Martini API receives the supported notification and responds promptly after request validation. An asynchronous workflow deduplicates the event, retrieves the current Basket or Order, applies routing rules, maps the payload to the target application, and sends failures to retry or dead-letter handling. A scheduled reconciliation workflow covers changes not exposed through webhooks.

Martini capabilities used
  • API exposure
  • webhook consumption
  • asynchronous workflows
  • data mapping
  • deduplication
  • reconciliation and retry

Applications commonly integrated with Salesforce Commerce Cloud

Salesforce Commerce Cloud can be connected to adjacent enterprise applications to synchronize commerce, operational, customer, search, and marketing data. The exact object coverage and direction depend on the products deployed and the APIs enabled in each environment.

Application Scenario Direction Martini Pattern
Salesforce CRM Share customer, commerce, and order context with Salesforce customer-management and service processes. Salesforce Commerce Cloud → Martini → Salesforce CRM Use REST API workflows to retrieve eligible Customers and Orders, map them to the CRM model, apply privacy and status rules, and upsert the results with idempotency controls.
NetSuite Synchronize orders, customers, products, prices, inventory, invoices, and fulfillment information with the ERP. Salesforce Commerce Cloud → Martini → NetSuite Receive or schedule commerce extraction, normalize Products, Orders, Customers, and inventory data, call NetSuite APIs, persist external identifiers, and retry safely without duplicating transactions.
SAP S/4HANA Coordinate product, inventory, pricing, customer, order, and fulfillment information with an SAP system of record. SAP S/4HANA → Martini → Salesforce Commerce Cloud Use scheduled or event-assisted workflows to validate SAP payloads, map canonical product and inventory models to Commerce Cloud resources, enforce site and locale rules, and route rejected updates for review.
Microsoft Dynamics 365 Coordinate commerce orders, customers, inventory, products, and fulfillment with ERP or customer-service processes. Salesforce Commerce Cloud → Martini → Microsoft Dynamics 365 Orchestrate REST calls on both sides, transform differing customer and order models, apply status-based routing, and use stable source identifiers for repeatable updates.
ServiceNow Create service or fulfillment cases from commerce events and make operational status available to support teams. Salesforce Commerce Cloud → Martini → ServiceNow Expose a Martini API for supported Commerce Cloud notifications, retrieve the current Order or Basket when needed, create or update ServiceNow records, and process longer work asynchronously.
Shopify Synchronize selected product, inventory, or order data in a multi-commerce-channel architecture. Salesforce Commerce Cloud → Martini → Shopify Build explicit cross-channel mappings for Products, Categories, inventory, and Orders, apply conflict and ownership rules, and use scheduled reconciliation for objects without event coverage.
Algolia Send product, category, availability, and merchandising data to support storefront search and discovery. Salesforce Commerce Cloud → Martini → Algolia Schedule paginated catalog extraction, normalize searchable attributes and availability, transform the payload to the Algolia index model, and retry partial batches with checkpointing.
Salesforce Marketing Cloud Provide customer, order, basket, and product activity for campaigns, abandoned-basket journeys, and post-purchase communications. Salesforce Commerce Cloud → Martini → Salesforce Marketing Cloud Consume supported commerce APIs or notifications, filter consented data, map activity to campaign schemas, and route delivery failures through retry and reconciliation workflows.

How to build a Salesforce Commerce Cloud integration in Martini

Objective

Establish the Salesforce Commerce Cloud API client and environment-specific authentication without embedding credentials in workflow logic.

Instructions in Martini

  • Confirm the required Shopper API, Admin API, or OCAPI resource
  • Register the appropriate client and permissions in Salesforce Commerce Cloud
  • Store client IDs, secrets, token endpoints, scopes, and site context as Martini secrets
  • Configure OAuth 2.0 token acquisition and refresh behavior

Objective

Select an execution model that matches the resource and required freshness while accounting for selective webhook coverage.

Instructions in Martini

  • Use a supported webhook or callback when the required event is confirmed
  • Use a scheduler for catalog, inventory, or reconciliation workflows
  • Use an API endpoint when another system must initiate processing
  • Use a supported import/export job for suitable high-volume administrative data

Objective

Consume Commerce Cloud resources reliably and preserve enough state to resume large synchronizations.

Instructions in Martini

  • Call the documented REST resource with required site, realm, locale, and currency context
  • Follow pagination or cursor information
  • Persist checkpoints or source modification state where available
  • Apply bounded concurrency and rate-aware backoff

Objective

Coordinate source retrieval, enrichment, target calls, and asynchronous work in a maintainable Martini workflow.

Instructions in Martini

  • Separate notification receipt from longer processing where response time matters
  • Add branches for order, catalog, inventory, customer, or file-specific rules
  • Use reusable workflow logic for token handling, pagination, and common validation
  • Route failures to retry or exception paths

Objective

Convert Salesforce Commerce Cloud models into canonical and target-specific structures while protecting data quality.

Instructions in Martini

  • Map Products, Categories, Baskets, Orders, Customers, Promotions, or inventory explicitly
  • Validate required identifiers, site context, locales, addresses, quantities, and statuses
  • Apply privacy and sensitive-data minimization rules
  • Preserve source identifiers and relevant unknown fields where appropriate

Objective

Update target applications safely and maintain references between Commerce Cloud and downstream records.

Instructions in Martini

  • Use the target API or supported file interface to create or update data
  • Apply stable idempotency keys for Orders, inventory updates, and event delivery
  • Persist returned target identifiers and processing status
  • Optionally send supported status updates back to Salesforce Commerce Cloud

Common Salesforce Commerce Cloud data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
ProductsSynchronize product IDs, descriptions, variants, pricing references, images, and availability-related information.ERP, PIM, marketplace, search, and marketing platformsMartini retrieves Products through paginated REST calls or supported exports, validates site and locale context, maps fields to a canonical product model, and upserts downstream data.
CategoriesRepresent hierarchical catalog groupings and merchandising structure.PIM, search, marketplace, analytics, and other commerce channelsMartini preserves hierarchy and identifiers, validates parent-child relationships, transforms category attributes, and processes changes with checkpoints.
BasketsRepresent shopper carts containing items, quantities, pricing, shipping, billing, and promotion information before order creation.Marketing Cloud, fraud review, customer service, analytics, and fulfillment orchestrationMartini receives supported notifications or retrieves Baskets, applies consent and sensitivity rules, deduplicates events, and routes selected data asynchronously.
OrdersRepresent completed or submitted transactions with customers, payment, shipping, tax, promotions, and line items.ERP, warehouse, tax, fulfillment, CRM, service, and marketing platformsMartini uses order ID or order number as an idempotency key, maps financial and fulfillment fields, stores target identifiers, and retries safely.
CustomersRepresent shopper profiles and customer accounts subject to API and authentication context.Salesforce CRM, Marketing Cloud, ERP, service, and customer data platformsMartini limits fields and scopes, validates privacy requirements, maps customer and address structures, and synchronizes only permitted data.
PromotionsRepresent discount and promotional rules applied to products, baskets, or orders.ERP, PIM, marketing, analytics, and other commerce channelsMartini extracts supported promotion data, normalizes conditions and dates, applies site and locale rules, and routes unsupported constructs for exception handling.

Authentication and security considerations

OAuth 2.0 and client permissions

Salesforce Commerce Cloud uses OAuth 2.0 with client credentials, authorization code with PKCE, or SLAS according to the API family and application context. Scopes, API-client permissions, administrative roles, and site or organization context should be limited to the required operations.

Secrets and sensitive data

Store client IDs, client secrets, token endpoints, scopes, and environment-specific URLs in Martini secrets or secure configuration. Avoid logging access tokens, passwords, payment data, or unnecessary customer information.

Inbound notifications

Secure Martini webhook endpoints with the configured authentication or request-validation controls, verify event identifiers, and separate fast acknowledgement from longer asynchronous processing.

Operational considerations for Salesforce Commerce Cloud integrations

Rate limits and pagination

Commerce Cloud catalog, order, customer, and inventory responses may be paginated, and environments can impose request or operational limits. Use checkpoints, bounded concurrency, backoff, and rate-aware batching.

Idempotency and reconciliation

Webhook delivery and retries can produce duplicate work. Use stable source identifiers before non-idempotent writes, persist processing state, and schedule reconciliation for changes not covered by webhooks.

Schema and lifecycle changes

Track API versions separately from Martini workflow versions and confirm resource availability for the required site, realm, locale, and client type. Validate required fields and isolate vendor-specific schemas through mappings.

Files and order boundaries

Validate file structure, encoding, identifiers, and import status for batch processes. Clarify system ownership for order state, payment authorization, tax, promotions, and fulfillment, and minimize sensitive data propagation.

Why use Martini instead of scripts or point-to-point integrations?

Orchestration instead of isolated scripts

Martini provides a maintainable workflow layer for OAuth-protected API calls, selective webhook receipt, scheduled reconciliation, import/export coordination, pagination, transformation, and downstream writes.

Reusable integration logic

Common concerns such as token handling, validation, idempotency, rate-aware retries, exception routing, and checkpointing can be implemented consistently across commerce workflows instead of duplicated across scripts.

Controlled APIs and change isolation

Martini can expose secured APIs for internal applications or partner processes while keeping Salesforce-specific schemas behind mappings and business rules. This reduces point-to-point coupling and makes API-version or target-system changes easier to manage.

Operational visibility

Workflow error handling, logs, monitoring, and controlled deployment provide a clearer operational model for catalog, inventory, order, and event-driven integrations than disconnected custom jobs.

Frequently asked questions

How can Salesforce Commerce Cloud be integrated with enterprise systems?

Salesforce Commerce Cloud can be integrated through its REST-based Shopper APIs, Admin APIs, and applicable OCAPI resources. OAuth 2.0 protects access, selected events can produce webhook-style notifications, and supported import/export processes can handle some administrative and high-volume workloads. Scheduled Martini workflows can combine these mechanisms for synchronization and reconciliation.

Can Martini integrate with Salesforce Commerce Cloud?

Yes. Martini can consume Salesforce Commerce Cloud REST APIs, obtain OAuth 2.0 tokens, receive supported webhook notifications through an exposed API, coordinate import/export workflows, and map commerce data to ERP, fulfillment, service, marketing, search, or other enterprise applications.

Do I need a connector to integrate Salesforce Commerce Cloud with Martini?

No. A dedicated Salesforce Commerce Cloud connector is not required. Martini can use Salesforce Commerce Cloud's confirmed native REST APIs, OAuth 2.0 authentication, selected webhook notifications, scheduled workflows, and supported file import/export processes.

Is there any extra Lonti cost to integrate Salesforce Commerce Cloud with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate Salesforce Commerce Cloud with Martini. Integrations are subject to the provisioned capacity of the Martini environment. Separate costs may apply from Salesforce, infrastructure providers, or other third-party systems based on subscription, usage, and deployment model.

Which Salesforce Commerce Cloud integration methods should a new project use?

Use the current Salesforce Commerce APIs for documented Shopper and Admin operations, and evaluate OCAPI only where the required resource or operation is documented and its lifecycle is acceptable. Use selective webhooks for supported events and import/export jobs for suitable batch processes. General-purpose Commerce Cloud GraphQL and current SOAP integration surfaces were not confirmed.

Can Martini receive Salesforce Commerce Cloud webhooks?

Yes, for events and resources that Salesforce Commerce Cloud supports. Martini can expose a secured endpoint, validate the request, deduplicate the notification, acknowledge promptly, and process the event asynchronously. Coverage is selective, so scheduled reconciliation may still be required.

How does Martini handle Salesforce Commerce Cloud synchronization and transformation?

Martini can schedule paginated API retrieval, follow cursors or checkpoints, normalize Products, Categories, Orders, Customers, Baskets, Promotions, and inventory, and map them to canonical or target-specific models. Business rules can control ownership, status, site, locale, privacy, and conflict behavior.

How are errors, retries, and duplicate Commerce Cloud events handled?

Workflows can use bounded retries and backoff for expired tokens, throttling, transient API failures, and downstream errors. Stable identifiers such as event IDs, order IDs, basket IDs, or source transaction IDs support idempotency. Failed pages, files, and events can be routed for investigation and reconciliation.