/ Blog

Selling in Multiple Currencies on Shopify. A Viable Solution?

  • DATE PUBLISHED (23/2/2019)

Does Shopify multi-currency feature solve the problem for Merchants?

Yes, It does only to a certain extent. Because

  1. It is now available only on an Enterprise plan (Shopify Plus)

  2. Shopify uses Real-time currency rates to convert the base price into the user local currency based on the location which means to see a product for $10 in the UK and for $15 equivalent in the US, this feature won’t help you.

  3. The Shopify new multi-currency works only with Shopify Payments and there are a lot of cases where Shopify payments were not approved for merchants since the merchants are not able to comply with all the requirements.

For now, at least 7,94,000 were exposed to this challenge. Yes, that is the number of active merchants on Shopify excluding Shopify plus client number(supports above 6000 Businesses) For merchants who are not on Shopify plus and want to sell in multiple currencies, there are a couple of apps to do so, however, using the apps is not feasible for following reasons,

  1. The app does a lot of code injections into the theme

  2. The injected code remains unwanted even when the app is uninstalled

  3. The stack of code injection will lead to performance issues

Enough prelude about the problem, what is the solution?

It isn’t a “one size fits all “ kind of solution for the merchants. But there has been an assortment of clients who have followed this it has worked perfectly well for them.

The value proposition of the solution for the merchant is to sell in multiple currencies

First things first,

Maintain separate variants for each currency. if you are a merchant, whether you are open to doing this or not will determine if this solution is for you or no. To elaborate the separate variants, the need is to divide the inventory between the multiple currencies. Ex: A product with size options S, M, X, XL, usually creates a product with Size options and the four variants. But to sell in different currencies, in this case, the US and UK, The merchant has to create an option for currencies also which will have 8 variants(S, M, X, XL * currencies of the US and UK). Each size inventory is divided between two currencies which will allow you to set the price for the UK. Please note that the price is set in USD, even for UK variants.


This is how your variant creation will look like

Dividing the inventory between multiple countries and maintaining them can be a challenge for some of the merchants especially when they have an exhaustive catalog. But if you are okay with it then the rest of the process is straightforward with a resourceful developer.

Once the setup for products and variants are made for multiple currencies, the developer can do the rest in the following steps

  1. Identify the location using GEO API, to determine the currency

  2. Important: On theme, Based on the user location, write a js function that will make the correct country swatch is selected by default on load in the product page. Basically set display none for the country swatch and the js function will take care of selecting the right country swatch based on location.

  3. In theme have a class=”money” with a data-money=”{{USD prices}}” on all money spans. You can set this in your Currency format settings as well.

  4. Make an API request to get the real-time exchange rates

  5. Write another function that will target all the money class on the page and convert them at the above rates, and display the prices in converted currencies

  6. Basically, in the above step, the intent is to display only UK variants for the UK visitors and convert the UK prices in USD that is in Shopify backend into GBP. So the UK visitors are seeing $15 equivalent variant in GBP instead of $10

  7. So when a UK customer adds an S size to the cart, then he/she is purchasing it at $15 value

If the Shopify store is in standard Shopify plans, the customer will see the prices in USD again in checkout. These conversation js functions will not work in checkout as the regular plan stores don’t have access to checkout.liquid. But even if the pricing is showing in USD, the objective of selling at different rates for different countries is achieved considering that you have a payment gateway that supports international cards.

Bonus Tip:

Merchants on Shopify plus, using Shopify multi-currencies can easily achieve this with variants set up for multiple currencies and modifying your theme to display the variants based on your location since the rest of the currency conversion will be automatically taken care of by Shopify multi-currency feature.

Bonus Tip #2:

In case, splitting variants between each currency is not an option, then get a middleware app built which handles variant splitting and syncing with Shopify, Inventory consolidation, and Adjustment based on order events while giving the single view of inventory.

Few things to Note:

  1. This solution may not work for all the merchants especially those who don’t have the flexibility to maintain each variant as a separate SKU for each currency/country that they want to sell in, but this solution could work well for small to medium catalog merchants as it did for our clients.

  2. Since this is more of a frontend solution i.e toggling between the variants based on user location, currency conversation etc., it comes up with few drawbacks such as anyone who has HTML experience and how to inspect the code can try to modify what they are seeing in terms of variants but this is a solvable problem with some additional js checks.

I hope this helps you to sell at different rates in different regions which is the true purpose of multicurrency selling. If you have questions, shoot them in the comments or email me at gopi@coderapper.com. I’ll try to answer every one of them!