All work

Platform Liberation + AI Employee

One inventory engine. Three storefronts. 135,000 SKUs in real-time sync.

A 135K+ SKU laptop parts operation was running across 3 eBay accounts and 2 Shopify storefronts with no shared inventory layer. Parts sold on eBay stayed live on Shopify. Multi-quantity listings had no safe decrement logic. We rebuilt it as one system.

Next.jsSupabaseeBay SyncShopifyMulti-tenantAI EmployeeGoogle Merchant Center
135K+
Active SKUs
synced across 3 eBay accounts
3
Storefronts
one Supabase source of truth
<5s
Sync latency
sale to eBay end/decrement

The Problem

Parts sold on eBay were still showing available on Shopify. Every oversell was a customer complaint.

Inventory oversell was the core failure. When a part sold on eBay, it could still show as available on Shopify. When it sold on Shopify, eBay listings stayed live. Multi-quantity listings had no safe decrement logic — cancellations, fraud flags, and restores all touched inventory differently and got it wrong. A third-party repair shop also needed to browse and reserve parts, with no system to support it.

What Was Built

Real-Time Inventory Sync

GitHub Actions + Shopify Webhooks
  • 135K+ SKU catalog synced from 3 eBay accounts via GitHub Actions — runs on every eBay event
  • Shopify sale → eBay listing ended or qty decremented within seconds via webhook chain
  • Multi-quantity safety: remaining qty calculated before any EndItem call — listings with stock never ended prematurely
  • Cancel reason logic: inventory cancels decrement qty (unit lost), all other reasons restore and relist on eBay automatically

Reseller API + Repair Shop Storefront

Next.js + Supabase
  • /api/reseller/products — live inventory feed for third-party repair shops, per-client markup in Supabase
  • Reserve flow: shop reserves → qty decremented in Supabase → Shopify adjusted → eBay ended if qty hits 0
  • Cancel flow: cancelled order → relist on eBay + restore qty — fully automated
  • Stock changes on any channel propagate across all storefronts immediately

OnlineUsedLaptops.com — Second Storefront

Next.js App Router
  • Filtered view of the same Supabase inventory — complete device categories only, separate brand identity
  • Separate Shopify store with independent webhook registration and token management
  • Product schema injected in SSR'd initial HTML — resolved RSC Suspense streaming bug hiding schema from crawlers
  • 7 location pages, blog, warranty page — full SEO and AEO coverage

Sara — AI Employee

Claude Haiku + Prompt Caching
  • Handles customer queries across the full 135K SKU catalog — live 24/7
  • Prompt-cached system prompt for cost efficiency — sub-cent per conversation
  • Chargeback defense metadata flags, AS-IS sale gate, shipping enforcement — code-level, not prompt-only
  • Compatibility mismatch intercepts and order lookup by phone/email — zero human handoff needed

Ready?

Build your own inventory engine.

Start a Project