Skip to content
All projects

Shopify case study

Shopify Automation Dashboard

Order, inventory and fulfilment automation for a multi-warehouse Shopify brand.

Overselling incidents
→ 0
Inventory sync lag
6h → 90s
Hours saved / week
11
admin.shopify.com/inventory
SKU-1042synced
SKU-2298synced
SKU-3311synced
SKU-4470synced

Interface reference — rendered from the real component structure, not a stock image.

The problem

Stock counts drifted between two warehouses and Shopify, so oversells happened during every promotion.

The solution

A sync service that reconciles inventory on webhook and on schedule, plus a dashboard showing drift, failed syncs and fulfilment status in one place.

Hard parts

Shopify rate limits and out-of-order webhooks. Solved with a leaky-bucket queue and version checks before each write.

Outcome

Oversells stopped, and the fulfilment team works from one screen instead of three tabs.

Technology used

  • Shopify Admin API
  • Node.js
  • Supabase
  • n8n
  • React

How it was delivered

  1. 01Client problemInventory drift caused refunds and support load after every campaign.
  2. 02ResearchTraced where counts diverged: manual warehouse edits never reached Shopify.
  3. 03PlanningChose Shopify as source of truth with reconciliation both ways on a fixed cadence.
  4. 04WireframeOne dashboard: drift table, failed job list, manual re-sync action.
  5. 05DevelopmentNode worker consuming Shopify webhooks, writes queued through a rate-limited bucket.
  6. 06TestingRan a mirrored development store through a simulated flash sale.
  7. 07DeploymentContainerised worker plus a Vercel-hosted dashboard, secrets managed per environment.
  8. 08ResultsZero oversells across the following two promotional periods.

Lessons learned

Treat webhooks as unordered hints, never as a source of truth. Always reconcile against the API.

More case studies