Restock: Shopify Back-in-Stock App
An embedded Shopify app that recovers lost sales by notifying shoppers on WhatsApp the moment a product is back in stock.
- Year
- 2024
- Timeline
- 6 weeks
- Category
- Shopify Project
- +18%
- Recovered out-of-stock revenue
- 71%
- WhatsApp alert open rate
- <5s
- Restock → notification latency
The Problem
A Shopify merchant lost revenue when popular items sold out, and shoppers hit an out-of-stock page and never returned, and email alerts had dismal open rates. They wanted to recover that demand on WhatsApp, where customers actually read messages.
The Solution
Restock: an embedded Shopify app with a Liquid storefront widget. Shoppers subscribe to out-of-stock variants; when inventory webhooks fire, a worker notifies them over the WhatsApp Business API with a buy link. Merchants see recovered revenue in-admin.
My Role
Shopify app developer. Built the embedded app (Polaris + Liquid widget), handled OAuth and inventory webhooks, and integrated WhatsApp with a queue to absorb restock spikes.
Tech Stack
- Shopify Apps
- Shopify Liquid
- Node.js
- React
- PostgreSQL
- Prisma ORM
- Redis
- WhatsApp Business API
- DigitalOcean
How it fits together.
The high-level architecture: services, data stores, and the external systems they talk to.
Approach
Shopify apps are about respecting platform constraints: OAuth scopes, webhook reliability, and native Polaris UX. The widget is plain Liquid + a small script so it works on any theme. Restock spikes are bursty, so a Redis queue smooths them. WhatsApp rate limits are respected and no subscriber is missed.
Highlights
- Native-feeling embedded admin built with Shopify Polaris.
- Theme-agnostic Liquid widget, no theme changes required.
- Queue-backed delivery keeps notifications under 5s.
Screens