← Blog

WooCommerce Multi-Currency Setup: A Complete Guide for International Stores

Forcing international customers to calculate exchange rates in their head — or displaying “$89.00” to a shopper in Germany expecting to see euros — costs you conversions. Many international shoppers abandon purchases when prices are displayed only in a foreign currency. The fix is multi-currency, and on WooCommerce it’s achievable without an enterprise budget.

Here’s how to do it correctly.

What Multi-Currency Actually Means in WooCommerce

Multi-currency in WooCommerce means displaying prices in the visitor’s local currency and processing payments in that currency (or converting at checkout to your base currency, depending on your gateway). It’s not just cosmetic — done properly, the shopper sees prices, cart totals, and order confirmations in their currency throughout.

There are two implementation models:

Display-only conversion: Prices are shown in the visitor’s detected currency, but the actual payment is processed in your store’s base currency. The shopper’s bank handles the final conversion. This is simpler to set up and avoids the compliance complexity of holding multiple currency accounts. The downside: customers may see a slightly different amount charged than displayed, depending on their bank’s conversion rate.

True multi-currency checkout: The payment is actually processed in the selected currency. This requires a payment gateway that supports multi-currency charging (Stripe does, PayPal does) and typically means you receive payouts in multiple currencies. More accurate for the customer, more accounting complexity for you.

For most small-to-medium stores starting with international sales, display-only conversion is the practical starting point. For stores doing significant revenue in specific international markets, true multi-currency is worth the additional complexity.

Plugin Options for WooCommerce Multi-Currency

CURCY — Multi Currency for WooCommerce (by VillaTheme) — Free / $29/year premium. The most popular free option. Handles currency auto-detection by IP, manual switcher widget, fixed or exchange-rate-based conversion, and checkout display in the selected currency. Limitations: the free version shows a “Prices converted at checkout” notice that some customers find confusing.

WooCommerce Multi-Currency (by TIV.NET) — $49/year. More control over currency rules than CURCY’s free tier. Supports payment gateway filtering (only show certain gateways for certain currencies), price rounding, and fixed pricing per currency (bypassing exchange rates for specific markets).

WooCommerce Currency Switcher (by realmag777) — $29/year. Widely used, frequently updated. Good exchange rate API support (ECB, openexchangerates.org, Google Finance). Compatible with most major WooCommerce themes and checkout plugins.

Aelia Currency Switcher — $79/year. The most powerful option. Handles edge cases that cheaper plugins miss: tax calculation by currency, shipping price in customer currency, bundle and subscription product multi-currency. If you have subscription products or complex pricing, Aelia handles them correctly where others sometimes don’t.

Stripe’s native multi-currency — If you build a custom checkout or use Stripe Checkout, Stripe itself can present prices in local currency and settle in your base currency automatically, without a WooCommerce plugin handling the conversion. Worth considering for stores where subscriptions and multi-currency intersect, since Stripe handles that complexity at the payment layer.

Exchange Rate Management

Exchange rates fluctuate. A static exchange rate set in your plugin configuration can become inaccurate quickly during volatile periods — either overcharging or undercharging international customers relative to what you intended.

The two approaches:

Automatic rate updates: Configure your plugin to pull live or daily exchange rates from an API (European Central Bank for EUR rates, openexchangerates.org for broader coverage). Rates update automatically. The risk: during sharp currency moves, your prices fluctuate noticeably from day to day.

Fixed price per currency: You set specific prices in each currency manually, independent of exchange rates. A product that costs $89 USD is priced at €79, £69, and ¥12,400 — based on your commercial judgment about regional pricing, not live conversion. This is more work but gives you complete control and prevents pricing surprises.

Many stores use a hybrid: automatic exchange rates for currencies without significant sales volume, fixed prices for their primary international markets where pricing consistency matters.

Set a rate refresh frequency in your plugin settings. Daily rate updates are a reasonable default. Hourly is overkill for most stores. Never (static rates) is a problem over a 6-month period.

Payment Gateway Compatibility

Multi-currency display works independently of your payment gateway. Actual multi-currency payment processing depends on your gateway.

Stripe: Natively supports processing in 135+ currencies. The WooCommerce Stripe plugin (official) supports multi-currency processing. When a customer pays in EUR, Stripe receives the EUR payment and converts to your payout currency (USD, GBP, etc.) at Stripe’s exchange rate. You can also open Stripe accounts in different countries to receive payouts in local currencies.

PayPal: Supports multi-currency but with more restrictions. PayPal accounts can hold balances in multiple currencies, but withdrawing requires converting to your local currency (with conversion fees). PayPal’s conversion rates are less favorable than Stripe’s.

Square: Limited multi-currency support. Primarily operates in a single settlement currency per Square account. Not the right choice for stores with meaningful international volume.

Local gateways: If you’re targeting Germany specifically (where SEPA debit is common), or the Netherlands (iDEAL), or other markets with dominant local payment methods, you may need market-specific gateways. Stripe supports SEPA debit, iDEAL, Bancontact, and others — consolidating multi-currency and local payment methods in one gateway.

Geolocation and Currency Auto-Detection

The standard approach: detect the visitor’s country by IP address and automatically switch to their currency. Most multi-currency plugins handle this — they include a country-to-currency mapping and a geolocation lookup.

Considerations:

VPN users will get incorrect detection — their IP country doesn’t match their actual location. This is minor; most shoppers aren’t VPN users, and those who are typically understand the limitation.

Always provide a manual currency switcher widget. Some visitors want to compare prices in a different currency, or the auto-detection is wrong. A dropdown in the header (flags or currency codes) is standard practice.

GeoIP databases go stale. Ensure your plugin uses an updated source — MaxMind GeoLite2 is the most commonly used and is updated twice a week.

Say a handmade textile store targets US, UK, and EU markets and sets up CURCY to auto-detect between USD, GBP, and EUR. UK visitors now see prices in their own currency, which removes the mental friction of currency conversion at checkout.

Tax Implications of Multi-Currency Sales

Selling internationally triggers tax complexity that goes beyond the currency display. The two primary frameworks:

EU VAT: If you sell digital or physical products to EU consumers, EU-based sellers above €10,000 in annual cross-border B2C sales (and non-EU sellers from the first sale) must charge VAT at the rate of the customer’s country. You can report it through the EU’s OSS (One Stop Shop) or IOSS scheme instead of registering in each country. WooCommerce can display tax-inclusive prices per EU standards and handle different VAT rates by country, but you need a plugin like EU VAT Number (for B2B) or a service like Taxamo to handle the compliance layer.

US Sales Tax: If you’re a US store selling to US customers, sales tax rules apply as discussed in any standard WooCommerce tax setup. Multi-currency doesn’t change this.

Customs and duties: For physical goods shipped internationally, customs duties are the importer’s responsibility (the customer), not yours in most cases. Clearly stating “Prices do not include customs duties” in your shipping and returns policy is important for international customers.

Don’t set up multi-currency without understanding your VAT/tax obligations in your target markets. The rules are not the same everywhere, and the penalties for non-compliance are real. Consult a tax professional familiar with your specific international markets before going live.

Testing Your Multi-Currency Setup

Before going live with multi-currency, test the full purchase flow in each configured currency:

  1. Visit the site through a VPN set to each target country to verify geolocation detection
  2. Navigate to a product page, confirm the price displays in the correct currency
  3. Add to cart — confirm the cart total displays correctly
  4. Proceed through checkout — confirm the payment request is in the correct currency
  5. Complete a test purchase in Stripe’s test mode — verify the currency in the Stripe dashboard matches what the customer saw
  6. Check the order confirmation email — confirm currency is correct throughout

Also test:

  • The manual currency switcher (does switching currencies update prices site-wide correctly?)
  • Coupon codes (do percentage coupons apply correctly in each currency?)
  • Shipping rates (are shipping costs displaying in the customer’s currency?)
  • Tax rates (is VAT displaying at the correct rate for EU customers?)

Say a store launches multi-currency (USD, EUR, GBP) without fully testing the GBP/UK checkout. UK customers who have GBP selected get charged in USD at checkout despite the GBP price display, because the payment gateway integration doesn’t respect the currency switcher setting. If the first sign is a Stripe dispute weeks after launch, the fix is a gateway setting update, but every UK order until then was charged incorrectly.

Test every path before launch.

Considerations for High-Volume International Stores

If international sales represent more than 30% of your revenue, the setup becomes more consequential:

Currency-specific pricing strategy: Beyond exchange rate conversion, consider whether your prices make commercial sense in each market. A product priced at $89 converts to €82 at an exchange rate of 0.92 — but €80 is a rounder, more natural price point that converts better in European markets. Fixed pricing by currency allows this optimization.

Separate storefronts: Stores with very different product mixes, regional branding, or legal requirements in different markets sometimes create separate WooCommerce installations per region. This is more infrastructure complexity but allows complete localization including language, product catalog, and pricing.

Currency hedging: If you’re doing $100,000+/month in international transactions and have significant exposure to EUR or GBP fluctuations, financial hedging instruments exist. This is a CFO-level decision, not a WooCommerce decision — but it’s worth flagging that currency exposure is real at scale.

Our custom WooCommerce development includes multi-currency architecture for stores targeting multiple international markets. The right plugin choice, gateway configuration, and tax handling depends on your specific target countries — it’s worth getting the architecture right before launch rather than retrofitting it later.

If you’re starting with a simpler setup, talk to us about including basic multi-currency configuration as part of the build.

FAQ

Does WooCommerce support multi-currency natively? No. WooCommerce’s core plugin operates in a single base currency. Multi-currency functionality requires a plugin — either a dedicated currency switcher or a plugin like Aelia that handles the full checkout flow in multiple currencies.

Which is better: display-only conversion or true multi-currency checkout? Display-only is simpler and appropriate for stores with limited international volume. True multi-currency checkout — where the customer is actually charged in their local currency — reduces conversion friction further and eliminates the bank-conversion discrepancy. For stores doing $20,000+/month in a specific international market, true multi-currency is worth implementing.

How do I handle refunds in a multi-currency store? Refunds are processed back to the original payment method in the original currency. Stripe handles this automatically — a EUR refund for a EUR purchase goes back in EUR. The exchange rate risk on refunds is yours if you’re holding USD and refunding EUR after a rate change.

Will multi-currency affect my WooCommerce analytics and reports? Yes. WooCommerce’s standard reports show revenue in your base currency, converting other currencies. If you’re making multi-currency decisions based on revenue by market, ensure your analytics platform is reporting in consistent currency terms. Google Analytics GA4 handles multi-currency reporting well with proper ecommerce tracking setup.

Do I need to file taxes in every country I sell to? Not necessarily — it depends on your revenue volume in each country and the applicable thresholds. EU VAT has a combined €10,000 EU-wide threshold, but it applies only to EU-based sellers; non-EU sellers owe EU VAT on B2C sales from the first sale. Individual countries outside the EU have their own thresholds. Consult a tax advisor who handles international ecommerce before assuming you don’t have obligations.

Can I charge different prices in different currencies beyond just the exchange rate? Yes, with fixed-price-per-currency plugins like WooCommerce Multi-Currency or Aelia. You set specific prices per currency manually. This allows commercial pricing decisions (€80 instead of the exchange-converted €82) and regional pricing strategy (lower prices in markets with lower purchasing power, if your margin allows).