Case Study

How a Custom Shopify-ERP Integration Eliminated Stock Discrepancies for a UK Retailer

A real-time bidirectional sync between Shopify and a legacy warehouse ERP — eliminating 12 monthly oversells, lifting inventory accuracy to 99.8% and cutting order processing from 4 hours to 40 minutes.

Shopify IntegrationERPInventory SyncGraphQL

0

Oversells per month (was 12)

99.8%

Inventory accuracy

40 min

Order processing (was 4 hrs)

The challenge

12 oversells per month — and peak season was 8 weeks away

The client was running a Shopify store alongside a legacy ERP system in their warehouse. Because the two systems weren't connected, stock levels were updated manually every morning by a member of the warehouse team.

Between updates, Shopify was selling stock that had already been committed to wholesale orders in the ERP — averaging 12 oversell incidents per month. Each oversell required manual cancellation, customer communication and a refund, costing roughly £85 in admin time and lost goodwill per incident.

How it works

Inside the build

  1. 01

    Map every stock movement

    Audited each path stock could move along — wholesale orders, returns, transfers — so no edge case was missed by the integration.

  2. 02

    Build real-time inventory push

    Used Shopify's GraphQL Admin API to push updates from the ERP into Shopify within 60 seconds of any stock movement.

  3. 03

    Build webhook-based order push

    Shopify orders push back to the ERP instantly on placement via a custom webhook, so warehouse staff see new orders in their picking system immediately.

  4. 04

    Audit log + failure alerts

    All sync events logged to Supabase. Any failed sync triggers an immediate email alert so issues are caught before they become customer-facing.

Benefits

What the business actually gains

0 oversells

Down from 12 incidents per month — eliminating a recurring source of refunds and bad reviews.

99.8% accuracy

Inventory accuracy improved from approximately 94% to 99.8% across both systems.

45 min/day saved

Daily manual stock update task eliminated entirely — every morning, every warehouse.

4 hrs → 40 min

Order processing time reduced as orders now appear in the ERP picking system instantly.

Zero stock complaints

Peak season traded without a single stock-related customer complaint.

ROI in month 1

Return on investment achieved within the first month of operation.

Features

Everything the platform delivers

  • Real-time bidirectional Shopify ⇄ ERP sync (≤60s latency)
  • GraphQL Admin API for high-volume inventory queries
  • Custom webhook pipeline for instant order push
  • Per-event Supabase audit log with status indicators
  • Email failure alerts with full error context
  • Peak-season ready: stress tested for 10× normal volume

Technology

Built on a modern stack

Shopify GraphQL Admin APIShopify WebhooksSupabaseNext.js API RoutesVercel

Why it matters

This is what bespoke automation looks like

Two takeaways from this build.

1. GraphQL beat REST for this workload. Inventory queries needed to be granular and high-volume; the GraphQL Admin API let us request exactly the fields we needed and stay well inside Shopify's rate limits.

2. The audit log earned its keep on day one. Within hours of going live, the log surfaced an edge case in the ERP's wholesale order flow we'd never have spotted in testing. Fixed in 30 minutes — no customers affected.

"We went into Black Friday genuinely calm for the first time in years. Stock was right, orders flowed, no awkward refund emails. The system just works."

E-commerce Manager, UK Homeware Retailer (anonymised)

Services used

Want the same on your site?

FAQ

Frequently asked questions

Will this work with my ERP?

Almost certainly. If your ERP exposes any kind of API or database access, we can build a sync. We've integrated with NetSuite, Xero, Sage, custom in-house ERPs and several niche warehouse systems.

How fast is 'real-time'?

Stock movements propagate within 60 seconds. Orders appear in the ERP within seconds of placement on Shopify.

What if a sync fails?

Every event is logged. Any failure triggers an email alert with the full error context, and the system retries automatically with exponential backoff.

How long does this take to build?

Typically four to six weeks for a single-channel sync. Multi-warehouse or multi-channel setups can take eight to twelve weeks.

Ready to automate your business?

This is just one example of what's possible. If you have a repetitive process costing you time, we can build a custom tool to handle it.

Book a free call

More case studies