Shopify logo
Business Central logo

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.

  1. 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.

  2. BC job queue

    Drives scheduled sync. Cadence and priority are tuned here, and it is where a sync that feels sluggish usually needs attention.

  3. AL extension for gaps

    Custom AL code for anything the connector will not map: bespoke fields, approval routing, non-standard tax handling.

  4. 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.

  5. 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.Quantity
  • line_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.