Integration combo

Shopify to Sage 200 integration

Shopify is the storefront. Sage 200 is where the UK back office runs: nominal ledger, stock, purchase orders, VAT, the whole accounting and operational stack. The integration moves orders, customers and payments out of Shopify into Sage 200 as proper sales documents, and pushes stock and pricing back the other way so the storefront reflects the warehouse rather than wishful inventory. We design, build and support Shopify-to-Sage 200 integrations as a Patchworks Partner Agency, with the SLA picking up the moment the integration goes live.

Flow shape

Order sync: Shopify to Sage 200

How a Shopify order lands as a Sage 200 sales document, with VAT, nominal codes and customer ledger entries in the right place from the first run.

  1. Trigger Shopify Order created order/create webhook
  2. Extract Patchworks Ingest payload queue, dedupe, normalise
  3. Transform Patchworks Resolve VAT codes rate, group, reverse-charge
  4. Decision Patchworks Customer exists? Sage account lookup
  5. Transform Patchworks Map to sales order nominal codes, analysis fields
  6. Action Sage 200 Post sales order via Sage API
  7. Writeback Shopify Tag order store Sage document number

Illustrative only. The diagram above shows how an integration of this shape works in concept. It is not a screenshot or export of the actual Patchworks process flow; the production flow has more nodes, more branches and more error handling than a marketing page can usefully render.

What we sync

8 synchronisations between Shopify and Sage 200.

Only the data flows that both platforms actually support. Each section below describes what’s in scope, the gotchas we watch for, and how the flow is shaped inside Patchworks.

  1. 01

    Order sync

    Shopify Sage 200

    Orders raised in Shopify flow into Sage 200 on creation, status change and edit. The flow normalises Shopify's order schema into the record shape Sage 200 expects, including line-level discounts, taxes, gift cards, shipping methods and multi-currency. Partial cancellations and post-capture edits are handled with idempotent updates so Sage 200 stays the system of record without double-counting. Edge cases that come up most often on this pair: backorders, pre-orders, subscription rebills and orders placed through guest checkout with no matching customer record on the destination side.

  2. 02

    Inventory sync

    Sage 200 Shopify

    Stock levels in Sage 200 push to Shopify on a schedule, on movement events, or both. The flow handles multi-location and multi-warehouse split, safety stock buffers, in-transit and committed quantities, and channel-specific availability rules. Where Shopify has its own location model we map Sage 200's locations onto it explicitly rather than relying on default behaviour. Throttling protects both sides during bulk recalculations; deltas only during normal operation. The goal is one source of truth for sellable inventory across the estate, with Sage 200 retaining authority.

  3. 03

    Product sync

    Sage 200 Shopify

    Product master data syncs from Sage 200 to Shopify on publish, with channel-aware enrichment so Shopify only receives the attributes it can act on. Variants, option sets, media, locale-specific copy, category mappings and metafield or extension data are handled explicitly. New SKUs flow in; deprecated SKUs are flagged rather than hard-deleted so historical orders stay intact. Where Shopify has channel-specific requirements that Sage 200 does not natively model (typing rules, required attributes, image dimensions), the integration enforces them at the boundary rather than asking the merchandising team to.

  4. 04

    Pricing sync

    Sage 200 Shopify

    Price lists in Sage 200 push to Shopify with currency, tax-class and customer-group awareness intact. Promotional pricing, contract pricing and tiered B2B pricing are handled as first-class concepts rather than overrides applied at the storefront. Where Sage 200 runs effective-dated pricing, the flow coordinates the cutover so Shopify's catalogue switches at the same instant as the finance side rather than drifting by hours. Currency rounding and display-tax rules are reconciled at the integration boundary to avoid the classic 1p / 1c off-by-one that haunts multi-currency rollouts.

  5. 05

    Customer sync

    Shopify Sage 200

    Customers created or updated in Shopify flow into Sage 200 with a stable cross-system identifier so the same shopper isn't fragmented into duplicates across the estate. Addresses, marketing preferences, B2B account hierarchies, tax exemption flags and channel attribution are mapped explicitly rather than left to Sage 200's defaults. Where Sage 200 is the customer system of record (CRM or ERP) we publish back into Shopify so storefront personalisation and segmentation reflect the canonical state. GDPR deletion and rectification are propagated across the integration in both directions.

  6. 06

    Returns sync

    Shopify Sage 200

    Return authorisations created in Shopify flow into Sage 200 with reason codes, inspection state, restocking decisions and refund eligibility carried through. Where Sage 200 is the ERP or WMS, the return becomes an inbound record that affects available stock and accounts. Where Sage 200 is the storefront, the order record updates so the customer-facing return state stays honest. Exchanges are handled as a paired return-plus-outbound rather than collapsed into a refund-plus-new-order, which keeps the accounting clean and the operational picture accurate.

  7. 07

    Refund sync

    Shopify Sage 200

    Refund decisions raised in Shopify push into Sage 200 as the financial event they are, with original payment method, partial-versus-full handling, tax recalculation and currency intact. The flow waits on inspection outcome where the merchant policy requires it rather than firing on RMA creation. Refunds against gift cards, multi-tender orders and marketplace orders (where the marketplace owns the refund execution) each take a different path; the integration picks the right one based on the original order's tender mix rather than a single default rule.

  8. 08

    Tax sync

    Sage 200 Shopify

    Tax codes, tax classes and jurisdiction rules in Sage 200 push to Shopify so the storefront or marketplace charges what finance will actually post. VAT groups, reverse-charge B2B handling, marketplace-of-record tax (where the channel collects on the seller's behalf) and US sales-tax nexus are each modelled explicitly. The integration validates that Shopify's tax calculation matches Sage 200's before publishing a price; mismatches are flagged loudly rather than left to surface at month-end on a VAT return.

Typical delivery

6 to 9 weeks for a standard delivery.

Up to 5× faster using PatchBuddy
  1. Week 1 Discovery: Sage 200 chart-of-accounts walkthrough, VAT scheme, nominal posting rules.
  2. Weeks 2 to 4 Build: order, customer, stock and pricing flows in Patchworks.
  3. Weeks 5 to 6 Integration testing against the live Sage instance using a staged Shopify store.
  4. Weeks 7 to 8 UAT with finance and operations; sign-off on VAT and nominal mappings.
  5. Week 9 Cutover and hyper-care; transition into support retainer with monitoring and SLA.

Patchworks delivery

How Patchworks shapes Shopify to Sage 200.

Sage 200's data model is built around accounting conventions rather than ecommerce expectations, and integrations that try to ignore that tend to need rework within months. We build the Shopify-to-Sage 200 flows directly in Patchworks, mapping orders onto the right Sage transaction types, respecting nominal codes and VAT groups, and letting Sage's batch posting cadence drive the rhythm where finance needs it to. The runbook covers the edge cases Sage tends to surface loudest at month-end.

Got more connectors that need to live in this flow? A 3PL, a marketplace, returns, a PIM, anything. We can do it. Most live integrations end up larger than a pair, all built and supported as one estate. More on multi-platform estates →

Our Patchworks practice

Questions

Common questions.

Get in touch

Tell us what you’re trying to connect.

And what’s in the way. We will tell you whether we are the right people to do it. Drop us a line below, or open the chat in the corner of the screen.

Direct: [email protected]