WooCommerce Integration ยท Xero

WooCommerce Xero Integration.

Written by Nicholas Duell, founder of Duelling Pixels — 15+ years building WooCommerce stores and the integrations that run them. Last updated: June 2026.

The short version

If you run a WooCommerce store and do your books in Xero, there are three versions of you. The first re-keys every order by hand and loses hours a week to it. The second installed a sync plugin that worked for a while — until the duplicates, the unreconciled payouts, or the GST that doesn’t quite add up. The third has a sync that just works, and spends BAS time actually reviewing the numbers.

We get stores to the third version. Sometimes that’s configuring an off-the-shelf plugin properly — and we’ll tell you when it is, because it’s the cheapest path. Sometimes it’s repairing a sync that’s quietly been wrong for months. And when your setup involves multiple sales channels, a POS, or rules no plugin understands, we build the integration ourselves against the WooCommerce and Xero APIs.

Why connect WooCommerce to Xero properly

Manual data entry isn’t just slow — it’s the most common source of bookkeeping errors we see in Australian stores. Every hand-typed invoice is a chance for a transposed digit, a missed order, or a GST line that doesn’t match what the customer actually paid. Multiply that by hundreds of orders a month and your accountant is reconciling noise.

A properly built sync means every WooCommerce order becomes a Xero invoice automatically, payments are matched to the right clearing accounts, GST is mapped so your BAS comes out of Xero ready to check rather than rebuild, customer contacts stay deduplicated, and stock levels agree with reality. The payoff is measured in hours per week — and in the conversations you stop having with your bookkeeper.

What syncs — and where it goes wrong

Orders and invoices

Every order becomes a Xero invoice with line items, shipping, and discounts intact. The decisions that matter: when the invoice is created (on order or on payment), how order statuses map, and what happens to failed and cancelled orders. Get these wrong and your revenue figures drift from reality.

Payments, payouts, and gateway fees

The classic trap: Stripe deposits $964.55 into your bank, but the invoices say $1,000 — the missing $35.45 is gateway fees, and your bank rec never balances. A correct setup uses clearing accounts so gateway fees post as expenses and payouts match to the cent. This is the single most common thing we fix.

GST and tax mapping

Australian stores need GST flowing into the right tax rates in Xero — including GST-free items, mixed carts, and the rounding differences between how WooCommerce and Xero calculate tax per line. Done right, your BAS becomes a review job instead of a rebuild job.

Customers and contacts

Without a deduplication strategy, every guest checkout becomes a new Xero contact and your contact list turns to sludge. We set matching rules — email-based, with sensible fallbacks — so repeat customers stay one contact with full history.

Products, inventory, and SKUs

Inventory sync needs one honest decision first: which system is the source of truth? Usually it’s WooCommerce or your POS, not Xero — Xero’s inventory is deliberately simple. Clean SKU mapping between systems is the unglamorous work that makes everything else reliable.

Refunds and credit notes

The area most plugins quietly get wrong — especially partial refunds. A refund in WooCommerce should produce a matching credit note in Xero, allocated against the original invoice, with GST reversed correctly. If your refunds have been syncing as nothing at all, you’re not alone.

Three ways to integrate — and how we choose

1. An off-the-shelf plugin, configured properly

For a single-currency store with a straightforward catalogue, a quality sync plugin — like the official Xero extension or MyWorks — is often all you need. Plugin licences run roughly $100–$400 a year in the Australian market. Most “broken” plugin syncs we see were never configured correctly in the first place: wrong account mappings, no clearing accounts, default tax settings. Configuration is the product.

2. A summary-level sync for high-volume stores

Stores doing thousands of orders a month often don’t want every order as a separate Xero invoice — it bloats the file and slows everything down. Tools like A2X post daily summaries that match payouts exactly, keeping Xero clean while the detail stays in WooCommerce where it belongs.

3. A custom integration against the APIs

When you’re selling through WooCommerce and a POS, juggling multiple entities or currencies, or have rules no plugin anticipates — that’s when we build. A custom integration does exactly what your business needs and nothing else, runs on your infrastructure, and isn’t hostage to a plugin author’s roadmap. We’ve built these flows alongside Square, Lightspeed, Shippit, and Afterpay for Australian retailers.

Our recommendation rule is simple: the cheapest option that genuinely fits. Often that’s a plugin and two hours of proper configuration — and if that’s your answer, that’s what we’ll tell you.

Already integrated — but broken?

Most of our Xero work isn’t greenfield. It’s stores where the sync has been quietly wrong for months: duplicate contacts in the thousands, payouts that never reconciled, GST mapped to the wrong rate since setup, or a sync that silently stopped in March and nobody noticed until BAS time.

The repair process is methodical: audit what the sync has actually been doing, fix the mappings and the root cause, backfill the gap without creating duplicates, then verify against your bank statements. You don’t need to start over, and you don’t need to switch plugins — you need someone who can read both systems and the code between them. That’s the advantage of using WooCommerce developers for integration work: when the fix needs code, we write it.

We’re based in Melbourne and work with stores across Australia — the work is remote-friendly by nature. Local and want to talk it through in person? Start with our Melbourne WooCommerce developer page.

Stores that run on our work.

Verified results from Google Analytics and Search Console — from Australian stores we build, integrate, and grow.

+50.1%

SESSIONS YEAR-ON-YEAR — MENSWEAR

A South Yarra menswear and formal hire business where organic visitors engage at 70.3% — well above industry norms.

51/76

KEYWORDS ON PAGE 1 — SEAFOOD

An online seafood delivery business outranking the Queen Victoria Market, with an average search position of 4.9 across 76 tracked keywords.

#1

FLAGSHIP SEARCH TERM — PRINTER

A Melbourne specialty printer with Page 1 presence on every core commercial keyword, competing against national print chains.

โ˜…โ˜…โ˜…โ˜…โ˜…

“Nick has been managing my WooCommerce account for many years now helping me to improve my SEO and overall visibility of my website. Nick is always looking for ways to make things better and more efficient for me. Nick won me over with his honesty, trustworthiness and drive to help.”

Luisa (Bentleigh Health Foods)

Google Review

โ˜…โ˜…โ˜…โ˜…โ˜…

“We employed Duelling Pixels about 1.5 years ago when we re-located and re-branded our business. We worried about losing our online presence and customers being confused with our name change. So they created a fresh new look for our website and handled everything. Couldn’t be happier.”

Costume Wonderland

Google Review

WooCommerce + Xero questions, answered straight

How much does a WooCommerce Xero integration cost?

In the Australian market: sync plugin licences run roughly $100–$400 per year plus configuration; summary-level tools like A2X are subscription-based; and custom API integrations typically range from $1,500 for targeted fixes to $10,000+ for multi-system builds. We quote fixed-price after scoping — and if a configured plugin is all you need, that’s what we’ll recommend.

Which Xero plugin is best for WooCommerce?

It depends on your store, not on a ranking. The official Xero extension suits simple, single-currency catalogues. MyWorks offers deeper mapping control. A2X is right for high-volume stores that want payout-matched summaries instead of per-order invoices. The honest answer is that configuration matters more than which plugin you pick — most broken syncs we fix were good plugins set up badly.

Will it handle Australian GST and my BAS?

Yes — if the tax mapping is done correctly. That means WooCommerce tax classes mapped to the right Xero tax rates, GST-free items handled, and the per-line rounding differences between the two systems accounted for. Done right, your BAS figures come out of Xero ready to review rather than rebuild.

Why doesn’t my bank reconciliation match my sales?

Almost always gateway fees. Stripe, PayPal, and Afterpay deposit your takings minus their fees, so payouts never equal invoice totals. The fix is a clearing-account structure: payments post to a clearing account, fees post as expenses, and the bank deposit matches to the cent. This is the most common single repair we make.

Should inventory live in Xero or in WooCommerce?

Usually WooCommerce (or your POS if you have one) — Xero’s inventory is deliberately basic and isn’t built to be a source of truth for an active store. We set one system as the master and sync one-way wherever possible. Two systems both allowed to edit stock is how phantom inventory happens.

Can you import our historical orders into Xero?

Yes. Backfills need care — deduplication against anything already synced, correct dating so reporting periods stay truthful, and agreement with your accountant about how far back to go. We’ve backfilled multi-month gaps left by silently failed syncs without creating a single duplicate.

What happens with refunds and partial refunds?

A refund in WooCommerce should create a credit note in Xero, allocated against the original invoice, with GST reversed correctly — including partial refunds of individual line items. This is the area off-the-shelf syncs most often get wrong, and it’s worth testing on day one rather than discovering at BAS time.

We also sell through a POS — can everything sync to one Xero file?

Yes, and this is exactly when integration work earns its keep. WooCommerce plus Square or Lightspeed plus Xero means deciding where inventory lives, which system owns the customer record, and how each channel’s payouts reconcile. We’ve built these multi-channel flows for Australian retailers — it’s a design problem first, a code problem second.

Our existing sync is a mess. Do we have to start over?

Almost never. The repair path — audit what the sync actually did, fix the root cause, backfill the gap, verify against bank statements — preserves your history and your plugin investment. Starting over is occasionally cleaner, but it’s the last resort, not the sales pitch.

Do you only work with Melbourne businesses?

No — integration work is remote by nature, and we work with WooCommerce stores across Australia. We’re Melbourne-based (Brighton), so local stores can talk it through face to face, but the process and the result are the same everywhere.

Get Your Store and Your Books Talking.

Tell us how your store and Xero are (or aren’t) connected today. We’ll come back with a straight assessment — the cheapest option that genuinely fits, what it involves, and a fixed quote. No obligation, no hard sell.