Everything you need to know about Shopify Markets: a developer’s perspective
My name’s Roberto Aresena, I’m a Shopify developer. I freelance with Storetasker and run my own dev studio, Mushdesk where we’ve developed a geolocation app called ORBE. In this post, I wanted to explain what Shopify currently has to offer with Shopify Markets and detail what are its nuances and limitations as a developer. Hope this helps you! Find me on twitter in case you have any questions.
What is Shopify Markets?
In its most fundamental form: Shopify Markets lets merchants sell internationally, from one Shopify store. Prior to Shopify Markets, merchants had to set up separate stores under separate domains to serve different markets. Now, merchants can create multiple local shopping experiences with only one Shopify store.
With Shopify Markets, we’ve gone from: “yourstore.com” + “yourstore.fr” (france) to “yourstore.com/fr-fr”. Leveraging one store instead of multiple has many benefits, from operational efficiencies to SEO gains.
The next important feature to call out from Shopify Markets is “custom product pricing”.
As a business, you might have been hesitant to sell one product at the same exact price in different markets. Each market has different dynamics from a competition standpoint and from a tax / duty standpoint, so pricing one product the exact same across multiple markets doesn’t quite make sense.
But Shopify Markets enables us to change prices of products depending on the region they’re sold in. A small but critical update to Shopify.
With Shopify’s global understanding of taxes and duties, those price adjustments are also automatically reflected in whichever market your customers are shopping from.
The technical aspects of Shopify Markets
Setting up Shopify Markets
It’s as simple as going under “Setting > Markets” and turning it on. First, you’ll have to select a “main market” (for example: USA) and then select which markets you’d like to unlock, and their language (for example: France, French).
Once you’ve done that, you’ll need a smooth redirect experience to take your international customers to the correct URL where they can experience your localized store experience. To do that, you’ll need a “geolocation” app which is a popup which prompts your customers to select their country, based on their IP address.
Geolocation by Shopify is free, but lacks some customization features, and I’ve built my own: ORBE to create an on-brand geolocation experience.
You may not be eligible for Shopify Markets if:
- You’re using 3rd party payment methods
- Your store’s main currency is Brazilian Real (not available on Shopify Markets yet)
- One or more of your domains is not targeting a country or region
- Your primary domain is not targeting your primary market (.com - not targeting France if France is your primary target)
The routes object
If you want to save yourself a ton of headache with your drawer carts (Shopify AJAX cart), please update your cart JS libraries – if you’re using any – and use the routes object when you want to refer to any cart URL in your code. In case, you are using a Shopify 2.0 theme, don’t worry about this.
Once you have that in place, you can do very cool things like:
1. Create sections or content depending on the market
Using the localization and country objects, you can wrap content that conditionally shows, hides, or changes content based on the customer’s context. For this, you should use the country ISO code, and not “localization.country.name” because country names will be translated when you offer multiple languages and this will result in conditional content only working in one language.
More information on this here.
2. Hide products for some markets
Let’s say you have a client who wants to direct customers to a merchant’s website in a certain country where one of their products is unavailable. You can hide those products using the same ISO code logic explained above.
3. Leverage the Shopify API for custom app development
The “market” object is now available in the GraphQL API. This means you can access all the regions and countries your client has set up, and leverage them to create custom logic. For example:
- Discount products depending on the market
- Setup B2B channels depending on the market
- Create multiple feeds for different markets
- An app to manage the multi pricing more easily
- Create custom Klaviyo integration to leverage flows across different markets / languages – I hope to see soon the Klaviyo team improving their current app for Shopify.
Important callout: You might run into limitations when working with the markets object via the API, by hitting the API rate limit very quickly. This is because any API call gets duplicated to the number of markets you’ve made available.
What’s coming up on Shopify Markets?
Shopify Markets still has a long way to go, but they’ve been good at outlining what’s to come. Here are some of the possible features I’m most excited about:
1. Custom product catalogues (Already announced)
You currently cannot toggle a product on/off unless you apply some custom code. But this will change.
2. Market-specific fulfilment (Not enough info yet)
Merchants need more info about how to show the stock of a product in each market and connect inventory to local fulfilment. Ex: A product could be “out of stock” in the UK, but not in Germany.
3. Markets that are not just countries (Not announced)
For example, create a different pricing strategy and experience for the California state than for New York.
4. Custom storefronts (Already announced)
The Theme Customizer will have a market selector to custom each storefront for each market. Hugely powerful. For example: Not every market celebrates Mothers Day on the same day - so you’ll be able to customize the store experience depending on the market.
5. Native translations (Some rumours)
It’s currently necessary to use a 3rd party app to translate your site. This will soon happen natively within the app. This is great because it will have huge beneficial gains from an SEO standpoint.
6. Translated URL slugs (Not announced)
Being able to translate the slug/handle of products, collections, blog posts. Example: /products/black-shirt – es/products/camisa-negra. This would have great benefits from an SEO standpoint too.
To conclude, here’s a little bit about my app: ORBE
When you start selling internationally, you will need to be very smart about how you direct customers to the right, localized experience. Not doing so will leave customers confused about languages, currencies and product availability - which will mean lower sales for you.
So I’ve created an app called ORBE that allows users to make sure they are buying from the correct local version of their store. Here are the key features:
- Customize your modal according to your brand (unique to ORBE)
- Redirect your customers to the right shopping experience once they give you consent (unique to ORBE)
- Automatically connect with Shopify Markets.
- GDPR and California Law compliant (unique to ORBE)
Should you have any more questions about Shopify Markets from a dev perspective, feel free to reach out via twitter.
-Roberto