Nile, a Swiss fashion retailer, runs six Shopify stores: Swiss francs, euros and pounds, each with a test store and a production store. All six run from one shared theme. Every feature has to work in all of them, and behave slightly differently in each.
A loyalty programme in the theme
The Nilecard is Nile's loyalty programme, and its points system is driven by the theme. The hard part is that a point is not worth the same everywhere:
- each store has its own redemption value,
- each store has a maximum number of points that can be used,
- and fallback logic covers the cases where a value is missing.
Customers see their points balance and history in their account, next to order history and an order detail page with the payment method and a transaction breakdown.
Adding a third currency
The pound stores came later. Adding them meant adding the GBP store pair to the build pipeline, so the shared theme deploys to all six stores. Shoppers can switch country across stores, and the theme remembers their choice. Each store also has its own Klaviyo endpoint.
Search that renders progressively
The search page and the predictive search run on InstantSearch, rendering results progressively with skeleton loading, so the page has its shape before the products arrive.
Structured data, in three currencies
For search engines, the theme outputs JSON-LD structured data for products, collections and breadcrumbs, including the return policy, shipping and delivery-time information that Google can show in results. The schema is locale-aware, with canonical URLs, so each store describes its products in its own language and currency.
One theme, many stores
Running several stores from one theme is the right call for most brands that sell in more than one currency: one codebase, one set of fixes. The cost is that every feature needs a per-store answer, and the design work is in finding where that answer lives so nobody has to maintain six versions of the same thing. Nile is in Switzerland's top 5,000 sites by Chrome traffic, and its EU store is in Germany's top 10,000.