Case study01 / 04
All workA furniture store with seamless checkout and order tracking.
E-commerceFull stack
The client
OXO sells officially licensed Peanuts™ furniture in Singapore, online and at pop-up booths.
The challenge
They needed more than a brochure: a store that takes orders, keeps customers informed after they pay, and gives the team one place to run sales, stock and promotions. Their order history also sat in an old WooCommerce store.
What I built
Storefront
- Shop with category filters and sorting
- Product pages with galleries, option pricing (e.g. 1- or 2-seater) and stock badges: Ready stock, Pre-sale, ETA
- Sale pricing with the usual price shown alongside
Checkout
- Card payments, promo codes and free-gift promotions
- Singapore delivery check, with 9% GST added automatically
- Ticket-style receipt with a short, memorable order number
After the sale
- Public order tracking: paid, preparing, shipped, delivered
- Order confirmation, “shipped” and “delivered” emails
Back office
- Passwordless sign-in for approved staff
- Orders dashboard with revenue, status filters, search and CSV export
- Product editor with private draft previews before launch
- Promo-code campaigns: single or batch codes, expiry dates and usage limits
Brand pages
- Collection showcase, event page with countdown and ticketing link
- Radio interviews and press, gallery, and a contact form routed to the team inbox
The result
- Public pages
- 10
- Public pages
- Admin tools
- 7
- Admin tools
- Products in 4 categories
- 12
- Products in 4 categories
- Automated tests
- 250+
- Automated tests
- Simultaneous shoppers load-tested, 0% errors
- 800
- Simultaneous shoppers load-tested, 0% errors
Quality & reliability
- Prices are checked on the server, so a tampered basket can’t change the charge
- Payment confirmations are verified and never double-count an order
- Bot protection stopped 12 of 12 scripted payment attempts in testing
- Security headers and a locked-down database
- Legacy WooCommerce orders migrated and repaired: customers, line items, refunds and addresses
- Accessible: screen-reader labels, keyboard-operable admin, reduced-motion support
Launch film
A 40-second film I made to launch the site.
Stack
Next.jsTypeScriptStripeSupabaseResendVercel