Fixed Pricing for EU Expansion: Why Shopify Markets’ Native Conversion Isn’t Enough

Fixed Pricing for EU Expansion: Why Shopify Markets’ Native Conversion Isn’t Enough

Expanding into Europe often starts with Shopify Markets. The tool makes it easy to group countries into “markets” and show prices in the shopper’s local currency. Yet many merchants discover that Shopify Markets native pricing falls short when selling in the European Union. A single exchange‑rate multiplier doesn’t account for country‑specific taxes, import duties or shipping costs, and it exposes your margin to currency fluctuations. International brands that rely on automatic currency conversion can lose profits or price themselves out of competitive ranges.

This guide explains why Shopify’s built‑in market pricing isn’t enough and shows you how to use Shopify’s Catalogs API and price lists (introduced in the 2025-04 API) to set fixed prices per country. We also cover best practices for using GraphQL mutations to update prices programmatically and link to relevant posts on inventory integrations and custom development.

Why Shopify Markets’ native pricing falls short

Shopify Markets groups multiple countries under a single market and converts your base price into local currencies using daily exchange rates. For a simple two‑country market (for example Australia and New Zealand), you might enter a fixed price in Australian dollars and let Shopify convert that value to New Zealand dollars automatically. The Help Center notes that fixed prices can only be entered in the market’s base currency; customers in other countries within the market see converted prices. If you later decide to enter fixed prices for additional countries, you must create separate markets. CSV imports have the same limitation—you can’t import different fixed prices for multiple countries in the same market.

This “base currency + conversion” model works when currency fluctuations are your only concern. It fails when:

  • Country‑specific taxes and duties differ: VAT rates vary across Europe. For example, the United Kingdom applies a 20 % VAT rate while Australia (outside the EU) uses a 10 % GST. Tariffs and import duties also differ by trade agreement—imports from EU member states into the U.S. have a 15 % tariff, whereas imports from China incur a 25 % tariff. Using a single conversion rate can leave you undercharging in high‑tax countries or overpricing in low‑tax countries.

  • Shipping and fulfillment costs vary widely: Cross‑border shipping rates depend on distance, local carriers and fuel surcharges. Tariffs and customs brokerage fees can add unexpected costs. Converting the base price doesn’t reflect these operational differences.

  • Currency volatility erodes margins: Exchange rates can swing significantly. Selling a product at €50 one week and €45 the next due to currency movements makes forecasting and budgeting difficult. Merchants must either accept lower margins or constantly adjust prices.

  • Marketing campaigns require psychological pricing: In some regions €49.99 converts to an odd amount like NOK 559.72. Customers may perceive this as a random price and hesitate to buy. Fixed price lists let you maintain locally appealing price endings.

Because Shopify Markets doesn’t allow fixed prices for individual countries within a multi‑country market, you’re forced to create separate markets for each country—which quickly becomes hard to manage. To maintain precise pricing across the EU without fragmenting your admin interface, you need price lists and catalogs.

Introducing the Catalogs API and price lists

Shopify’s Catalogs API lets you control which products are published to customers in a given market and how they’re priced. A catalog defines the set of products and the price list that applies to those products. When you associate a price list with a catalog, the prices in that list override any automatic currency conversions for the market.

Price lists can include percentage‑based adjustments or fixed prices per product variant. To create a price list, you specify a name, currency, catalog ID and optional percentage adjustment. A critical rule is that the price list currency must match the market currency. Once created, you associate it with the catalog; customers then see the fixed or adjusted prices instead of converted base prices.

Fixed prices versus percentage adjustments

Price lists support two ways of modifying prices:

  1. Percentage‑based adjustments: Apply a uniform increase or decrease (e.g., +10 %) across all variants in a catalog. This is useful when you want to add a general margin for a region but still rely on currency conversion for daily fluctuations.

  2. Fixed prices: Set an exact amount for each variant. This allows for country‑specific pricing that incorporates taxes, duties and shipping costs. If a variant doesn’t have a fixed price, its price is calculated using the price list’s percentage adjustment.

Fixed prices are added via the priceListFixedPricesAdd mutation in the GraphQL Admin API. This mutation creates or updates fixed prices on a price list and lets you change product variant pricing on a per‑country basis. You can update up to 250 prices per request; if a fixed price already exists, it is overwritten.

Step‑by‑step: Programmatically building an EU price list

Below is a simplified workflow for creating fixed price lists for each EU country using the Catalogs API. A developer with access to your store’s Admin API can automate this in Node.js, Python or Ruby. (Refer to our custom Shopify development article for more details.)

1. Query the market catalog

Each market has a catalog that’s automatically created and associated with it. Use the catalogs GraphQL query to retrieve the catalog ID for your EU market. The response includes the catalog ID, the associated price list (if any) and the market name.

2. Create a price list

Use the priceListCreate mutation to create a new price list. Provide a meaningful name (e.g., “Germany fixed prices”), set the currency to match the market (EUR), and associate the price list with the catalog ID. You can optionally set a percentage adjustment for variants that won’t have fixed prices.

3. Add fixed prices for each variant

Using the priceListFixedPricesAdd mutation, specify the price list ID and an array of PriceListPriceInput objects. Each entry includes the product variantId, price (amount and currency), and optionally a compareAtPrice for strike‑through pricing. Repeat this for all variants you want to override. Remember that only 250 prices can be added per request and that existing fixed prices will be replaced.

4. Remove outdated fixed prices (optional)

If you need to remove fixed prices—perhaps to fall back on the percentage adjustment—you can use the priceListFixedPricesDelete mutation to delete specific variant prices. Any deleted variants will revert to the price list’s percentage‑based calculation.

5. Test and monitor your new price list

Once the price list is live, test it in a staging environment. Verify that shoppers from Germany see €50 while those from France see €65, reflecting differences in VAT and shipping costs. Use Shopify Markets’ analytics to track conversion rates and average order values. If you notice unexpected currency conversions, ensure that the catalog is associated with the correct price list and that the market currency matches the price list currency.

Best practices for EU price strategies

  • Match local taxes and duties: Research VAT rates and import duties for each EU country and embed them in your fixed prices. Tariffs vary by trade agreement and product classification; for example, imports from China into the U.S. incur a 25 % tariff, while tariffs are negligible under the USMCA agreement. In the EU, standard VAT rates range from 17 % in Luxembourg to 27 % in Hungary. Fixed prices let you absorb these costs transparently.

  • Consider psychological pricing: Adapt your price endings to local conventions (e.g., €49,95 in Germany). Fixed price lists prevent the odd decimals that arise from currency conversion.

  • Update regularly: Economic conditions, tariffs and taxes change. Review your price lists quarterly and adjust for margin targets. Use automation to update price lists using the GraphQL API rather than manually editing CSVs.

  • Avoid currency mismatches: When creating a price list, ensure the currency matches the market. Shopify prohibits mismatched currencies for price lists.

  • Integrate with ERP/CRM: Use our Shopify ERP/CRM integration to sync product variant IDs, stock levels and pricing data. Automating data flows reduces manual errors when populating price lists.

  • Monitor FX fees and conversion rates: Even with fixed price lists, some orders (such as B2B orders) may use converted pricing. Shopify charges a 2.5 % FX fee on international orders, so factor these costs into your margin analysis.

Example: Germany vs France pricing

Suppose you sell a popular gadget and want to price it at €50 in Germany and €65 in France. Under Shopify Markets’ default setup, you might group Germany and France in the same EU market with EUR as the base currency. You can set a fixed price for the market (e.g., €55), but then both countries see that price. If you set €50 as the fixed price, customers in France will see the currency converted price (still €50) because it’s the same currency. To differentiate pricing:

  1. Create separate price lists for Germany and France, both in EUR. Name them “Germany prices” and “France prices.”

  2. Assign each price list to the same EU catalog using priceListCreate and priceListUpdate.

  3. Use priceListFixedPricesAdd to set the gadget’s variant price to €50 in the German price list and €65 in the French price list.

  4. Optionally set different percentage adjustments for other products.

Now your German shoppers see €50, while French shoppers see €65, reflecting differences in VAT (France’s standard rate is 20 %, Germany’s is 19 %) and shipping costs. You maintain your margins and avoid manual currency conversions.

Conclusion

Shopify Markets simplifies cross‑border selling, but its native pricing model can leave margins exposed when expanding into the European Union. Automatic currency conversion doesn’t account for varying VAT rates, tariffs and shipping costs, and it forces merchants to create separate markets when they need fixed prices per country. Shopify’s Catalogs API and price lists provide the missing layer of flexibility: you can define catalog‑specific price lists, set fixed prices on a per‑country basis, and override currency conversion for any variant. By programmatically creating and updating price lists, you control your EU pricing strategy, protect your margins and deliver a consistent customer experience across diverse markets.

If you’re ready to go beyond basic currency conversion, reach out to our team. We specialize in custom Shopify development, from building price‑list automation scripts to integrating your ERP and CRM systems. Let’s ensure your EU expansion is both profitable and seamless.

more insights

Get Proposal Form

Great! Let’s Find Out What’s Stopping Your Website From Performing at Its Best 🚀

🔍 We’ll Help You Identify What’s Holding You Back

You’ve already taken the first step — now let’s uncover what’s keeping your website from converting better. From slow load times to poor CTA placement, we’ll spot the bottlenecks and fix them.

💡 Why Are We Doing This For Free?

Because we know that once you see what a difference the right strategy makes, you’ll trust us for the execution too 😉
No obligations — just real, useful insights.

⚡ Let’s Get Started

Enter your details and we’ll send you a personalized audit within 24 hours — no spam, no fluff, just honest recommendations to make your site perform like it should.

Free Consultation Form (Yes/No Flow)

All good 😊 We’re glad you dropped by!
If you ever need a new website, Shopify store, or marketing help, reach out anytime at info@datronixtech.com.
Have a great day 🚀

Hey there 👋 Looking to build or grow your online presence?