Skip to main content
Integration · Microsoft

Business Central to Shopify Integration

Microsoft ships a Shopify connector for Business Central. It is first-party, it is included with your BC online subscription at no extra license cost, it is preinstalled on new environments, and the source is public on GitHub.

In this article Talk to our experts

Start there. If it covers what you need, use it, and do not pay anyone to rebuild something Microsoft gives you.

That should not be a controversial thing for an agency to write, but of the pages competing for this term, most describe the connector's benefits at length without ever mentioning that it is free. The useful version of this page is the one that tells you exactly where the connector stops, so you can work out whether you need anyone at all.

What the connector actually does

It handles more than people expect. Product sync runs both ways and carries images, variants, barcodes, vendor item numbers, tags, metafields and translations. Inventory syncs across multiple locations. Customers and companies sync in both directions. Orders come in from your online store, from POS and from Shopify B2B channels. Fulfillments flow back. Shopify Payments payouts import. Posted sales invoices can be exported to Shopify so buyers can see them. It runs on the job queue in the background and it logs properly.

For a straightforward wholesale or DTC operation on BC online, that is a working integration and it costs you setup time rather than license fees.

Where it stops, in Microsoft's own words

This is the part nobody publishes, and it is all documented. These are not our opinions about the connector, they are the limits Microsoft writes down.

It is online only. On-premises Business Central cannot use the connector at all, which is a hard gate rather than a limitation, and it is the one scenario where a genuine custom integration is the only option.

It does not work with the Embed App, and it is incompatible with Dynamics 365 Sales and Supply Chain Management.

Orders with multiple lines of the same product will not be fulfilled. This is the one that catches distributors out, because a Buy X Get Y discount on identical products produces exactly that shape of order.

A line split across two locations collapses. If Shopify allocates two units from one location and three from another, Business Central receives a single sales order line with one location on it.

You cannot import orders that have been archived in Shopify.

If you run a US or Canadian localization with sales tax included in the product price, imported orders cannot be converted into sales documents, because Business Central does not support backward sales tax calculation.

Staff to salesperson mapping works on B2B stores only, salespeople cannot be exported from BC, and the mapping is not applied on posted invoice export.

Where tax is channel liable, the connector checks the first tax line only.

Auto Sync Orders is unavailable to a Delegated Admin, because it depends on the job queue.

Read that list against your own operation and you will usually know within ten minutes whether you need help.

The clock on the connector, which is the real reason to have a partner

The connector talks to Shopify's GraphQL Admin API, and both platforms move on their own schedules.

Each major Business Central release adopts the Shopify API version from three months earlier. The April 2025 release used the January 2025 API version; the October 2025 release used the July 2025 one. Shopify supports each API version for twelve months. Microsoft states the consequence plainly: the connector released in the October 2025 wave relies on API 2025-07, which is supported until 30 June 2026, and you must upgrade Business Central before that date to keep the integration working.

So there is a recurring deadline built into this, and it is set by two release calendars you do not control. That is a maintenance relationship, not a build project, and it is a far better reason to work with someone than a rebuilt connector would be.

There is a related design detail worth knowing, because it explains why the connector is built the way it is. Many of its internal codeunits are deliberately not public. Shopify deprecates API fields roughly every quarter, and keeping the internals private means Microsoft can absorb those changes without breaking extensions that partners have built on top. The public surface is a small, stable set: Shpfy Orders for marking paid and cancelling, Shpfy Product for pushing an item and getting its URL, Shpfy Metafields, plus integration events across orders, products, customers, inventory, shipping and returns, and extensible enums for stock calculation and customer mapping.

That architecture is a fairly direct instruction about how to work with this connector. You extend it at the documented points. You do not fork it.

Where the connector stops being enough

Two things decide whether a wholesale operation outgrows the native setup, and both showed up independently in every test we ran.

Pricing is the first. The connector maps Business Central price groups and line discounts onto Shopify catalogs and markets, which covers tiered and group-based pricing. It does not cover pricing that is computed rather than listed: negotiated contract pricing per account, rebate-driven pricing, effective dates on agreements, or anything resolved by an external rules engine. If your prices are a list, the connector handles them. If your prices are the output of a calculation, they have to be resolved somewhere that can calculate.

Mapping is the second. The connector matches customers by email or phone and B2B companies by tax or registration number. That is powerful and it is rigid. Distributors with messy customer masters, several buyers under one account, or accounts that exist in Shopify before they exist in BC will hit it.

Underneath both sits the throughput ceiling. Business Central online allows 6,000 requests in a five minute sliding window, and beyond that returns HTTP 429. Only five requests may run concurrently; queued requests that wait longer than eight minutes get a 503 rather than a 429, which is a different failure and often a confusing one. There is a cap of 100 connections and a request queue of 95, both returning 429, and an eight minute operation timeout returning 408. The concurrency number is the one that surprises people. Five is not many when a catalog refresh and a checkout are competing.

The ten minute fit check

Work through these against your own operation. If all of them are comfortable, the native connector is your answer and you do not need us.

Are you on Business Central online rather than on-premises. Is your pricing a list rather than a calculation. Does any account have a negotiated contract price, a rebate, or an agreement with an effective date. Do you sell in case packs or enforce minimum order quantities. Do you need net terms and credit limits to gate an order rather than describe it. Do you ever ship a line from two locations. Do you run promotions that could put the same product on an order twice. Do you have more than one buyer under a single account. Is your customer master clean enough to match on email or tax number. And who is going to watch the Shopify API version deadline.

What we build, when you need it

Live pricing resolution for accounts whose price is computed rather than listed, resolved in Business Central and rendered by Shopify, so nothing commercial is duplicated.

Extensions built at the connector's documented integration events and public codeunits, never a fork, so your customization survives Microsoft's quarterly absorption of Shopify API changes.

Company account and buyer login structures for accounts the standard mapping rules cannot resolve cleanly.

Sync scheduling designed around five concurrent requests and the five minute window, so a catalog job cannot starve a checkout.

Order handling for the documented gaps that apply to you, including the split-location case and same-product lines, with a held-order queue and replay rather than silent failures.

Ongoing ownership of the version upgrade deadline, which is the part that actually recurs.

Industries that run Business Central

Medical Supply and Dental Supply, where contract pricing decides what an account pays before the product does.

Beauty and Cosmetics, where professional and consumer channels run from one catalog.

Home Goods, where retail accounts and drop ship sit alongside a consumer store.

Sporting Goods, where dealer programs need pricing the connector was not built to express.

Business Central is one of four Dynamics products we connect to Shopify. The Microsoft Dynamics integration overview covers Finance and Operations, NAV and GP.

Ready to talk

Come with the fit check above already answered. If everything on it is comfortable, tell us and we will say so rather than selling you a project.

If some of it is not, book a strategy session, or start with a Blueprint, the paid discovery engagement that maps what the connector covers, what it does not, and the phased plan before development begins.

09 Common questions

Frequently asked questions

Is the Business Central Shopify connector free?

Yes. It is a first-party Microsoft connector included with your Business Central online subscription with no additional license fee, preinstalled on new environments and available from the marketplace for existing ones. Its source is published on GitHub. Partners charge for setup, extension and ongoing maintenance, not for the connector.

Should I use the native connector or build a custom integration?

Start with the native connector. It is the right default and it covers more than most people expect. The reasons to go beyond it are specific: you are on-premises, your pricing is computed rather than listed, or one of Microsoft's documented gaps lands on a workflow you depend on. Anyone recommending a custom build before checking those is selling you something.

Does the connector work with on-premises Business Central?

No. The connector is for Business Central online only. On-premises is the one situation where a custom integration is genuinely the only route rather than a preference.

What are the documented limitations?

Microsoft publishes them. Orders with multiple lines of the same product are not fulfilled. A line split across two locations arrives in Business Central as one line with one location. Archived Shopify orders cannot be imported. US and Canadian localizations with tax included in the price cannot convert imported orders into sales documents. Staff to salesperson mapping is B2B only and one way. Where tax is channel liable, only the first tax line is checked. The connector is also incompatible with the Embed App, Dynamics 365 Sales and Supply Chain Management.

Can it handle customer-specific contract pricing?

Only if that pricing is expressible as Business Central price groups and line discounts mapped to Shopify catalogs. Pricing that is computed, meaning negotiated per account, rebate-driven, date-effective or produced by a rules engine, is beyond what the native mapping expresses. That is the most common reason a wholesale operation needs work on top.

What are the API limits?

Business Central online allows 6,000 requests per five minute sliding window before returning 429, with a maximum of five concurrent requests. Queued requests that exceed eight minutes return 503 rather than 429. There is a 100 connection cap and a request queue limit of 95, both returning 429, and an eight minute operation timeout returning 408. The five concurrent request limit is usually the real constraint.

Why does the connector need maintenance if Microsoft maintains it?

Because two release calendars have to stay aligned. Each major Business Central release adopts the Shopify API version from three months earlier, and Shopify supports each version for twelve months. Microsoft's own example: the connector from the October 2025 wave relies on API 2025-07, supported until 30 June 2026, and Business Central must be upgraded before then. That deadline recurs, and someone has to own it.

Can the connector be customized safely?

Yes, at the documented extension points. The connector exposes a deliberately small public surface, including codeunits for orders, products and metafields, plus integration events and extensible enums. Many internal codeunits are intentionally private so Microsoft can absorb Shopify's quarterly API deprecations without breaking what partners build on top. Extending at those points survives upgrades. Forking the connector does not.

Talk to Our Experts →