Shopify to Sage/Xero: Fixing Sync Failures
April 4, 2026Connecting Shopify to Sage/Xero: Why Syncing Fails and How to Fix It
For many South African e-commerce businesses, the "dream" is simple: An order is placed on Shopify, and it magically appears as an invoice in Sage Cloud or Xero, with the correct VAT, stock levels, and payment matching.
The reality? Most "off-the-shelf" connectors create a nightmare of double-entries, tax miscalculations, and inventory desyncs. If you’ve ever had to manually fix 100+ invoices because the "sync failed," this guide is for you.
1. The "Tax Mismatch" Trap
In South Africa, VAT is 15%. However, Shopify and your accounting software often calculate VAT differently.
- Shopify: Calculates VAT at the line item level.
- Sage/Xero: Often calculates VAT at the subtotal level. The Fix: You must ensure your sync app (like Stock2Shop or OneSaas) is configured to map Shopify's "tax-inclusive" prices correctly to your accounting software’s tax codes. If you don't, you’ll end up with 1-cent rounding errors on every invoice—a nightmare for SARS compliance.
2. Inventory: The Battle for "Source of Truth"
Who owns the stock count? If you have a physical store and an online store, this is the #1 point of failure.
- The Sage-First Model: Sage is your master. When stock arrives at your warehouse, you capture it in Sage. Your sync app then "pushes" this to Shopify.
- The Shopify-First Model: You capture stock in Shopify, and it pushes to Sage. Senior Advice: For 90% of SA businesses, Sage/Xero should be the master. Your accounting software is designed for inventory management (GRVs, cost prices, etc.). Shopify is just a "sales channel." Ensure your sync is a "one-way push" from Sage to Shopify for stock levels.
3. The "COGS" Problem (Cost of Goods Sold)
Shopify is notoriously bad at tracking cost prices. If your sync app only moves the sale price and not the cost price, your profit/loss reports in Xero will be completely wrong. The Fix: Ensure your integration supports "COGS syncing." This allows Xero to automatically move the cost of an item from your "Inventory Asset" account to your "Cost of Goods Sold" account the moment a sale happens.
4. Payment Gateway Reconciliation
This is where most integrations fall apart. A R1,000 order comes in via Paystack. Paystack takes R30 in fees and settles R970 into your bank account. If your sync app creates a R1,000 invoice in Sage, you will never be able to reconcile it against the R970 bank entry. The Fix: Use a "Clearing Account." The invoice is marked as paid into a "Paystack Clearing Account." At the end of the week, you create a manual entry for the Paystack fees and move the net amount to your main bank account. This is the only way to keep your books clean.
5. Why "Stock2Shop" is the SA Gold Standard
While international apps exist, Stock2Shop is a South African company that understands our local nuances (SARS, local couriers, Sage 200/300 support). If you are running a complex operation, a local partner who can help with the initial mapping is worth every cent.
Conclusion
A broken sync is worse than no sync at all. It creates a false sense of security and a massive cleanup bill for your accountant. If your integration isn't 100% reliable, turn it off, fix your mappings, and start again.