Multi-market application pricing
A common setup in Norce is a single application serving multiple markets that share the same currency but have different VAT rates and sales areas. The Euro market is the typical example: one application, one currency (EUR), but separate markets for Germany, Finland, the Netherlands, and so on — each with its own VAT rate and potentially its own pricing.
In this setup, Norce holds a pre-calculated price list for each market. When a customer selects their market during the shopping session, PriceListSeed is used to ensure only the price lists for that market's sales area are used throughout the session.
How the selection works
Norce does not automatically filter price lists by sales area. Instead, the storefront application uses ListPriceLists from the Commerce Services API to retrieve all price lists on the application. The response includes each price list's sales area, which the application uses to group and filter them.
When a customer selects a market — for example, Finland — the application:
- Identifies the price list IDs belonging to the Finnish sales area.
- Passes those IDs via
PriceListSeedin all subsequent API calls.
Best-price evaluation then runs only across the seeded price lists. A customer buying for the Finnish market will only see Finnish prices, with Finnish VAT applied.
This selection is maintained through the entire purchase flow. PriceListSeed is passed consistently from product browsing through checkout, so only the correct market's price lists are used at every step.
Price list structure
Each market that has its own VAT rate needs its own price list (or set of price lists) in Norce. A typical structure looks like this:
Base market — DE (EUR, German VAT 19%)
└── Market — FI (EUR, Finnish VAT 25.5%)
└── Market — NL (EUR, Dutch VAT 21%)
└── ...Each child price list belongs to its market's sales area. The parent is typically the largest or home market, and the children inherit from it.
Consistent inc-VAT prices across markets
Some merchants want to show the same price including VAT in every market, even though the underlying VAT rates differ. For example: a product costs 100 EUR including VAT in both Germany and Finland — the displayed consumer price is identical, even though the VAT-exclusive amounts differ.
To achieve this, Norce supports VAT-inclusive price inheritance. When enabled on the sales area, Norce inherits the recommended price, catalog price, and standard price from the parent including VAT, and then compensates for the difference in VAT rate on the child. The result is that the inc-VAT price stays the same across markets, while the ex-VAT price adjusts to reflect each market's tax rate.
With this setup, the price rule between the parent and child market price lists is simply Use standard price (pct discount) at 0% — no manual adjustment is needed. Norce handles the VAT compensation automatically.
A product has a German price of 100 EUR including 19% VAT (ex-VAT: 84.03 EUR). The Finnish market price list inherits from the German one with VAT-inclusive inheritance enabled and Finnish VAT at 25.5%.
Norce compensates so that the Finnish inc-VAT price stays 100 EUR, and the Finnish ex-VAT price becomes 79.68 EUR. The consumer sees 100 EUR in both markets.
VAT-inclusive inheritance is activated as a client setting, not per price list or sales area. Once enabled, it applies automatically to all price list inheritance where the parent and child belong to different sales areas. Both the parent and child sales areas must have the correct VAT rates configured for the compensation to be calculated correctly.