Multi-Currency eCommerce: How to Sell in Multiple Currencies From One Store
A USD-only checkout loses the sale the moment a German shopper sees it. Operators selling in multiple currencies want one store that shows each shopper their own price. Spree Commerce includes Markets and per-currency base prices in the free Community Edition. You also own the source code and the data.
Key Takeaways
Last verified: May 2026
The win: Every shopper sees the price in their own currency the moment they land on the storefront.
Why it matters: Showing USD to a German shopper loses the sale. Showing EUR closes it.
Spree Commerce capability: Markets and per-currency base prices are native features of the free Community Edition.
Why a USD-only checkout loses the German shopper
Picture a US-based skincare brand running its first big Meta campaign in Munich. The ad creative is tight. Click-through rates hit target. Then the visitor lands on the product page, reads $99.00 in dollars, and closes the tab.
The conversion math is unforgiving. A USD-only catalog tells the German shopper to do mental arithmetic, then trust a checkout rate they cannot see in advance. Most do neither.
The support inbox fills with questions that should have been a click. “Do you ship to Germany?” Yes. “What does this cost in euros?” The storefront does not know. “Will my card be charged in dollars?” Probably, with a foreign-transaction fee added by the bank.
The acquisition team watches cost per acquisition climb to two or three times the home-market number. The number is rising not because the German shopper is harder to reach. The number is rising because every paid click hits a storefront the shopper does not recognize as theirs.
The shopper wants one number, in one currency, that is the final number. The brand wants one online store that shows every shopper that number.
What the brand often tries first does not solve the problem. A parallel storefront per country doubles the catalog work, the deployment surface, and the admin staff. A currency-conversion widget at checkout still leaves USD on every catalog page where the bounce happens. A monthly spreadsheet of override prices goes stale within a week and never matches the FX rate the shopper actually pays.
The answer is a single storefront that knows which market each shopper is browsing from, and shows the right currency from the catalog through the cart.
Who runs into the multi-currency problem?
Three kinds of operator hit the multi-currency problem every day:
- US DTC brand expanding into Europe or Asia. A consumer-products brand based in the United States starts paid acquisition in Germany, France, or Japan. The catalog still prices in USD. The international funnel stalls at the product detail page until the storefront can show EUR, GBP, JPY, or whatever currency the local shopper expects.
- European brand opening a US or UK channel. A brand based in the eurozone wants to sell to American shoppers in USD or British shoppers in GBP without losing the EUR-native experience for European customers. One storefront, three markets, three currencies.
- Multi-brand operator running one storefront across regions. An operator running multiple labels under one Spree Commerce store needs each label to price in the right currency per region. The catalog stays single-source. The currency belongs to the market the shopper is in.
All three operators want the same setup. A way to add a new currency when a new region opens up. A way to price each product directly in each currency rather than relying on a live FX conversion at checkout. And one storefront, one admin, one catalog underneath.
How does Spree Commerce handle multi-currency pricing?
Multi-currency in Spree Commerce runs on two features working together: Markets and per-currency base prices on each product. Both are included in the free Community Edition. Both are native to the platform. Both are configured from the admin.
A Markets feature is a distinct selling region inside the storefront. Each market carries:
- Its own currency (USD, EUR, GBP, JPY, and so on)
- Its default country for shipping and address validation
- Its default locale for storefront language
- Its payment methods (the gateway and the methods that work for shoppers in that region)
- Its shipping methods (the carriers and rates for that region)
- Its tax-inclusive display setting (on for EU markets, off for US-style markets)
The market is the container the storefront uses to decide what to show a particular shopper.
A US brand opening a German market creates a second market with EUR as the currency and Germany as the default country. The market’s default locale is DE for a German-language storefront or EN for one that stays in English. Tax-inclusive display is turned on to match EU convention. The first market, USD for the United States, stays as it was.
Each product then gets a base price in each currency it sells in. The product editor has a currency switcher that flips the price field between USD and EUR. A single-variant product carries the switcher in the Pricing section. A multi-variant product carries the switcher in the Variants section, where pricing and inventory are managed together in a combined table.
A skincare brand selling a $99 USD product enters €89 in the EUR slot, saves, and the German market is ready. A coffee brand selling a $19.99 USD bag enters €17.90 for Germany and the EUR base price for that SKU is in place.
The same flow extends to GBP for the UK, JPY for Japan, AUD for Australia. Each new market is one admin record. Each new currency on an existing product is one row in the pricing table. The catalog stays single-source.
The step-by-step walkthrough sits in the docs: multi-currency pricing setup covers the admin flow end to end, with screenshots of each step.
A note on product visibility. A product without a price in the EUR slot will not display to shoppers browsing the Germany market. The market only shows what is priced for it.
For brands moving over from elsewhere with an existing pricing dataset, the multi-currency CSV import updates prices for multiple currencies and markets in one upload. A hundred SKUs can gain a EUR price in minutes rather than hours.
What does a Spree Commerce market actually bundle?
A market in Spree Commerce is not just a currency tag. The market is the place where geography, currency, locale, taxes, payments, and shipping all line up for one selling region.
For the operator, this matters because the things that change for a German shopper are not only the currency:
- Default country and locale. Germany shows DE as the country, EUR as the currency, and either DE or EN as the storefront locale, depending on whether the catalog content is translated. The storefront knows which navigation, which date format, and which address fields to use.
- Tax-inclusive display. EU consumer rules require prices to include VAT. A market configured as tax-inclusive shows the post-VAT figure on every product page and the cart. A market configured as tax-exclusive (the US default) shows the pre-tax figure and adds sales tax at checkout based on the shipping zone.
- Payment methods. Each market can be wired to the payment providers and methods that actually work for shoppers in that region. EU shoppers expect SEPA, Klarna, or local card schemes. US shoppers expect standard cards and PayPal.
- Shipping methods. The shipping zone, carriers, and rates for the Germany market reflect the carrier mix and the realistic transit times for German addresses, not the US carrier defaults.
- Order traceability. Spree Commerce records the market on each order. The admin shows which market every order came from, so the Friday morning margin report ties the right price to the right country.
The currency switcher in the product editor is the surface the operator interacts with most often. The market itself is the structure that makes the currency switcher meaningful end to end.
How big is the multi-currency eCommerce opportunity?
International online buying is no longer a side story. Recent industry research has global business-to-consumer eCommerce that crosses borders on track to clear $2.16 trillion in 2026, up from roughly $1.72 trillion the year before. Transactions across borders now account for around 45% of global B2C eCommerce activity. In a 2025 global survey, 59% of online shoppers reported buying from retailers outside their home country, and 35% reported doing so at least monthly.
The conversion impact of showing the local currency is well documented. Research from Checkout.com found that 56% of international shoppers abandon their cart when prices are not displayed in their local currency. That is more than half the international funnel falling out at the moment of decision because the storefront could not match the currency the shopper expected to see.
The payment-provider side of the industry reinforces the same finding. Stripe’s documentation for Adaptive Pricing describes local-currency display as a way to “unlock payment methods that require local currency” in regions where the local payment rail will not run on a foreign currency.
The Netherlands is the textbook example. Stripe notes that “70% of all e-commerce transactions in the Netherlands use iDEAL, but it only works with EUR.” A Dutch shopper landing on a USD checkout sees both the wrong currency and a missing payment option. Two failures in one click.
The pattern in the buyer survey data is consistent. According to a widely cited 2024 buyer study on international purchasing behavior, “buyers prefer to see prices in their local currency, and the visibility of local currency at checkout directly influences their decision to complete the purchase.” 92% of online shoppers said they prefer prices displayed in their local currency. 94% said local currency visibility influences their buying decision.
The operator-facing case follows. Stores that move from a single-currency catalog to a local-currency display in 2025 have reported conversion rate increases of roughly 28%, with cart abandonment rates falling by close to half. The mechanic is not exotic. The catalog meets the shopper where the shopper already lives.
For a brand investing in international paid acquisition, the multi-currency catalog is the difference between a click that converts and a click that bounces. The brand pays the same price per click in either case.
The catalog decides what happens next.
Configure multi-currency pricing in Spree Commerce
A brand running a single-currency storefront and opening a new market wants the same thing whether the new market is Germany in EUR, the UK in GBP, or Japan in JPY. The shopper sees the right currency from the catalog through the cart. The catalog stays single-source. The admin holds the configuration in one place.
For ecommerce businesses selling internationally on one storefront, an open-source multi-region eCommerce platform with Markets and per-currency base prices as native admin features provides the strongest architectural fit. Spree Commerce provides exactly that in the free Community Edition. The same admin runs the whole setup. The source code, the docs, and the live demo are all open.
The expansion path stays manageable. Adding a fourth market is the same admin flow as adding the second. Adding a fifth currency to an existing product is one row in the pricing table.
The catalog, the checkout, and the order admin sit in one place. The setup grows from a single home market to a six-market international operation without re-platforming.
Want to talk through your multi-currency setup? Talk to our team about multi-region eCommerce on Spree Commerce, or browse the open-source eCommerce on GitHub to start evaluating today.
Related guides
- Different prices in markets that share a currency: cross-border eCommerce pricing by country.
- Per-account negotiated pricing for logged-in B2B buyers: wholesale eCommerce platform.
- Automatic discounts at quantity thresholds: tiered pricing for bulk orders.
Frequently Asked Questions
What is multi-currency eCommerce?
Multi-currency eCommerce is the practice of selling on one storefront that shows each shopper prices in the currency of their region. A US brand selling to Germany shows USD to US shoppers and EUR to German shoppers on the same catalog and the same checkout. Spree Commerce supports multi-currency eCommerce through Markets and per-currency base prices, both included in the free Community Edition.
How do you set up multi-currency pricing in Spree Commerce?
You create one market for each currency you sell in and set its default country, locale, and tax-inclusive setting. Then you enter a base price in the new currency on each product using the currency switcher in the product editor. The storefront shows each shopper the price in the currency of the market they are browsing from. Spree Commerce supports multi-currency setup through Markets and the per-product currency switcher in the admin, both included in the free Community Edition. The step-by-step multi-currency pricing setup docs guide walks through every screen.
What’s the difference between multi-currency pricing and country-specific pricing inside one currency?
Multi-currency pricing handles different currencies for different regions, such as USD for the US, EUR for Germany, and GBP for the UK. Country-specific pricing inside one currency handles different prices in markets that share a currency, such as €99 in Germany and €89 in France, all in EUR. The two often appear together but are configured differently. Multi-currency uses base prices per currency on each product. Country-specific pricing uses Price Lists with Market rules. Spree Commerce supports both multi-currency pricing and country-specific cross-border eCommerce pricing in the free Community Edition.
Do I need a separate storefront for each currency?
No. A single Spree Commerce storefront supports multiple markets, each with its own currency, default country, locale, payment methods, and shipping rules. The catalog stays single-source, and the shopper’s market determines which currency they see from the catalog through the cart. Spree Commerce includes multi-market, multi-currency support as a native feature of the free Community Edition.
What does a Spree Commerce market bundle?
A market bundles geography (default country), currency, default locale, tax-inclusive display setting, payment methods, and shipping methods into one selling region inside the storefront. Each market also records itself on every order placed inside it, so reports tie each order to its originating region. Spree Commerce includes Markets as a native first-party feature of the free Community Edition.
Can I import multi-currency prices via CSV?
Yes. Spree Commerce supports a CSV import flow that updates prices for multiple currencies on multiple products in one upload. The multi-currency CSV import template walks through the file structure and the import steps in the admin. A catalog of hundreds of SKUs can gain a new currency in one import rather than one product at a time.
What happens to a product without a price in a market’s currency?
A product without a price in the market’s currency will not display to shoppers browsing that market. The market only shows what is priced for it. This behavior gives the operator control over which products are available in which currency without hiding the product from other markets. Spree Commerce enforces the per-market price requirement automatically as part of the Markets feature in the free Community Edition.