A region is a market your project serves inside a specific scope. Regions are typically geographic (Germany, United States, APAC) but they’re whatever subdivision carries its own currency and supported languages. Every region belongs to exactly one scope — theDocumentation Index
Fetch the complete documentation index at: https://docs.frontic.com/llms.txt
Use this file to discover all available pages before exploring further.
public scope has its own regions; a b2b scope has its own separate regions, even if the names overlap.
A region does two things: it fixes the currency used for pricing, and it declares which locales are supported. Requests resolve to a region via a domain mapping or a contextKey, and the rest of the response adapts from there — prices in the region’s currency, translations in the resolved locale.
What a region holds
Currency
A single ISO 4217 currency code (
EUR, USD, JPY). Products and
variants can carry prices in any currency; the region decides which
one comes back in the API response for requests bound to it.Supported locales
One or more locales from the project’s locale catalog.
The region picks which languages are available to its customers;
one of them is marked the default, used when a request doesn’t
specify a locale.
Configuring regions
Open Settings → Scopes, pick the scope you want, and manage its regions inside the scope’s detail view. There’s no standalone “Regions” page in the admin UI — regions always live inside a scope.

- Name — human-readable label, e.g. “Germany” or “North America”.
- Key — short, stable identifier (
de,na). Surfaces in API responses, in request parameters, and in any frontend code or downstream system that targets the region by name. Frontic’s own configuration references regions by record ID, so a rename won’t break the project itself — but anything outside Frontic that hardcoded the old key (Client SDK calls, analytics dimensions, partner integrations) needs to update at the same time. - Currency — the ISO currency code for pricing.
- Supported locales — one or more locales from the project catalog.
- Default locale — which supported locale applies when none is specified.
The default region per scope
Each scope has one default region — the one that’s used when a request resolves to that scope but doesn’t carry enough information to pick a region. The first region you add to a scope is automatically marked default; you can flip the flag from any region’s edit screen afterwards. Pair this with the default scope flag and you’ve got the full fallback chain: no scope → project default scope; no region → that scope’s default region; no locale → the region’s default locale. Together they’re what lets a request always succeed even when no domain row matches.A worked setup
A typical cross-market setup for a consumer storefront, all inside thepublic scope:
| Region | Currency | Locales | Default |
|---|---|---|---|
| United States | USD | en | en |
| Germany | EUR | de, en | de |
| Rest of Europe | EUR | en, de, es | en |
| Domain | Scope | Region | Locale |
|---|---|---|---|
demo-shop.com | public | United States (USD) | en |
demo-shop.com/de | public | Germany (EUR) | de |
demo-shop.com/es | public | Rest of Europe (EUR) | es |
Regions and the product catalog
Currency and locale decisions ripple through the catalog:- Pricing — a product variant stores prices per currency. When a request arrives in a region with currency
EUR, theEURprice comes back. - Translations — a field marked Translatable stores one value per locale. The region’s active locale picks which translation is returned.
Related
Scopes
The segmentation layer regions live inside (B2B vs B2C, multi-brand).
Locales
The language catalog regions pick from.
Domains
How incoming URLs bind to a specific region.
Multi-channel & region
The commerce-native view of how scopes, regions, locales, and
domains compose.