Storefront Localization
Serve region-aware prices, taxes, and countries.
On this page
In this guide, you'll learn how to localize a storefront using Aiminaabee regions.
Aiminaabee scopes catalog prices, tax, shipping, and payment providers to a region. A customer typically picks a country (or you detect it), you resolve the matching region, and you pass that region_id on product and cart requests.
What regions control
Each region defines:
- Currency used to calculate variant prices
- Countries the customer can ship to
- Tax behavior for that market
- Payment and fulfillment options available at checkout
On Next.js, put the country in [countryCode] and resolve the region on the server. Follow:
Pass the region on catalog requests
When you list or retrieve products, pass region_id (and request *variants.calculated_price in fields) so variant prices match the customer's market.
ts
See Retrieve variant prices for sale prices, tax-inclusive prices, and formatting.
Pass the region on the cart
Create the cart with the selected region so line items, shipping, and totals use the same currency and tax rules:
ts
If the customer changes country, update the cart with the new region_id.
UI copy and URLs
Region data covers commerce localization (currency, tax, countries). For translating UI strings — buttons, navigation, CMS copy — use your frontend's i18n library (for example Next.js routing with [countryCode]). Do not derive the Aiminaabee store code from the country code; pass storeCode separately as described in Connect to Aiminaabee.