# How to test Shopify Markets geolocation, country by country

> To test Shopify Markets geolocation, make the exit, timezone and language name one country: Shopify reads the IP for country and the browser for language.

Source: https://mosaicbrowser.com/blog/shopify-markets-geolocation-test

## Checking what Shopify Markets shows a buyer in each country

To test Shopify Markets geolocation, make the exit, timezone and language name one country: Shopify reads the IP for country and the browser for language.

![3: Exit, timezone, language: one country, beside a screenshot: a proxy provider in Mosaic: one gateway line that mints a separate session for every profile](https://mosaicbrowser.com/covers/shopify-markets-geolocation-test.webp)

To test Shopify Markets geolocation, you need a browser that looks like one buyer from one country: an exit address there, that country's language in the browser, and no history with your store. Shopify picks the market from the visitor's IP location and the language from what the browser asks for, and it remembers any choice the visitor made. Change only the VPN and you are testing a mixture.

## What Shopify Markets reads from a visitor

Shopify's help pages on domains and languages describe two automatic redirects, switched on separately. Country redirection sends a visitor to the market for the country their IP address is in: the domain or subfolder, the currency, the prices and the shipping rules that come with it. Language redirection picks the storefront language from the browser's own language preference, when the market has that language.

The browser's language preference arrives in the `Accept-Language` header on the very first request, before your theme has run a line of script. Chrome builds it from the profile's language list, so `de-DE,de;q=0.9` asks for German as spoken in Germany first and any German second. The IP address arrives with the same request. Those two values are the whole input to the first page a visitor sees.

The third thing to know is memory. When a visitor uses the country or language selector, the store keeps that choice for later visits. A test browser that once picked France still sees France after you move its exit to Germany, and that is correct behaviour for a real buyer.

Mosaic is a desktop app

Email yourself the link and open it on your computer.

[How it works: Provider minting](https://mosaicbrowser.com/features/proxy-providers)

## Why a VPN and a private window miss half of it

The usual advice is a VPN plus a private window. The private window clears the store's memory, which helps. The VPN moves the IP. Neither changes the language your browser sends, so a German exit with your English browser tests "a German address whose browser asks for English". That is a real buyer too, but it is not the German buyer you meant to check, and the language redirect will make a different choice for them.

The clock is the other loose end. Shopify's documentation does not list the timezone among the inputs to its redirect, so it will not change which market you land on. We match it anyway, because the point of the test is one buyer from that country, and a script on your storefront can read the clock as easily as the language.

## How to test Shopify Markets geolocation, market by market

Before you start, write down what each market should show. Then, for every country, open the store's main domain, not a market URL, so the redirect has something to do, and record:

1. The address you landed on, domain or subfolder.
2. The currency on a product page and in the cart.
3. The language of the page. Most themes, Dawn included, print it in the `lang` attribute of the `<html>` tag, which is quicker to read than the copy.
4. The shipping rates offered for an address in that country, at checkout.
5. What happens when you use the selector to switch away and reload. The choice should stick, and that is the moment this browser stops being useful for testing another country.

Shopify's theme editor can preview each market's content. That checks the pages, not the redirect, so use it for content and the steps above for what a visitor lands on.

## Running it in Mosaic

In Mosaic each market gets its own profile, created with a proxy that exits in that country, because a profile created against a checked proxy is drawn for that exit from the start: timezone, language and geolocation together. Each profile has its own empty cookie jar, so the German profile never carries the French test's saved choice.

With a provider saved from your proxy seller's gateway line, pick the country when the profile is created and Mosaic mints that profile its own session there, as long as the seller's line format has a word for the country. [Proxy providers](https://mosaicbrowser.com/features/proxy-providers) has the set-up. Pin the country rather than the address, so the store sees the same country on every launch even if the exit inside it moves.

Two limits are worth knowing. A profile's language follows the exit only before its first run. On a profile with history, a language that disagrees with a new exit is reported and left alone, for reasons [Accept-Language versus the proxy country](https://mosaicbrowser.com/blog/accept-language-and-proxy-country) explains with the case that taught us. So a market test wants a new profile per country, not one profile moved from exit to exit. And the locale table that languages are drawn from covers about fifty countries, so for a market outside it, check the language the profile was given before you trust that part of the test.

Use this on stores you run or are paid to test. When the redirect is right, the next check is checkout itself, which [testing your own checkout as a customer](https://mosaicbrowser.com/blog/test-checkout-as-customer) walks through with test payments and a one-time profile. The [e-commerce sellers page](https://mosaicbrowser.com/use-cases/e-commerce-sellers) covers keeping each store's own admin in its own profile day to day.

## Questions

### How do I test Shopify Markets geolocation?

Visit your store's main domain from a browser that leaves through an address in the country you are testing, has never visited the store, and asks for that country's language. Then read the currency, the language and the domain or subfolder the store sent you to.

### Why does Shopify keep showing me the wrong country after I change my VPN?

The store remembers a country or language a visitor picked, so a browser that has been there before carries its old choice. Clear the store's cookies, or use a browser profile that has never visited, for every country you test.

### Does Shopify Markets use browser language or IP address?

Both, for different things. Shopify's help pages describe country redirection by the visitor's IP location and language redirection by the language the browser asks for, as two separate settings.

### Is the theme editor's market preview enough?

It shows what each market's content and prices look like, which is useful. It does not exercise the redirect itself, so it cannot tell you what a real visitor from that country lands on.

## Related

[Testing your own checkout as a customer who has never visited](https://mosaicbrowser.com/blog/test-checkout-as-customer): To test a Shopify checkout as a customer, pay with a test method from a browser that has never seen your store: no admin login, no saved address, no cart.

[A Russian exit and a profile speaking Mexican Spanish](https://mosaicbrowser.com/blog/accept-language-and-proxy-country): A profile matched to a Russian exit kept sending es-MX in Accept-Language. Leaving the language alone was right. Saying nothing about it was the bug.

[Mosaic for e-commerce sellers running several stores](https://mosaicbrowser.com/use-cases/e-commerce-sellers): Keep each store you are entitled to run in its own browser profile, with its own exit, cookies, logins and downloads, so stores never mix.

[Provider accounts: one gateway line, one exit per profile](https://mosaicbrowser.com/features/proxy-providers): Paste your proxy seller's gateway line once and Mosaic mints a separate session for every profile, so each one browses from its own exit address.

[Checking your cookie banner from the countries that require it](https://mosaicbrowser.com/blog/cookie-banner-by-country): Consent tools pick the banner by the visitor's IP location, so your office sees one version. Test each region from a fresh profile with an exit there.







## Mosaic, on your own computer

The browser this blog is about: its own Chromium, fingerprints from real machines and a proxy exit per profile. Free holds 3 profiles. Pro is $49 a month for any number.

Mosaic is a desktop app

Email yourself the link and open it on your computer.
