Skip to content
Built project · WooCommerce to Xero automation

Sell it once.Never enter it twice.

A WooCommerce order shouldn’t create a second job in Xero. This build turns the sale, payment, discounts, shipping, fees and refunds into the right accounting records automatically, with the trail back to the original order intact.

A good sales day shouldn’t create a bad bookkeeping day.

Before the automation

Every sale was creating another job.

The more the store sold, the more somebody had to re-enter, check and sort out later. Not especially helpful when the business was trying to grow.

Every completed order created another job: rebuild the same sale in Xero.

A busy sales day became a bookkeeping backlog before anyone had even looked at the awkward orders.

Discounts, coupons, shipping and fees made “just enter the invoice” anything but simple.

Refunds and replayed events created more chances for mismatched or duplicated records.

The connection

WooCommerce sells it. Xero records it.

WooCommerce still holds the sale. Xero still holds the accounts. The automation keeps the two records tied together.

What can be reused

The standard order can run automatically.Each store still needs its own setup.

The basic order flow can be reused. The accounts, tax, payment gateways and plugins still need checking for each store before anything goes live.

The build already knows how to

  • Create or update Xero items from published WooCommerce products
  • Keep WooCommerce products and Xero items locked together by SKU
  • Create one authorised invoice, record its payment and save the Xero IDs back to the order
  • Turn confirmed refunds into Xero credit notes and refund payments
  • Check for an existing record before creating another one

Each store still needs its own

  • Its own WooCommerce, Xero and Make connections, including the store webhook
  • The correct organisation, bank, revenue, shipping, fee and tax setup
  • Store-specific tax, gateway and plugin checks
  • A plugin-specific adapter if the store uses deposits or instalments
  • Testing with that store before anything is switched on

When the tidy version gets messy

The awkward bits were part of the build.

Discounts, shipping, fees, refunds and replayed events are where this job gets messy. Ignore them and somebody ends up cleaning it up in Xero later.

Coupons stay visible.

Line discounts are carried across and coupon codes are retained in the Xero invoice reference.

Shipping and fees stay separate.

They become their own invoice lines instead of disappearing into the product total.

Refunds follow the money back.

A confirmed WooCommerce refund creates the matching Xero credit note and refund payment.

Replays don’t create duplicates.

The build checks Xero before it creates anything, so a replayed order doesn’t make the same records twice.

Still rebuilding every WooCommerce sale in Xero?

Show me how sales, payments and refunds are handled now. I’ll sort out the bit between WooCommerce and Xero so the same order isn’t rebuilt twice.

Lunaris Workflow Solutions

Follow me

© 2026 Lunaris Workflow Solutions·Perth, Australia·ABN: 92 651 795 682·Privacy·Terms·Cookies
Made with 💜 by Me!