Skip to main content
Back to Blog
xerosagemigrationautomationaccountingshopifycase-study

How We Migrated a Business from Sage to Xero in One Day (And Saved £4,000/Year)

Drakon Systems··7 min read
Share:

This morning, one of our clients was running Sage Desktop at £250/month and paying £150/month for Tradebox to sync Shopify orders. By this afternoon, they were on Xero at £60/month with a custom-built Shopify integration that costs nothing. That's £340/month — over £4,000 per year — back in the business.

Here's exactly how we did it.

The Starting Point

The business is a UK-based e-commerce company selling professional hair and beauty products. Their setup:

  • Sage Desktop (UK) — £250/month for accounting
  • Tradebox — £150/month to sync Shopify orders to Sage as invoices
  • Shopify — 750+ products, 39,000+ historical orders
  • 2+ years of accounting data (November 2023 to February 2026)

Total monthly cost for accounting software: £400/month.

The pain points were familiar to anyone who's used Sage Desktop:

  • Expensive for what it does
  • Desktop-only (no cloud access)
  • Required a separate paid connector (Tradebox) for e-commerce integration
  • Clunky reporting compared to modern alternatives

The goal: switch to Xero, eliminate Tradebox, and have everything running by end of day.

Step 1: Migrate the Data (Morning)

For the heavy lifting — chart of accounts, contacts, invoices, journals, payments — we used Movemybooks. They specialise in Sage-to-Xero conversions and handle the complex mapping between the two systems.

The migration covered:

  • 306,721 journal records
  • 102,359 header records
  • 696 traders (customers and suppliers)
  • 205 chart of accounts entries
  • 100 tax codes

We started the conversion in the morning. Movemybooks processed everything in about 3 hours — a fully automated, hands-off process.

What Movemybooks Handles Well

  • Chart of accounts mapping from Sage nominal codes to Xero accounts
  • Historical transactions, journals, and bank entries
  • Customer and supplier contacts with addresses
  • Invoice and credit note allocation (runs in background after main conversion)

What Needs Manual Attention Afterwards

No migration tool is perfect. Here's what required post-conversion work:

  • VAT/Tax codes: Default tax rates on accounts don't survive the migration. We used the Xero API to set the correct tax type (OUTPUT2, INPUT2, etc.) on all 169 accounts in one batch — took about 2 minutes programmatically.
  • Bank reconciliation: Connect your bank feed in Xero and reconcile. Movemybooks can't transfer the reconciled status of individual transactions.
  • Historic VAT returns: Xero doesn't know which transactions were already included in filed VAT returns. You need to mark previous periods as filed so future returns are accurate.
  • Invoice-to-payment links: A known Sage limitation — some links between invoices and payments don't survive the export. These show as "Link Removed" in the migrated data. Movemybooks continues allocating these in the background for a day or two after conversion.

Step 2: Build the Shopify Integration (Afternoon)

This is where the real savings happen. Instead of paying £150/month for Tradebox, we built a custom Shopify-to-Xero sync.

The script is straightforward:

  1. Pull paid orders from Shopify via the Admin API
  2. Map each order to a Xero sales invoice — customer details, line items, shipping, VAT
  3. Create the invoice in Xero via the Accounting API
  4. Track what's been synced to avoid duplicates

The Mapping

Each Shopify order becomes a Xero invoice with:

| Shopify Field | Xero Field | |---|---| | Order number (e.g. B40479) | Invoice number (SH-B40479) | | Customer name + email + address | Contact (auto-created if new) | | Line items (product, qty, price) | Line items with account code | | Shipping line | Additional line item | | Order date | Invoice date and due date | | Country code | Tax type (OUTPUT2 for UK, ZERORATEDOUTPUT for exports) |

Handling VAT Correctly

This is where most DIY integrations go wrong. Shopify stores prices inclusive or exclusive of VAT depending on your settings, and different countries have different tax treatments.

Our sync handles:

  • UK orders: 20% VAT (OUTPUT2)
  • EU orders: Zero-rated (reverse charge)
  • Rest of world: Zero-rated export
  • Prices exclusive of tax: Xero line amounts set to "Exclusive" with the tax type applied on top

Duplicate Prevention

The script maintains a state file tracking which orders have been synced. Before creating an invoice, it also checks Xero for an existing invoice with the same number. Belt and braces — you never get duplicate invoices even if the script runs multiple times.

Running It

The sync runs automatically twice daily (8am and 6pm) via a scheduled task. It processes new orders since the last run, creates the invoices, and logs the results. A typical daily run takes under 30 seconds for 5-10 orders.

For the initial catchup, we synced all orders from the day after Sage's last data (10 February 2026 onwards). Seven invoices, all created successfully in Xero within seconds.

Step 3: Set Up the Chart of Accounts (Same Afternoon)

The Sage migration brought over 169 accounts, but none of them had default tax codes set. This matters because when you create transactions manually in Xero, it uses the account's default tax type to pre-fill the VAT treatment.

We scripted this using the Xero API:

  • Sales accounts (4000-4004): OUTPUT2 (20% VAT on income)
  • EU Sales (4002): EC reverse charge
  • Export Sales (4001, 4003): Zero-rated
  • Cost of sales & overheads: INPUT2 (20% VAT reclaim)
  • EC Purchases: Reverse charge input
  • Wages, salaries, pensions: No VAT
  • Bank, equity, liability accounts: Skipped (no VAT applicable)

86 accounts updated in one batch. Doing this manually in the Xero UI would have taken an hour of clicking through individual account settings.

The Result

| | Before | After | |---|---|---| | Accounting software | Sage Desktop (£250/mo) | Xero (£60/mo) | | E-commerce connector | Tradebox (£150/mo) | Custom sync (£0/mo) | | Monthly cost | £400/mo | £60/mo | | Annual cost | £4,800/yr | £720/yr | | Annual saving | | £4,080/yr |

Beyond the cost savings:

  • Cloud access — Xero works from anywhere, not just the office PC
  • Real-time bank feeds — automatic transaction matching
  • Better reporting — Xero's dashboard and reporting is genuinely better than Sage Desktop
  • API-first — everything we did today was possible because Xero has a proper API. Sage Desktop doesn't.
  • No connector dependency — if Tradebox raises prices or shuts down, it doesn't matter any more

Could You Do This Yourself?

The Movemybooks conversion? Absolutely — it's a self-service tool. You upload your Sage backup, pay the one-off fee, and it handles the conversion.

The Shopify integration? That depends on your technical comfort level. The Xero and Shopify APIs are well-documented, and the mapping logic isn't complicated. If you're comfortable with Python and APIs, you could build this in a day.

If you'd rather not, that's what we're here for. At Drakon Systems, we build automation tools that handle the repetitive work — whether that's AI-powered invoice processing, e-commerce integration, or custom accounting workflows.

Key Takeaways

  1. Sage-to-Xero migration doesn't have to be painful. Tools like Movemybooks handle the heavy lifting. Budget half a day for the conversion and post-migration cleanup.

  2. You're probably overpaying for connectors. If you're paying monthly fees for tools that just move data between two APIs, consider whether a custom solution makes more sense. The break-even point is often just 2-3 months.

  3. Automate the post-migration tasks. Setting tax codes, reconciling accounts, and verifying data can all be scripted. Don't spend hours clicking through UIs.

  4. Test before you switch. We ran a dry-run of the Shopify sync before creating real invoices. The first real invoice confirmed everything matched — line items, VAT, totals, customer details.

  5. The best time to switch is now. Every month you delay is another £340 (in this case) you're not saving.


Running a business on Sage and considering the switch to Xero? We've done this migration multiple times and can help. Get in touch for a free assessment of your setup.

Already on Xero and want to automate your invoice processing? Try our AI Invoice Importer — it's free for up to 15 invoices per month.

Want to save hours on invoice processing?

Try Drakon Invoice Importer free - 15 invoices/month, no credit card required.

Start Free Trial