Sage 50 and WooCommerce integration
Sage 50 runs your bookkeeping on a Windows desktop, while WooCommerce powers your online store. Connecting them keeps your store inventory and pricing aligned with Sage 50, and moves orders from your website back into Sage 50 for invoicing and payment tracking without manual re-entry. ml-connector polls Sage 50 for customer and price changes, accepts order webhooks from WooCommerce, and writes each one back to Sage 50 as a sales invoice on a schedule you control.
What moves between them
Orders flow from WooCommerce into Sage 50. When an order is placed or updated on the storefront, WooCommerce sends a webhook notification; ml-connector receives it and posts the order into Sage 50 as a sales invoice tied to the customer. Customer records and pricing flow from Sage 50 to WooCommerce. ml-connector polls Sage 50 for new and updated customers, then pushes them to WooCommerce so the store has current mailing addresses and contact details, and polls inventory items and prices to keep product listings up to date.
How ml-connector handles it
ml-connector runs on a Windows machine where it can connect to the Sage 50 SDK and stores both credential sets encrypted. On the Sage 50 side, it uses the supplied ApplicationID and CompanyPath (US edition) or DataPath (UK edition) plus a Windows username and password to open an SDK session and query for modified records by LastModifiedDate. On the WooCommerce side it stores the API Key Consumer Key and Consumer Secret and uses HTTP Basic Auth to authenticate REST calls to the unique customer domain. Because Sage 50 is pull-only, ml-connector polls for new sales invoices and customers on a schedule, and because WooCommerce can push webhooks, ml-connector also listens for order and customer events and retries webhook delivery if the initial call times out or returns a transient error. Sales orders in WooCommerce are mapped to customers in Sage 50 by email or external ID, and if the customer does not yet exist in Sage 50, ml-connector creates it before posting the invoice. Refunds on WooCommerce orders are captured as credit notes in Sage 50. Every record carries an idempotency key so duplicate deliveries are safely ignored.
A real-world example
A small retail business runs Sage 50 for accounting on a Windows desktop in the office and uses WooCommerce for an online storefront on a shared host. Before the integration, when customers placed orders on the website, the owner exported them daily and re-entered them manually into Sage 50, a process that took an hour each morning and was prone to typos. New products had to be entered twice: once in Sage 50 with cost data, and again in WooCommerce with pricing. With Sage 50 and WooCommerce connected, each order appears automatically in Sage 50 within minutes of being placed, and product prices update from Sage 50 to the store weekly without manual entry, freeing the owner to focus on fulfillment instead of re-keying.
What you can do
- Sync WooCommerce orders to Sage 50 as sales invoices, mapped to the correct customer by email or external ID.
- Create new customers in Sage 50 automatically when an order arrives from a first-time WooCommerce buyer.
- Poll Sage 50 inventory items and prices, then update WooCommerce product listings to keep them in sync.
- Authenticate to Sage 50 via the Windows SDK using ApplicationID and CompanyPath, and to WooCommerce via API Key pairs over REST.
- Retry failed webhook deliveries on transient errors and track every sync in a full audit trail per order.
Questions
- How does ml-connector access Sage 50 if there is no cloud API?
- ml-connector runs on the same Windows machine where Sage 50 is installed and connects directly to the company data files using the Sage 50 SDK (the .NET SDK for US editions, or Sage Data Objects COM layer for UK editions). The integration user provides the ApplicationID and CompanyPath or DataPath plus their Sage 50 Windows credentials, and ml-connector opens a session to query and write records.
- Does WooCommerce need to push orders, or does ml-connector pull them?
- WooCommerce can push orders via webhooks, which is faster, but ml-connector can also poll if webhooks are not enabled or have been disabled due to repeated failures. The integration accepts whichever approach works for your store setup.
- What happens if a new customer places an order on WooCommerce before they exist in Sage 50?
- ml-connector checks if the customer exists by email or external ID. If not, it creates the customer record in Sage 50 first, then posts the order as a sales invoice. This ensures orders always land against a valid customer in the GL.
Related integrations
More Sage 50 integrations
Other systems that connect to WooCommerce
Connect Sage 50 and WooCommerce
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started