Ellipse Gradient for Header

Microsoft Dynamics 365 Commerce Integration Guide

Connect Microsoft Dynamics 365 Commerce with enterprise systems through Retail Server and Commerce Scale Unit APIs, Finance and Operations OData, selected events, CDX, and data-management services.

Microsoft Dynamics 365 Commerce integration options at a glance

Microsoft Dynamics 365 Commerce provides HTTP-based Retail Server and Commerce Scale Unit APIs for products, customers, carts, orders, pricing, promotions, inventory, and channel operations. Connected Finance and Operations environments expose OData and data-management APIs for supported data entities and bulk exchanges. Commerce Data Exchange supports asynchronous distribution between headquarters and channels, while selected Commerce events support event-driven scenarios. Martini can authenticate with Microsoft Entra ID OAuth 2.0, orchestrate synchronous and scheduled workflows, consume supported events, transform payloads, and coordinate batch or file-based processes. A hybrid design can combine events with scheduled reconciliation for reliable synchronization.

Integration pointSupported by Microsoft Dynamics 365 Commerce?Common use casesHow Martini supports it
Retail Server and Commerce Scale Unit REST APIsYesUse HTTP-based Commerce APIs for products, customers, carts, orders, pricing, promotions, inventory, availability, stores, and channel operations.Martini can consume REST endpoints, authenticate requests, map responses, apply business rules, and orchestrate calls in workflows.
Finance and Operations OData APIsYesUse public data entities for supported Commerce headquarters master-data and transactional integration scenarios.Martini can call OData endpoints, handle pagination and filtering, transform entity payloads, and coordinate incremental synchronization.
Commerce Data ExchangeYesCDX distributes products, assortments, prices, discounts, stores, channels, inventory, and related data asynchronously between headquarters and channels.Martini can orchestrate CDX-related processes, monitor results, transform supporting data, and reconcile downstream state.
Bulk, asynchronous, and batch APIsYesOData batch requests, asynchronous processing, and Finance and Operations data-management APIs support high-volume exchanges.Martini can schedule batch workflows, submit packages or requests, track status, and retry transient failures without processing every item synchronously.
Commerce events and outbound notificationsLimitedSelected Commerce and platform events support event-driven scenarios, but event coverage does not apply universally to every object or change.Martini can receive supported webhook-style notifications or event deliveries and combine them with retrieval and reconciliation workflows.
File and data-package exchangeLimitedData-management services support package-based imports and exports for products, catalogs, inventory, prices, orders, and other supported entities.Martini can orchestrate file or package exchange, transform JSON, XML, CSV, or Excel representations where applicable, and report processing errors.
Microsoft Entra ID OAuth 2.0YesApplication registrations, client credentials, bearer tokens, tenant configuration, and permissions secure server-to-server API access.Martini can use environment-specific authentication configuration and secrets without embedding client credentials in workflows.
SOAP APIsNoCurrent Commerce integration guidance centers on REST, OData, events, CDX, and data-management services rather than SOAP.Martini supports SOAP generally, but SOAP should not be selected for this Commerce integration without a separately confirmed endpoint.
Direct database accessNot confirmedDirect access to Commerce channel or production databases is not a recommended supported integration surface.Martini should use documented APIs, CDX, events, data entities, or exports instead of relying on database access.

How Microsoft Dynamics 365 Commerce exposes data and business events

Commerce REST APIs

Commerce Scale Unit and Retail Server expose HTTP-based APIs for channel operations including product, customer, cart, order, pricing, promotion, inventory, and availability scenarios. Finance and Operations also provides OData endpoints for supported public data entities.

Martini implementation pattern

Martini implementation pattern: Martini authenticates with Microsoft Entra ID where required, calls the appropriate Commerce or OData resource, validates the response, maps it into a canonical model, and invokes downstream systems or returns a controlled API response.

Implementation sequence

Authenticate with the required Microsoft Entra ID application
Select the Retail Server, Commerce Scale Unit, or OData operation
Retrieve the resource using pagination or continuation state
Validate and map the response to the canonical model
Apply channel, organization, and business rules
Write the result or return the normalized response

Commerce Data Exchange

Commerce Data Exchange distributes selected headquarters data asynchronously to channel databases or channel environments. It is suited to high-volume products, assortments, prices, discounts, stores, channels, inventory, and related data rather than individual synchronous record calls.

Martini implementation pattern

Martini implementation pattern: Martini schedules or initiates the applicable distribution process, monitors status through supported services, transforms supporting files or payloads, and performs reconciliation when channel processing is eventually consistent.

Implementation sequence

Start or schedule the supported distribution process
Prepare or retrieve the applicable Commerce data set
Track asynchronous processing status
Record the successful distribution checkpoint
Reconcile missing or delayed channel data
Route failed packages or jobs for retry

Commerce events

Dynamics 365 Commerce provides events for selected business and platform events and supported extension scenarios. Coverage depends on the event type, Commerce version, deployment model, and configured delivery mechanism; it is not universal webhook coverage.

Martini implementation pattern

Martini implementation pattern: Martini receives a supported event through the documented Microsoft transport or intermediary, validates its signature or authorization as applicable, retrieves the current resource when necessary, and uses scheduled reconciliation to cover missed notifications.

Implementation sequence

Receive the selected Commerce event notification
Validate authorization and the event envelope
Retrieve the current Commerce resource when required
Map the event and resource into the canonical model
Apply idempotency and business rules
Acknowledge or record the event and schedule reconciliation

OData and data-management batches

Finance and Operations supports OData batch requests and data-management APIs for applicable high-volume or package-based import and export scenarios. These mechanisms are appropriate when individual synchronous requests would be inefficient.

Martini implementation pattern

Martini implementation pattern: Martini creates or submits the supported batch or data package, tracks its asynchronous status, transforms source and target representations, and stores a checkpoint for restartable processing.

Implementation sequence

Create the validated batch request or data package
Submit it with the configured OAuth credentials
Poll or receive the processing status
Transform and validate returned results
Persist the package or batch checkpoint
Retry transient failures and route rejected rows for review

File and package exchange

Commerce and Finance and Operations support file-based data-management scenarios for selected imports and exports, including bulk product, catalog, inventory, price, order, and transaction exchanges. This is not a universal attachment API.

Martini implementation pattern

Martini implementation pattern: Martini can orchestrate file movement through supported endpoints, parse and transform the package contents, validate required fields, and invoke downstream processing or reconciliation workflows.

Implementation sequence

Retrieve or receive the supported data package
Validate file format and package metadata
Parse the product, inventory, price, or transaction data
Map fields to the target Commerce or enterprise schema
Submit or publish the transformed package
Log rejected rows and retain the processing checkpoint

Common Microsoft Dynamics 365 Commerce integration patterns

Pattern 1: Synchronize products, prices, and assortments

When to use this pattern

Use this pattern when Commerce product and merchandising data must be distributed to a catalog, marketplace, or adjacent commerce application. CDX or Finance and Operations data packages are preferable for high-volume exchanges, while APIs suit targeted or incremental retrieval.

Integration direction
Microsoft Dynamics 365 Commerce
Martini
Shopify
Example Mapping
Microsoft Dynamics 365 Commerce FieldCanonical FieldTarget Field
ProductNumberproductIdid
ProductNamenametitle
ItemPricepriceprice
AssortmentIdassortmentIdcollectionId
Martini implementation pattern

A scheduled Martini workflow retrieves products, variants, categories, prices, and assortment information or coordinates a supported bulk process. It applies channel rules, upserts using stable product identifiers, records page or package checkpoints, and retries transient failures while isolating rejected items.

Martini capabilities used
  • workflows
  • scheduler triggers
  • API consumption
  • data mapping
  • business rules
  • error handling

Pattern 2: Orchestrate carts and sales orders

When to use this pattern

Use this pattern when an external storefront, marketplace, or order application must validate a request and create or update a Commerce Cart or Sales order. It is particularly important where retries could otherwise create duplicate orders.

Integration direction
Shopify
Martini
Microsoft Dynamics 365 Commerce
Example Mapping
Microsoft Dynamics 365 Commerce FieldCanonical FieldTarget Field
externalOrderIdorderCorrelationIdSalesOrder.externalReference
lineItems[].skuitems[].productIdCartLine.ItemId
lineItems[].quantityitems[].quantityCartLine.Quantity
fulfillmentAddressshippingAddressSalesOrder.ShippingAddress
Martini implementation pattern

Martini exposes or consumes a controlled API, validates customer, product, inventory, address, pricing, and promotion data, then calls the supported Commerce cart and order operations. It persists correlation and idempotency state, maps fulfillment results, and routes unknown-timeout cases to duplicate checks before retrying.

Martini capabilities used
  • APIs
  • workflows
  • data validation
  • data mapping
  • business rules
  • idempotency
  • error handling

Pattern 3: Synchronize customers and loyalty context

When to use this pattern

Use this pattern when Commerce Customers must be coordinated with Finance, Dataverse, Salesforce, or another customer-facing application. Channel-specific customer behavior and external identifiers should be explicit in the design.

Integration direction
Microsoft Dynamics 365 Commerce
Martini
Microsoft Dataverse
Example Mapping
Microsoft Dynamics 365 Commerce FieldCanonical FieldTarget Field
CustomerAccountcustomerIdaccountNumber
NamedisplayNamename
EmailemailAddressemailaddress1
Addressesaddressesaddress records
Martini implementation pattern

A Martini workflow consumes customer changes through supported APIs or selected events and supplements them with scheduled reconciliation. It resolves channel and account identifiers, applies privacy and conflict rules, maps addresses and supported loyalty associations, and prevents duplicate customer creation.

Martini capabilities used
  • API consumption
  • scheduled workflows
  • mapping
  • validation
  • business rules
  • reconciliation

Pattern 4: Provide normalized inventory availability

When to use this pattern

Use this pattern when multiple downstream applications need a consistent availability response while Commerce remains the source for channel, warehouse, or fulfillment-location availability.

Integration direction
Marketplace
Martini
Microsoft Dynamics 365 Commerce
Example Mapping
Microsoft Dynamics 365 Commerce FieldCanonical FieldTarget Field
ProductIdskuproductId
WarehouseIdfulfillmentLocationIdlocationId
AvailableQuantityavailableQuantityquantity
AvailableToSellavailabilityStateavailability
Martini implementation pattern

Martini exposes a REST API that validates the requested product and location, calls the relevant Commerce availability endpoint, maps channel and warehouse context into a common response, and applies bounded retries for transient service protection responses. For large inventories, a scheduled or CDX-based projection can reduce real-time request volume.

Martini capabilities used
  • REST API exposure
  • API consumption
  • data transformation
  • workflow orchestration
  • rate-limit handling
  • monitoring

Applications commonly integrated with Microsoft Dynamics 365 Commerce

Microsoft Dynamics 365 Commerce commonly participates in Microsoft-centered commerce, finance, supply chain, data, and messaging architectures. It can also be integrated with adjacent customer and commerce applications when the implementation requires coordinated product, inventory, order, customer, or fulfillment data.

Application Scenario Direction Martini Pattern
Dynamics 365 Finance Synchronize financial dimensions, invoices, payments, customers, products, and retail transactions with enterprise finance processes. Microsoft Dynamics 365 Commerce → Martini → Dynamics 365 Finance Martini can call Commerce and Finance and Operations APIs, normalize master and transaction data, apply legal-entity and channel rules, and route failures for retry or reconciliation.
Dynamics 365 Supply Chain Management Coordinate products, inventory, warehouses, replenishment, fulfillment, and procurement information across commerce and operations. Dynamics 365 Supply Chain Management → Martini → Microsoft Dynamics 365 Commerce A scheduled or event-assisted workflow can retrieve supply-chain updates, map warehouse and item identifiers, and publish channel-ready inventory or product changes using supported Commerce APIs or asynchronous services.
Microsoft Dataverse Share customer, account, activity, and operational data with Power Platform and other Dynamics applications. Microsoft Dynamics 365 Commerce → Martini → Microsoft Dataverse Martini can transform Commerce Customers and related business data into Dataverse-compatible payloads, enforce channel and consent rules, and coordinate bidirectional updates where the selected Dataverse design supports them.
Microsoft Power Platform Support approvals, notifications, operational applications, reporting workflows, and exception handling around Commerce processes. Microsoft Dynamics 365 Commerce → Martini → Microsoft Power Platform Martini can expose controlled APIs or consume supported events, map Commerce data to Power Platform processes, and isolate business rules from individual application calls.
Azure Service Bus Provide durable asynchronous messaging for order, inventory, fulfillment, and integration-decoupling scenarios. Microsoft Dynamics 365 Commerce → Martini → Azure Service Bus Martini can receive or publish messages through the selected supported Microsoft event or messaging architecture, transform payloads, preserve correlation identifiers, and manage retry or dead-letter handling.
Azure Functions Implement custom event handlers, transformations, scheduled processing, and API mediation around Commerce. Microsoft Dynamics 365 Commerce → Martini → Azure Functions Martini can orchestrate calls between Commerce and Azure Functions, or expose a controlled API for custom handlers, with shared authentication, validation, mapping, and observability.
Shopify Exchange product, inventory, order, and customer data when an organization operates Shopify alongside Dynamics 365 Commerce. Shopify → Martini → Microsoft Dynamics 365 Commerce Martini can consume the confirmed APIs of each platform, reconcile product and order identifiers, apply channel-specific rules, and use scheduled synchronization where real-time coverage is incomplete.
Salesforce Synchronize customer, service, marketing, or commerce-related information when Salesforce remains part of the customer ecosystem. Salesforce → Martini → Microsoft Dynamics 365 Commerce Martini can coordinate customer and order flows across the documented APIs, map identifiers and consent fields, and route duplicate or business-rule conflicts for controlled resolution.

How to build a Microsoft Dynamics 365 Commerce integration in Martini

Objective

Establish environment-specific access to Commerce and connected Finance and Operations services without embedding credentials in integration logic.

Instructions in Martini

  • Register or identify the Microsoft Entra ID application and required permissions.
  • Configure tenant, client, scope, and endpoint values by environment.
  • Store client secrets and tokens in Martini secure configuration or secrets management.
  • Validate access against a non-production Commerce environment.

Objective

Select the trigger that matches the required latency, event coverage, and data volume.

Instructions in Martini

  • Use an API-triggered workflow for synchronous cart, order, or availability requests.
  • Use a supported event or webhook-style delivery for selected Commerce events.
  • Use a scheduler for reconciliation, polling, incremental synchronization, or bulk processing.
  • Use a supported batch, CDX, or data-management process for high-volume exchange.

Objective

Call the correct Commerce integration surface and make large or asynchronous retrieval restartable.

Instructions in Martini

  • Select Retail Server or Commerce Scale Unit for channel operations.
  • Select Finance and Operations OData or data-management APIs for supported headquarters entities.
  • Implement endpoint-specific pagination, continuation, filtering, and status polling.
  • Persist successful pages, packages, or synchronization checkpoints.

Objective

Coordinate vendor calls, transformations, business decisions, and downstream writes in a maintainable Martini workflow.

Instructions in Martini

  • Separate authentication, retrieval, transformation, validation, and delivery stages.
  • Carry channel, store, warehouse, legal-entity, and correlation context through the workflow.
  • Use reusable services or workflows for common Commerce operations.
  • Route asynchronous status checks and reconciliation through controlled branches.

Objective

Convert Commerce-specific payloads into canonical and target-system models while protecting data quality.

Instructions in Martini

  • Map Products, Customers, Carts, Sales orders, Inventory, and channel fields explicitly.
  • Validate required identifiers, quantities, addresses, prices, and status values.
  • Preserve stable vendor identifiers and relevant unknown fields where appropriate.
  • Apply channel-specific and organizational business rules before writing data.

Objective

Deliver transformed data to downstream applications or expose a normalized response to callers.

Instructions in Martini

  • Upsert target data using deterministic identifiers where supported.
  • Use idempotency and correlation keys for orders, customers, and messages.
  • Return a controlled API response for synchronous workflows.
  • Record target acknowledgements and external identifiers for later reconciliation.

Common Microsoft Dynamics 365 Commerce data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
ProductsSynchronize product masters, variants, dimensions, descriptions, images, categories, and assortments.Dynamics 365 Supply Chain Management, Shopify, Dataverse, catalogs, marketplacesMartini retrieves or receives product data, preserves product and variant identifiers, maps channel context, and uses pagination or bulk processing for large catalogs.
CustomersExchange customer profiles, contact details, addresses, account references, and supported loyalty associations.Dynamics 365 Finance, Dataverse, Salesforce, customer applicationsMartini validates identity and channel context, maps external identifiers, applies privacy rules, and protects against duplicate creation during retries.
CartsManage active shopping carts, line items, quantities, pricing, discounts, delivery information, and payment-related state.Web stores, mobile applications, marketplaces, order-management platformsMartini orchestrates cart retrieval and updates, validates products and pricing, and avoids passing raw payment credentials unless explicitly required by the architecture.
Sales ordersProcess orders, lines, payments, fulfillment details, shipments, returns, receipts, and order status.Dynamics 365 Finance, fulfillment platforms, Shopify, customer-service applicationsMartini applies idempotency and correlation keys, maps order status and fulfillment data, and separates business failures from transient transport retries.
Stores and channelsRepresent online stores, retail stores, call centers, organizational units, and channel-specific configuration.Dynamics 365 Finance, Supply Chain Management, commerce applications, reporting platformsMartini carries channel and organizational context through requests and mappings rather than treating Commerce data as globally interchangeable.
InventoryExchange availability, quantities, warehouses, fulfillment locations, and channel inventory views.Supply Chain Management, marketplaces, Shopify, fulfillment and availability servicesMartini can expose normalized availability APIs or run scheduled and bulk synchronization, using checkpoints and reconciliation for large datasets.

Authentication and security considerations

Microsoft Entra ID and OAuth 2.0

Microsoft Dynamics 365 Commerce and connected Finance and Operations services generally use Microsoft Entra ID OAuth 2.0 with application registrations, tenant-specific configuration, bearer tokens, and delegated or application permissions.

Least privilege

Permissions should be limited to the required Commerce channels, data entities, operations, and connected Azure services. Separate applications or credentials by environment where practical.

Secrets and sensitive data

  • Store client secrets, tokens, tenant identifiers, and certificates in secure Martini configuration or secrets management.
  • Do not expose Commerce credentials through public APIs or workflow payloads.
  • Avoid passing raw payment credentials through Martini unless the architecture explicitly requires it and appropriate controls are in place.

Operational considerations for Microsoft Dynamics 365 Commerce integrations

Throttling and pagination

Implement endpoint-specific pagination, continuation handling, bounded concurrency, batching where supported, and exponential backoff for transient service protection responses.

Consistency and reconciliation

CDX, events, batch jobs, and data packages can be eventually consistent. Define a source of truth, acceptable delay, checkpoints, reconciliation frequency, and recovery behavior for missed events or incomplete distribution.

Idempotency

Use external correlation identifiers, idempotency keys where supported, deterministic upsert keys, and persisted processing state. An unknown timeout must not automatically create a second Sales order.

Schema and channel context

Commerce APIs, data entities, event payloads, channels, stores, warehouses, legal entities, and custom extensions can vary by version and deployment model. Isolate vendor mappings, validate required fields, and test changes in a non-production environment.

Observability

Log correlation identifiers, request outcomes, checkpoints, and processing status without recording secrets, payment credentials, or unnecessary personal data.

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

Orchestration beyond individual API calls

Martini coordinates Commerce APIs, Finance and Operations data entities, events, files, batch processes, and downstream applications in one maintainable workflow rather than scattering logic across scripts.

Reusable transformation and rules

Mappings, validation, channel context, business rules, idempotency, and error classification can be reused across product, customer, inventory, cart, and order integrations.

Reliable hybrid synchronization

Martini supports API-led, scheduled, event-assisted, asynchronous, and bulk patterns, allowing an implementation to combine low-latency operations with reconciliation and high-volume processing.

Controlled integration contracts

Martini can expose normalized APIs that shield callers from vendor-specific endpoints and provide a consistent place for authentication, validation, monitoring, retry handling, and deployment configuration.

Frequently asked questions

How can Microsoft Dynamics 365 Commerce be integrated with enterprise systems?

Use Retail Server and Commerce Scale Unit REST APIs for channel operations, Finance and Operations OData for supported public data entities, CDX for asynchronous headquarters-to-channel distribution, selected Commerce events for event-driven scenarios, and data-management APIs or packages for bulk exchange. Microsoft Entra ID OAuth 2.0 is the primary security model for server-to-server access.

Can Martini integrate with Microsoft Dynamics 365 Commerce?

Yes. Martini can consume documented Commerce REST and Finance and Operations OData APIs, coordinate CDX and data-management processes, receive selected event deliveries, expose normalized REST APIs, and orchestrate mappings, validation, retries, and reconciliation.

Do I need a connector to integrate Microsoft Dynamics 365 Commerce with Martini?

No. A dedicated Microsoft Dynamics 365 Commerce connector is not required. Martini can integrate using the vendor's documented Retail Server, Commerce Scale Unit, OData, event, batch, file, and authentication mechanisms.

Is there any extra Lonti cost to integrate Microsoft Dynamics 365 Commerce with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate Microsoft Dynamics 365 Commerce. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from Microsoft, infrastructure providers, or other third-party services based on subscriptions, usage, and deployment model.

Which Microsoft Dynamics 365 Commerce integration methods should be used?

Use Retail Server or Commerce Scale Unit APIs for carts, customers, products, orders, pricing, and availability. Use Finance and Operations OData or data-management APIs for supported headquarters entities, and use CDX or batch and package-based processing for high-volume distribution. GraphQL was not confirmed and SOAP is not recommended for new Commerce integrations.

Does Microsoft Dynamics 365 Commerce support events or webhooks?

Commerce supports selected business and platform events and related event-driven mechanisms, but not universal webhook coverage for every object or field change. The event type, delivery model, payload, and retry behavior should be confirmed for the target Commerce version and deployment. Martini can combine supported events with scheduled reconciliation.

How does Martini synchronize Microsoft Dynamics 365 Commerce data?

Martini can use synchronous API calls for targeted operations, event-assisted workflows for selected changes, and scheduled, batch, CDX, or data-package processing for larger exchanges. Workflows can preserve pagination or package checkpoints, map vendor objects to canonical models, and reconcile missed or delayed asynchronous updates.

How are errors, retries, and duplicate operations handled?

Martini workflows can classify authentication, validation, business, throttling, mapping, and downstream failures, then apply bounded retries to transient errors. Correlation identifiers, deterministic upsert keys, idempotency state, and duplicate checks are important for Sales orders, Customers, payments, and unknown-timeout scenarios.

Can Martini expose a normalized API for Microsoft Dynamics 365 Commerce?

Yes. Martini can expose a REST API that accepts a canonical request, invokes the appropriate Commerce endpoint, applies validation and business rules, maps the response, and returns a controlled contract to downstream applications without exposing vendor-specific details.