Home/Work/Multi-market commerce platform for a luxury brand
Retail · Commerce platform · Case study

One back office, eight markets, seven currencies —prices set by hand in every oneof them.

A luxury lighting brand moved from Shopify to a custom Next.js platform selling into the UAE, US, UK, EU, Canada, Australia and Singapore, with duties paid before checkout and a 17-module back office.

8markets from one codebase
7currencies, never converted
17back-office modules
99.6%ad catalog match after migration
Back office · Orders live
Orders today27
Made-to-order11
Live visitors38
Happening now
  • #10482 · United Arab EmiratesAED 2,450Shipped DDP
  • #10481 · SingaporeSGD 1,390Paid
  • #10480 · United KingdomGBP 720Made-to-order · day 3 of 12
  • #10479 · GermanyEUR 890Shipped DDP
The problem

Shopify converted prices from one base currency, customers paid duties at the door, and payroll, inventory and reviews lived in disconnected tools. Converted prices, surprise duties, five apps.

The approach

Per-market price ladders set by hand, a region engine at the request, DDP checkout, entity routing for payments, and a 17-module admin built as one system with roles. Pricing as data, one back office.

Architecture & AI decisions

Pricing became data, not arithmetic

Each market has its own hand-set price ladder, free-shipping threshold and duties rule, edited in the back office and read at request time. Exchange rates never touch a displayed price.

01

Payments routed through a UAE entity

Payments routed through a UAE entity: Stripe, PayPal, Apple Pay, Google Pay, BNPL for the Gulf

02

AI content pipeline drafts descriptions and meta under anti-hallucinat

AI content pipeline drafts descriptions and meta under anti-hallucination rules with human sign-off

03

WhatsApp sales agent answers from the live catalog through direct data

WhatsApp sales agent answers from the live catalog through direct database tools

04

Meta Pixel + Conversions API with shared event IDs

Meta Pixel + Conversions API with shared event IDs; per-currency catalogs; GA4 repaired

What shipped.

01

Region & currency engine

8 markets, 7 currencies, hand-set ladders
02

Duties-included checkout

DDP, entity routing, BNPL for the Gulf
03

17-module back office

Orders, inventory, payroll, workshop, marketing
04

WhatsApp sales agent

Live catalog, market pricing, guarded handover
05

AI content pipeline

Descriptions and meta with sign-off
06

Conversions API + feeds

Deduplicated events, per-currency catalogs
07

Trade programme

Applications, tiers, MOQ terms, quotes
08

Shopify migration

Product IDs preserved, one-hop redirects
Result
8markets live from one back office
99.6%Meta catalog match
0duties charged at the door
1deploy to fix hydration & module conflicts
Next.jsTypeScriptPrismaPostgreSQLVercelStripePayPalMeta Conversions APIGA4FlutterGroq · LlamaWhatsApp Business APINext.jsTypeScriptPrismaPostgreSQLVercelStripePayPalMeta Conversions APIGA4FlutterGroq · LlamaWhatsApp Business API
Selected work

More in production.

All case studies
Retail · AI sales agent

A WhatsApp agent that answers from the catalog, quotes the right market's price and knows when a human should take over.

get_variants, check_stock, quote_price, lead_time against the Prisma catalog; retrieval pipelines evaluated and rejected for this size.

190variants answered from live data
8markets priced correctly
0vector databases
Read the case study
WhatsApp · sales agent
14
detect_market(phone)4ms
get_variants('halo floor')31ms
quote_price(H-220, AE)8ms
E-commerce · Integrations

Orders that print their own Royal Mail labels, tested in a sandbox where nothing is charged.

Verified requests, idempotency keys, delivery logs; a mock that mirrors the API per environment; iframe modules with a stable contract.

1click from order to label
£0postage charged in staging
0duplicate labels by design
Read the case study
Fulfilment · Royal Mail
42
Order #10480 · address
Labelidempotent
Postage chargedsandbox

Have a system
like this in mind?

Send the problem, not a brief. An engineer replies within one business day.

Start a project