Integrations

WooCommerce Business Central integration: what syncs and how

A practical guide to connecting WooCommerce or a custom store to Microsoft Dynamics 365 Business Central: the data map, the API, the limits and the mistakes that cost weeks.

By RaaoPublished 8 min read

Short answer: what does a WooCommerce Business Central integration do?

A WooCommerce Business Central integration keeps your online store and Microsoft Dynamics 365 Business Central in step: items, stock and prices flow from Business Central to the store, orders and new customers flow back, and invoices and shipment status return to the customer's account. Nobody retypes an order, and the website never sells stock the warehouse does not have.

It is built on the Business Central API v2.0 (OData REST), sometimes extended with custom API pages. The hard part is not calling the API; it is deciding which system owns each piece of data and how often it moves.

Why does connecting Business Central and a webshop matter?

Without integration, someone exports stock to a spreadsheet, imports it into WooCommerce and then copies each order into a sales order by hand. It works at 20 orders a week. At 50 orders a day it means late orders, wrong stock and invoices that do not match what the customer paid.

The pain usually shows up in three places:

  • Overselling. Stock in the store is hours out of date, so customers buy items that sold in the showroom this morning.
  • Price drift. Finance changes prices or customer discounts in Business Central and the website shows the old ones.
  • Double entry. Orders, customers and payments are typed twice, with typos in item numbers and VAT numbers.

If you sell B2B, the stakes are higher: each customer may have its own price group, payment terms and credit limit, and those live in Business Central.

Which integration options exist for Business Central?

Option When it is enough Watch out for
Third-party connector (AppSource or WooCommerce plugin vendor) Standard catalogue, one company, simple prices Field mapping is fixed; customer-specific prices, locations and variants are often limited
Integration platform / iPaaS or Power Automate A few simple flows, low volume The Power Automate connector cannot process bulk collection notifications (Microsoft Learn); costs grow with volume
Custom integration on API v2.0 Multiple locations, B2B price lists, variants, custom stores You need a team that understands both WooCommerce and Business Central
Custom integration plus custom API pages (AL extension) Data the standard API does not expose (e.g. price list lines, stock per location; neither appears in the API v2.0 reference) Needs a Business Central developer or partner to deploy the extension

Be honest about scope. If you have one warehouse, a few hundred items and no customer-specific prices, a good connector will serve you well. Custom work pays off when your business rules live in Business Central and the connector cannot see them.

What syncs, which direction, how often

This is the data map we start every Business Central project with.

Data Direction Frequency Business Central side
Items (name, number, category, unit, GTIN) BC → store Every 15–60 min, or webhook on items items, itemCategories, unitsOfMeasure
Variants (size, colour) BC → store With items itemVariants
Stock BC → store Every 5–15 min, plus reservation on order inventory on items; per location via a custom API or query
List prices BC → store Hourly or nightly unitPrice on items
Customer prices and discounts (B2B) BC → store Nightly, plus on change Price lists, usually via a custom API page
Customers Store → BC (new), BC → store (B2B accounts) On first order / nightly customers
Orders Store → BC Within a minute of payment salesOrders and salesOrderLines
Payment status Store → BC With the order or on capture Payment method and reference on the order, or customerPaymentJournals
Shipments BC → store Every 15–30 min salesShipments
Invoices (status and PDF) BC → store Every 15–60 min, or webhook on salesInvoices salesInvoices with pdfDocument
Credit memos / returns BC → store Daily salesCreditMemos

Two rules make this table work. First, every record has exactly one owner. Second, the integration stores the Business Central ID (the GUID id field) on the WooCommerce product, customer and order, so updates never rely on matching names.

Step by step: connecting WooCommerce to Business Central

1. Set up authentication properly

Business Central online uses OAuth 2.0 through Microsoft Entra ID. Register an app in Entra, grant it the Business Central API permission, then add it on the Microsoft Entra Applications page in Business Central with only the permission sets it needs. Microsoft's web services authentication guide states that web service access keys (basic authentication) are deprecated and not supported for Business Central online, so plugins that still ask for a username and key are out of date.

API calls go to https://api.businesscentral.dynamics.com/v2.0/{tenant}/{environment}/api/v2.0/companies({id})/.... Build and test against a sandbox environment first.

2. Clean the data in Business Central

Every item you sell online needs a unique number, a sales unit of measure, a price and, ideally, a GTIN. Customers need a customer posting group, a VAT business posting group and a payment terms code. Missing setup is the source of most posting errors later.

3. Map the order flow

Decide when an order is sent (after payment, or immediately for bank transfer), which customer it uses (a named customer or a generic web customer per country), and how shipping fees and vouchers are represented. Shipping is usually a G/L account or resource line; discounts belong on the line, not as a negative item.

4. Respect the API limits

Microsoft documents the operational limits for Business Central online. Per user, Business Central online allows 6,000 OData requests in a 5-minute sliding window, 5 concurrent requests and up to 100 open connections (95 queued); per environment, a page returns at most 20,000 entities and a $batch request holds up to 100 operations. Exceeding the rate, connection or queue limits returns 429 Too Many Requests; a request that waits in the queue for more than 8 minutes returns 503, and an operation running longer than 8 minutes returns 408. Use $batch, $filter=lastModifiedDateTime gt ... for delta syncs and retries with back-off. See Microsoft's operational limits.

5. Use webhooks where they help

Webhook subscriptions are created with a POST to /api/v2.0/subscriptions, require a handshake with a validationToken, and expire after three days unless renewed with a PATCH. If more than 1,000 records change within 30 seconds, Business Central sends one collection notification instead of individual ones. The webhook documentation lists the supported entities. items is on the list, but there is no standard API resource for stock per location (the v2.0 itemLedgerEntries resource has no location field), so keep a scheduled job for stock.

6. Plan for the errors you will see

  • A validation error saying the item number on the sales line cannot be found in the related Item table. The item number on the website does not exist or is blocked in Business Central.
  • 429 Too Many Requests during a full catalogue sync. Batch and slow down.
  • A concurrency error when the @odata.etag sent in the If-Match header is missing or stale. Re-read the record and retry.
  • 401 Unauthorized after a client secret expires. Put the secret expiry date in a calendar.
  • Posting errors such as a missing posting group or VAT setup on a new web customer. Fix the customer template, not each order.

Log every failed call against the WooCommerce order so staff can see and resend it.

Pre-launch checklist

  • Entra app registered, permissions limited, secret expiry noted
  • Sandbox environment used for all testing
  • Ownership agreed for every field (items, prices, stock, customers, orders)
  • Business Central id stored on products, customers and orders
  • Item numbers, units and prices complete for all online items
  • Customer template with posting groups and payment terms
  • Shipping fee and discount mapping agreed with finance
  • Delta sync using lastModifiedDateTime, plus a nightly full check
  • Retries with back-off for 429 and 503
  • Webhook renewal job scheduled before the three-day expiry
  • Failed syncs visible on the order with a resend button
  • Shipment and invoice status shown in the customer account
  • Load test with a full catalogue sync before Black Friday

Shipping deserves its own flow; our guide to WooCommerce shipping label automation covers how shipment data moves between the store, the carrier and the ERP.

What does a Business Central integration cost?

Scope Typical timeline Estimated cost
Configure a third-party connector 1–2 weeks Connector licence plus €1,000–€3,000 setup
Custom sync: items, stock, prices, customers, orders 4–8 weeks €5,000–€12,000
Full two-way sync with locations, B2B price lists, invoices, shipments, returns 2–4 months €12,000–€30,000+

These are estimates based on typical projects, not a price list; your Business Central partner's time for custom API pages comes on top. At Raao, ERP integration is part of the Enterprise ecommerce package or a module added to an existing store, and larger projects start with a paid discovery workshop that produces a specification and a fixed quote. Every project starts with a free 30-minute call; you can book it here. We also build CRM and operations apps on top of Business Central; see our custom software page and the CRM and ERP hub we built for a retail group.

How we did it for the Miele partner store

For the Miele partner store, Business Central is the centre of the operation, not an export target:

  • Two-way Business Central integration for products, stock per location, orders, invoices and shipments.
  • Orders, invoices and loyalty discounts run through Business Central, so the store and finance work from the same numbers.
  • Delivery estimates for out-of-stock items via Tradeplace, combined with stock across several locations.
  • One platform for online, in-store and B2B sales, including a Miele Professional B2B shop with quote requests.

The result the client cares about: accurate stock and delivery dates shown to every customer, and orders and invoices that reach the ERP without retyping. We use the same approach for furniture retailer Kuiba, where orders are pushed to Business Central through the client's CRM layer.

business-centralwoocommerceerpintegrations

Frequently asked questions

Keep reading

Let us look at your setup together

Book a free 30-minute call and leave with a clear next step and a realistic price range.

Prefer writing? Send us a brief
  • 30 minutes, video call, no obligation
  • Talk directly with the engineers who would build it
  • Honest view on scope, timeline and budget

The calendar is provided by Microsoft Bookings, which may set its own cookies.