Microsoft Dynamics 365 Business Central and WooCommerce integration
Microsoft Dynamics 365 Business Central runs finance, inventory, and sales. WooCommerce runs the online store on WordPress. Connecting the two means a web order becomes a Business Central sales order or sales invoice without anyone re-keying it, and the matching customer is created or found in BC at the same time. In the other direction, item prices and stock levels from Business Central are written onto WooCommerce products so the storefront shows current pricing and inventory. ml-connector handles the very different authentication on each side and moves the data on the cadence you set.
What moves between them
Orders move from WooCommerce into Microsoft Dynamics 365 Business Central, becoming sales orders or posted sales invoices with their line items, totals, tax, and shipping, and the WooCommerce customer behind each order is created or matched as a BC customer first. WooCommerce order webhooks trigger this as orders are placed or updated, and a scheduled poll backfills anything a webhook missed. In the other direction, Business Central items move into WooCommerce as product price and stock updates, driven by BC item webhooks plus a periodic full reconcile. WooCommerce is the system of record for the storefront and BC is the system of record for finance and inventory, so each side owns its own data and ml-connector keeps the overlap aligned.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the WooCommerce side it sends the Consumer Key and Secret as HTTP Basic auth on every call, and on the Business Central side it requests an Entra ID client credentials token and refreshes it when a call returns 401, building the base URL from the stored environment name and company id. WooCommerce order and customer webhooks are verified by recomputing the base64 HMAC-SHA256 of the raw body against the webhook secret before anything is processed. Because a BC webhook notification carries no payload, ml-connector reads the changed item back over the API after each signal, and it renews every BC subscription before the three-day expiry so the item feed never silently stops. WooCommerce order numbers and BC document numbers are used as idempotency keys, since neither API offers an idempotency header, so a replayed webhook does not create a duplicate sales invoice. The WooCommerce SKU maps to the BC item number to line orders up against the right items. Real edge cases are handled: WooCommerce auto-disables a webhook after five failed deliveries, so the connector watches webhook status and alerts you; the WooCommerce key dies if its WordPress user is deleted, so a dedicated service user is expected; and BC throttling returns HTTP 429, which is met with exponential backoff. Every record carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A mid-sized consumer goods company, roughly 60 staff, sells direct to shoppers through a WooCommerce store and runs Microsoft Dynamics 365 Business Central for inventory, invoicing, and finance. Before the integration, a clerk exported web orders each morning and re-keyed them into BC as sales invoices, while the storefront showed prices and stock that lagged whatever finance had changed in BC, leading to oversells and pricing complaints. With Business Central and WooCommerce connected, each web order flows into BC as a sales invoice within minutes of being placed, the buyer is matched to a BC customer, and item price and stock changes in BC appear on the storefront automatically. The morning re-keying is gone and the store reflects real inventory.
What you can do
- Turn WooCommerce orders into Microsoft Dynamics 365 Business Central sales orders or posted sales invoices with line items, tax, and shipping.
- Create or match the BC customer behind each WooCommerce order so finance has the buyer on file.
- Push Business Central item prices and stock levels onto the matching WooCommerce products so the storefront stays current.
- Authenticate WooCommerce with its Consumer Key and Secret and Business Central with an Entra ID OAuth2 token, refreshed automatically.
- Act on WooCommerce order webhooks and renew the 3-day BC subscriptions, with retries and a full audit trail on every record.
Questions
- Which direction does data move between Microsoft Dynamics 365 Business Central and WooCommerce?
- Both directions, by record type. WooCommerce orders and the customers behind them move into Business Central as sales orders or sales invoices and BC customers. Business Central item prices and stock levels move out to the matching WooCommerce products. Each system stays the system of record for its own data and ml-connector keeps the shared fields in step.
- How does the integration handle Business Central webhooks that carry no data and expire?
- A Business Central webhook notification is only a change signal with a link to the resource, not the changed record itself, so ml-connector reads the item back over the API after each signal. BC subscriptions also expire after three days, so the connector renews them on a schedule before they lapse, which keeps the item price and stock feed from silently stopping.
- Can WooCommerce hold vendors, purchase orders, or GL accounts from Business Central?
- No. WooCommerce is an e-commerce store and has no vendor, purchase order, or general ledger objects. What it does expose is orders, products, customers, and refunds, so ml-connector maps BC items to WooCommerce products and brings WooCommerce orders into BC, while the chart of accounts and any AP stay on the Business Central side.
Related integrations
More Microsoft Dynamics 365 Business Central integrations
Other systems that connect to WooCommerce
Connect Microsoft Dynamics 365 Business Central and WooCommerce
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started