How to sell in multiple countries from one ecommerce backend
- Type
- Applies to
- Medusa v2.x
- Updated
Short answer
Medusa sells in multiple countries from one backend without running separate stores. You create a region per market with its own currency, countries and payment providers, set prices per currency or region, configure tax regions with tax-inclusive pricing for the UK and EU, and limit shipping options to service zones. Duties and automatic currency conversion need custom integrations.
How Medusa runs several countries from one backend
Medusa v2 sells in multiple countries from one application, without running separate stores. Each country maps to a region, and prices, taxes, shipping and stock are resolved per request from the customer's region, country and cart. The Multi-Region Store recipe describes the full setup.
Worked example: US, UK and EU settings
The table shows one way to configure a store that sells in the United States, the United Kingdom and the EU. You enter tax rates in each tax region, or a tax provider returns them.
UK VAT rates come from GOV.UK. Each EU country sets its own VAT rate, with a standard rate of at least 15% (Your Europe).
Example API calls for a multi-region setup
You create a region with the Admin API, here through the Medusa JS SDK. The fields below are part of the Create Region API route:
12345678await sdk.admin.region.create({name: "Europe",currency_code: "eur",countries: ["de", "fr", "nl"],automatic_taxes: true,is_tax_inclusive: true,payment_providers: ["pp_stripe_stripe"],})
In the storefront, you pass the customer's region and country when you fetch products. Medusa returns each variant's Copy to clipboardcalculated_price in the region's currency, with and without tax (Retrieve Product Variant's Prices):
12345const { product } = await sdk.store.product.retrieve(id, {fields: "*variants.calculated_price",region_id: region.id,country_code: "de",})
At checkout, customers only see the payment providers enabled for their region and the shipping options that can deliver to their address.
Medusa compared with Shopify Markets, BigCommerce and commercetools
All four platforms can sell to several countries from one catalog. They differ in how currencies are priced and in who handles duties and compliance.
Shopify facts come from its international selling and Managed Markets help pages. BigCommerce facts come from How Currencies Work.
What Medusa does not do for international selling
Medusa leaves three cross-border jobs to you or to an integration:
- Duties and landed cost. Medusa has no duty calculation. Call a landed-cost service from a custom workflow or a fulfillment provider's price calculation.
- Merchant of record. Medusa does not act as the seller of record. You sell under your own entity and handle tax registrations, or integrate a merchant-of-record service as a custom provider.
- Automatic FX conversion. Medusa does not convert prices by exchange rate. Set a price for each currency, or write a scheduled job that updates prices from a rate feed.
For tax calculation beyond fixed rates, the Avalara guide builds a tax provider that returns rates per address.
When Medusa is not the right choice
- You have no developer and want multi-currency selling configured from an admin screen. Shopify Markets covers that.
- You want a provider to act as merchant of record, collect duties and hold tax registrations for you without engineering work. Shopify Managed Markets does this for eligible merchants.
- You sell in one country with one currency. A multi-region backend adds setup you will not use.
Common questions
Does Medusa convert prices between currencies automatically?
No. Medusa selects a price you set for each currency or region and does not convert prices by exchange rate. You can write a scheduled job that updates prices from an exchange-rate feed.
Can one Medusa store use different payment providers per country?
Yes. Each Medusa region has its own list of payment providers, and customers only see the providers enabled for their region at checkout.
Does Medusa calculate customs duties or act as merchant of record?
No. Medusa has no built-in duty or landed-cost calculation and does not act as merchant of record. You integrate a landed-cost or merchant-of-record service through a custom workflow or provider.
Can Medusa show different stock per country?
Yes. Medusa's Stock Location and Inventory Modules track inventory per location, and shipping options are tied to the service zones of each location's fulfillment set.
Is Medusa an alternative to Shopify Markets?
Medusa covers multi-region pricing, taxes, shipping and payments from one backend, but it needs a developer and has no built-in merchant-of-record service like Shopify Managed Markets.