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