White Label E-commerce in Tunisia: One Template, Three Retailers

Case study

White Label E-commerce in Tunisia: One Template, Three Retailers

All case studies

I turned three separate shop builds into one white label e-commerce template made for Tunisian retailers. It serves French, English and Arabic with full right to left layout, treats cash on delivery as the main checkout, stores money in millimes and applies the fiscal stamp on every order. An electronics retailer, a parapharmacy and a security equipment distributor run on it.

3
Retailers running the template
3
Languages, Arabic in right to left
3
Tunisian rules built into checkout

The problem

I kept building the same shop. Different client, different products, but the same needs every time: a trilingual catalogue, a cash on delivery checkout and invoices that respect Tunisian rules.

Neither of the usual options served small and mid sized Tunisian retailers well:

  • Building each shop from scratch means the market pays three times for the same work, and each build ages on its own.
  • Generic international platforms handle the Tunisian dinar poorly: prices go to three decimals (millimes), rounding drifts, and the legal fiscal stamp has to be patched on.
  • Cash on delivery is treated as an afterthought, while it is the way most Tunisian shoppers actually pay.
  • Arabic is rarely first class. Right to left layouts break in carts, forms and invoices.

The approach

At the third build, I stopped treating each shop as a new project and turned it into a template designed to be forked on purpose.

Everything a retailer changes lives in one place

Brand, contact details, theme and feature flags sit in a single tenant directory, and all retailer specific copy is grouped in dedicated translation namespaces. Launching a new retailer follows a written fork handbook, a checklist rather than an investigation through the code.

Tunisian rules in the domain, not in patches

  • Money in millimes: amounts are stored as whole millimes instead of floating point numbers, so totals and taxes never drift.
  • Cash on delivery first: the checkout is designed around the payment method people actually use.
  • Fiscal stamp on every order: the legal stamp is part of the order model, so invoices are compliant without manual work.

Three languages, real right to left

The storefront serves French by default, alongside English and Arabic, with right to left layout treated as a first class case from the product grid to the invoice.

Mobile first and typed from end to end

Layouts are designed for the phone first, where most Tunisian shoppers arrive from. Next.js with strict TypeScript and a typed data layer over PostgreSQL keep the schema and the queries checked before anything ships.

Outcome

The template now runs three Tunisian retailers, each with its own catalogue and identity on the same foundations: an electronics retailer, a parapharmacy and a low voltage and security equipment distributor.

  • Faster launches: a new shop starts from a proven base and a documented checklist, not a blank project.
  • Compliance by default: millimes, cash on delivery and the fiscal stamp work the same way for every retailer.
  • A real Arabic experience: customers can shop fully right to left, not in a mirrored afterthought.
  • Improvements that travel: work done for one retailer can be brought to the others instead of rebuilt.

More details on the white label e-commerce project page.

Tech stack

Next.js
TypeScript
Tailwind CSS
next-intl
PostgreSQL
Drizzle
Cloud SQL
Firebase

Related services