Shopify B2B and Microsoft Dynamics 365: ERP Integration

Shopify B2B and Microsoft Dynamics 365: ERP Integration

Direct answer: integrating Shopify B2B with Microsoft Dynamics 365 Business Central first requires deciding which system is the source of truth for customers, products, prices, inventory and orders. Connecting two APIs without this map creates duplicates, conflicts and synchronization failures that are difficult to recover from.

Which data should be mapped between Shopify and Business Central?

I start with companies, locations, customers, items, variants, SKUs, price lists, availability, orders and operational states. For every entity I define a stable identifier, synchronization direction and which system is allowed to overwrite the other.

I do not synchronize every field by default. If a value is only needed for internal accounting it can remain in the ERP; if it is required by the Shopify catalog or checkout it must reach the store in a format Shopify actually supports.

Source of truth: who controls prices, inventory and customers?

The decision is made field by field. For example, the ERP can be authoritative for inventory and price lists while Shopify remains authoritative for the order generated at checkout. The important rule is to avoid two systems updating the same value without defined priority.

Documenting this map before development reduces loops and overwrites and makes it possible to understand which system should be corrected when a discrepancy appears.

B2B catalogs and pricing

Available B2B features depend on the Shopify plan and current configuration. Before replicating ERP price lists, I verify companies, locations, catalogs, quantity rules, terms and the pricing logic actually available in the merchant's context.

I do not display a price only in the frontend if cart, checkout or the final order applies different logic. Commercial pricing must remain consistent throughout the flow.

How I synchronize orders

I define when an order is ready for the ERP, the identifier linking both systems, which subsequent updates are allowed and how cancellations, notes, fulfillment states or other required events are handled.

The integration should be idempotent: receiving the same event twice must not create two orders. Errors and retries should be logged instead of being left to invisible manual attempts.

Inventory: webhooks, polling or scheduled synchronization?

The choice depends on volume, update frequency and the interfaces actually available. An event can trigger an update when a reliable mechanism exists; in other cases scheduled synchronization or batch reconciliation can be more robust.

I do not promise “real time” before verifying APIs, limits, queues and failure behavior. The right question is what maximum latency the business can accept.

How I handle errors and out-of-sync data

I plan logs, controlled retries, queues when needed and a reconciliation procedure. The system should answer simple questions: which record failed, why, how many times it was retried and which value is authoritative.

For critical flows I also add periodic checks comparing orders, inventory or prices between Shopify and the ERP instead of assuming that no errors means perfect synchronization.

When is a custom Shopify app needed?

If a maintained connector genuinely covers the process, I evaluate it before custom development. I build an app or dedicated service when proprietary mappings, specific B2B rules, intermediate systems or error handling are required beyond what a standard connector provides.

The architecture lives outside the theme: authentication, APIs, webhooks, queues and logging belong at the application layer.

Checklist before go-live

  1. source of truth defined for every entity;
  2. stable IDs across both systems;
  3. prices and inventory tested on real cases;
  4. each Shopify order created only once in the ERP;
  5. retries and failures simulated;
  6. reconciliation documented;
  7. monitoring sufficient to locate the point of failure.

I am Francesco Guiducci, a freelance Shopify expert and Shopify app developer. I work on Basic, Grow and Advanced plans and design integrations only around features genuinely available in the merchant's scope.

Updated September 6, 2026.

This site uses no cookies, analytics or advertising, so there is nothing to accept. The browser may store only your choice to pause animations, if you make it.