If you've worked on a Shopify store which needed to support multiple currencies, you'll of probably realised that there's only so far you can go with the platform. My main gripe with the multi-currency feature is that it didn't allow merchants to manually set product prices depending on currency being being used by customers, you had to rely on an automatic exchange rate and that was about it.
The limitations with multi-currency left us with a few options, none of them were great:
- Create currency-specific duplicates of each product, e.g. "T-shirt - GBP", "T-shirt - EUR", set a different price and code logic into the theme which includes/excludes products based on active currency
- Create a different Shopify store instance for every currency and set different product prices per-store
In a nutshell, these solutions are brittle, hard to maintain and/or overly expensive.
Shopify changed this last month by launching a new feature which allows merchants to manually control product/variant prices per-country/region, it's not perfect, but it's a game-changer in my opinion. Here's a little video of it in action:
Notice how the price is set to £20.00 for GBP users and €100 for EUR users - awesome!
Now, let's look into how these prices are set in the Shopify admin, spoiler alert: it's not great. Here's the basic workflow (this assumes that you've setup Shopify Payments and added at least one other country/region which uses a different currency to your shops base currency):
- Head to Shopify Admin -> Products
- Select the products you wish to change the prices of
- Export them as CSV
- Open the CSV in your favourite spreadsheet editor
- Scroll all the way to the last column and for each country/region you've added, there's two new columns titled "Price / COUNTRY" and "Compare At Price / COUNTRY" where "COUNTRY" is the actual country/region. I've setup my Shopify Payments to include "United Kingdom (GBP)" and "Germany (EUR)" so I have the columns "Price / DE" and "Compare At Price / DE"
- Populate the product/variant prices as you wish and save the CSV file
- Go back to Shopify Admin -> Products and import the CSV file making sure the "Overwrite any current products that have the same handle." checkbox is checked
- Confirm the prices have been successfully set by visiting your store, selecting a different currency and viewing the products
I don't know about you, but that seems like a pretty cumbersome process to me! It would have been much better if Shopify just extended the variant edit pages to include a nice UI for merchants to input country/region-specific prices.
Here's an example of what the CSV file looks for a product which has variants and a country-specific price set for each variant. The regular price for each variant is £20 but when the customer is viewing the store with the Euro currency, they'll see €100 for variant "S", €200 for variant "M" and €300 for variant "L":
It's worth noting that this functionality requires you to use Shopify Payments and the Checkout will persist whichever currency the user selects - see more about the requirements/limitations of this feature in the Shopify documentation.
While the UX of inputting the country/region-specific product prices isn't ideal, I think this feature is well overdue and it's promising to see it finally land. There's also a GraphQL API mutation "priceListFixedPricesAdd" which can do this programmatically so I imagine third-party app developers will be keen to monopolise on this and merchants will have to rely on apps to manage product prices. It seems annoying to have to pay for an app to do this but it's a lot better than importing via CSV every time!
Another feature which landed last month includes being able to use percentage price adjustments to increase/decrease product prices globally based on the customers active currency. This is done via Shopify Admin -> Settings -> Payments -> Shopify Payments -> Countries/regions -> Edit:
From here you can globally increase/decrease all product prices for this specific country via inputting a percentage into the "Price adjustment" field (value has to be between -99% and 999%). Pretty cool - I've never needed this functionality in the past but it's good to know it now exists!
These latest changes to the Shopify multi-currency feature certainly bridges the gaps and the need to use the dreaded multi-store approach is getting smaller. My only wish now is the ability to have country/region-specific products/collections, probably a pipe dream but we'll see.