A multi-outlet ordering platform that finally shipped one queue.
Six restaurant brands, one shared kitchen, three different POS systems, and an online ordering page that converted at 1.4%. We rebuilt the ordering flow, not the brand.



Product
Spring
Celebrations
Vegan
Gift Sub
Legends- Client
- Ding Dong Dimsum
- Sector
- F&B · Multi-outlet ordering
- Engagement
- Discovery → Build → Launch
- Year
- 2025
✱ § 01 · The brief
What they actually needed.
Ding Dong runs six dim-sum and bao concepts out of one cloud kitchen in London. The brands looked great, the kitchen ran tight, but the website tried to be six storefronts at once — six menus, six checkouts, six loyalty programs — and it converted like none of them.
Each brand had its own Shopify theme, its own Klaviyo flow, and its own out-of-stock logic. Customers ordered from one brand, abandoned, and never saw the cross-promotion for the brand next door. Ops staff fielded WhatsApp messages from couriers because POS items disappeared mid-order.
“We don't need six websites. We need one ordering site that knows when the kitchen has run out of soup dumplings.”
✱ § 02 · Our approach
Three bets, in order.
Collapse six brand-specific checkouts into one shared cart.
Single payment session across all brands — Apple Pay first, card second, Tabby for orders over £40. Cross-brand cart so a customer can drop a bao bun and a chilli oil into the same order. Everything funnels through one Stripe account.
Move loyalty out of email and into the cart.
Replaced the per-brand Klaviyo discount cycle with a unified rewards balance visible in-cart. Free delivery at tier 2, early-access drops at tier 3. Email now ships order receipts and post-purchase notes — it doesn't sell.
Pull live kitchen capacity into the menu.
Custom KDS integration polls the kitchen every 90 seconds. Out-of-stock items grey out before they're added to cart instead of failing post-checkout. Out-of-stock alerts surface to ops via a single WhatsApp number, not six.
✱ § 03 · Process · 14 weeks
From kickoff to shipped.
Wk 1–2
Discovery + audit
Session replays on 180 abandoned carts. Three customer interviews. Pulled 90 days of order data from Shopify + Stripe + the existing POS to model the friction points.
Wk 3–4
Information architecture
Re-modeled six brand catalogs into one menu with brand sub-sections. Mapped the unified cart, the cross-brand promotions matrix, and the loyalty tiers.
Wk 5–8
Build · phase one
Next.js storefront with Sanity-backed menu, single-page checkout, Stripe Connect for the payment session, KDS poller. First end-to-end order placed end of week 8.
Wk 9–10
Soft launch + measure
Cut over 10% of mobile traffic for two weeks. Watched the funnel daily. Two rounds of small fixes — mostly scroll-jank on the menu and a Tabby threshold edge case.
Wk 11–12
Full cutover + loyalty
100% of traffic to the new platform. Migrated the existing Klaviyo audiences into the unified loyalty profile. Old per-brand sites kept hot for 30 days as a fallback.
Wk 13–14
Handover + 90-day support
Trained the in-house ops team on the menu CMS and the WhatsApp alert thresholds. Opened a 90-day support window for monitoring and small refinements.
✱ § 04 · Gallery · key screens
Selected screens.


✱ § 05 · Results · measured 6 months post-launch
What changed, in numbers.
- +147%
- Online orders
- −52%
- Checkout drop-off
- 4.1×
- Repeat order rate
Year-on-year, 6 mo post-launch
Pre-launch baseline 71% → 34%
Cross-brand cart attribution
✱ § 07 · In their words
Six brands, one kitchen, one ordering site. Online orders climbed from week one — and the kitchen stopped getting calls from couriers about out-of-stock items.
Operations Lead
Ding Dong · Ding Dong Dimsum
✱ § 08 · Tech stack
What's running.
- Storefront
- Next.js 16 · Tailwind v4
- CMS
- Sanity (menu) · Stripe (catalog)
- Payments
- Stripe · Apple Pay · Tabby
- Loyalty + ops
- Custom rewards · WhatsApp alerts
- Analytics
- GA4 · Plausible · custom Stripe dash
- Hosting
- Vercel · Cloudflare
✱ § 09 · Team
Who built it.
- Affan Manzoor
- Project lead
- ChampX design
- Design + storefront
- ChampX engineering
- Storefront + checkout
- ChampX ops
- POS + KDS integration
✱ § 10 · Honesty section
What we’d do differently.
01 · Started too late on the KDS poller
Modeled out-of-stock from order data first, then wired the live poller in week 7. Should have been week 3 — the data model needed real signal earlier.
02 · Underweighted Apple Pay on Android
Tabby + card was the assumed Android stack. Google Pay added in phase two after we saw 19% of Android sessions bouncing at payment.
03 · Loyalty tiers shipped quiet
No on-site announcement, just a banner. Most customers found out they had tier-2 perks weeks after qualifying. Added a profile banner and a one-time email six weeks post-launch.




