Shopify + Business Central Integration
Business Central ships a first-party Shopify connector, which changes the economics of this project. Items, inventory, and prices flow out; orders and customers flow back as sales orders and customer records.
- mode:
- Bidirectional
- latency:
- Scheduled + near real-time
- maturity:
- Production-tested
what syncs
What syncs, which way, and how fast
Every row is a real data flow with a real trigger. The frequency column is what you should expect in production, not a best case.
Items
- dir:
- BC → Shopify
- frequency:
- Scheduled (job queue)
Native connector handles this. Item variants map to Shopify variants; item attributes need mapping configuration.
Inventory
- dir:
- BC → Shopify
- frequency:
- Every 10 to 15 min
Driven by the BC job queue, so cadence is limited by how aggressively you are willing to schedule it.
Pricing
- dir:
- BC → Shopify
- frequency:
- Scheduled
Price groups map to Shopify prices. Customer price groups need custom work for B2B catalogues.
Orders
- dir:
- Shopify → BC
- frequency:
- Near real-time
Creates a sales order or posted invoice depending on configuration. Decide which before go-live, because it changes your finance workflow.
Customers
- dir:
- Bidirectional
- frequency:
- Near real-time
Native connector maps Shopify customers to BC customers with configurable templates for new records.
Fulfillment
- dir:
- BC → Shopify
- frequency:
- Near real-time
Posted shipment closes the Shopify fulfillment and pushes tracking from the shipment record.
architecture
How it actually works
The honest starting point is that Microsoft already built most of this. The Shopify connector is a first-party BC extension, so the real work is configuration plus the gaps it does not cover.
Shopify Connector extension
First-party, included with BC. Covers items, inventory, prices, customers, orders, and shipments. Building this from scratch is money set on fire.
BC job queue
Drives scheduled sync. Cadence and priority are tuned here, and it is where a sync that feels sluggish usually needs attention.
AL extension for gaps
Custom AL code for anything the connector will not map: bespoke fields, approval routing, non-standard tax handling.
Middleware for third systems
Only needed once a 3PL, marketplace, or B2B portal joins. The connector is a two-party arrangement and does not orchestrate a wider stack.
Monitoring and alerting
The connector logs to BC but does not page anyone. We add external alerting so a stalled job queue is noticed before a customer reports it.
failure modes
What breaks, and what happens when it does
Every integration fails eventually. The difference between a good one and a bad one is whether it fails safely and tells you.
Job queue stalls silently
Inventory quietly stops updating and nobody notices until an oversell.
handling
The connector logs failures to BC but raises no alarm. We add heartbeat monitoring on last-successful-sync so a stalled queue pages someone within minutes instead of surfacing as a customer complaint.
Sales order vs posted invoice ambiguity
Finance expects invoices, operations expects pickable orders, and both are unhappy.
handling
This is a configuration decision with real workflow consequences, so we settle it in discovery with finance and operations together rather than accepting the default and reworking it later.
Item variant mapping gaps
Variants sync without options, or option names arrive in the wrong order.
handling
BC item variants and Shopify option structures do not map one to one. Dimensions are mapped explicitly and unmapped combinations are reported rather than guessed.
Tax setup mismatch
VAT or sales tax on the BC document does not match what Shopify charged.
handling
Shopify remains authoritative for tax charged, passed through to explicit BC tax groups rather than recalculated. Line-level rounding reconciliation keeps documents tying to the payout.
Customer template creating bad records
Thousands of B2C customers arrive with the wrong posting group or payment terms.
handling
Templates are configured before the first sync, with B2C typically consolidated behind a single web customer and only genuine B2B accounts getting individual records.
field mapping
A real slice of the mapping
This is an abridged Order → BC Sales Order mapping, shown so you can sanity-check it against your own system.
Order → BC Sales Order
shopify → business central
order.nameSales Header."External Document No."order.idShpfy Order Header."Shopify Order Id"line_item.skuSales Line."No."Via item mapping
line_item.quantitySales Line.Quantityline_item.priceSales Line."Unit Price"customer.emailCustomer."E-Mail"shipping_line.codeSales Header."Shipping Agent Code"
Connector defaults shown. Custom fields and B2B price group logic are where an AL extension usually becomes necessary.
implementation
Timeline and cost
typical duration
4 to 9 weeks
included in scope
- Shopify Connector configuration and mapping
- Job queue tuning and external heartbeat monitoring
- Customer template and posting group design
- Tax pass-through and reconciliation setup
- UAT in a BC sandbox and go-live support
- Handover documentation for your BC partner
what moves it up
- Custom AL extension work for unmapped fields
- B2B customer price groups and catalogues
- Multiple BC companies or legal entities
- Additional endpoints such as a 3PL or marketplace
- Historical order and customer migration
questions
Questions buyers actually ask
Does Business Central have a native Shopify connector?
Yes, and it genuinely works. Microsoft ships a first-party Shopify Connector extension included with Business Central, covering items, inventory, prices, customers, orders, and shipments. This makes BC one of the cheapest ERPs to connect to Shopify. Start from the connector and only pay for the gaps.
If the connector is free, what are we paying you for?
Configuration decisions with lasting consequences, and the gaps. Whether orders become sales orders or posted invoices, how customer templates and posting groups are set, how tax reconciles, how variants map, and how you find out when the job queue stalls. The connector provides the pipe; the project is deciding what flows through it correctly.
How close to real-time is Business Central sync?
Orders are near real-time because they are event-driven. Inventory and pricing run on the BC job queue, so realistically every ten to fifteen minutes. You can schedule more aggressively, but heavy job queue load competes with your BC users, so a small availability buffer on fast movers is usually the better trade.
Should Shopify orders create sales orders or posted invoices?
Sales orders if warehouse staff need to pick and ship from BC, since that keeps the fulfillment workflow intact. Posted invoices suit digital or fully outsourced fulfillment where no picking happens in BC. Decide with finance and operations in the same room, because reversing it after go-live means reworking both workflows.
Can we handle B2B pricing with the native connector?
Only partially. Standard price groups map fine, but customer-specific price groups and per-company B2B catalogues need custom AL work plus Shopify B2B, which requires Plus. This is the most common thing that extends the scope and timeline of a Business Central project.
What happens if the connector stops syncing?
It logs the failure in BC and otherwise stays quiet, which is the real risk: a stalled job queue can go unnoticed for hours. We add external heartbeat monitoring on last-successful-sync per object so someone is paged in minutes rather than finding out from an oversell.
shopify + business central
Use the native connector properly
Most Business Central projects need configuration and monitoring, not a custom build. Tell us your setup and we will tell you which one you actually need.