A couple of days ago I wrote about a gap that almost no Shopify Markets store checks: the price a shopper sees is localized per market, but the structured data an AI agent reads usually is not. An assistant landing on your French URL reads euros on the page and dollars in the markup, then quotes the wrong number back to the buyer. I said per-market structured data was the next step, not a setting you could flip that day.
It shipped. This is what changed, how it works, and why it is more than a storefront tweak. Facts checked June 2026 against Shopify's Markets, internationalization, and contextual pricing docs.
The short version
On the Pro and Agent plans, AgentReady now reads each market's real prices, currency, and translated content from Shopify and publishes them into the data agents and search engines read. The selection happens at render time for the market being viewed. An agent on your Canadian market reads Canadian dollars. An agent on your French market reads euros and French copy. An agent on your base market reads exactly what it always did.
Detection still runs on every plan, so any store can see what agents currently read on each market URL. The publishing is the new part.
What an agent reads now, per market
Here is the offer block an agent used to read on a French market URL, regardless of the visible euro price:
{
"@type": "Offer",
"price": "48.00",
"priceCurrency": "USD"
}
And here is what it reads now, on that same French URL, once the market sync has run:
{
"@type": "Offer",
"price": "44.00",
"priceCurrency": "EUR"
}
The number and the currency both match the page the shopper is on. The same per-market selection flows through product structured data, the Organization data on your store, and the live endpoints agents query directly.
It is not just the storefront markup
This is the part that matters for agentic commerce. AI assistants do not only read your page HTML. They read whatever machine surface they can find. So per-market awareness had to reach all of them, not just the JSON-LD in your theme:
- The MCP endpoint. An agent asking for a product can now pass a market.
get_product,list_products, andsearch_productsall take an optional country and return that market's price range and currency. A newlist_marketstool tells an agent which markets you serve, so it knows which codes to ask for. - The agent product feed. The feed now carries a
geo_priceentry per market for each variant, so an agent reading your catalog through the feed sees localized prices without crawling a single page. - Your llms.txt. The file agents read to understand your store now has a Markets section that lists the markets you sell into and their currencies, so the first thing an assistant learns is that you are a multi-market store.
Wherever an agent looks, it reads the right market. That consistency is the whole point. A localized page with base-currency markup is a contradiction, and contradictions are what erode an assistant's trust in your numbers.
Translations follow the language, not just the price
Markets is not only about currency. If you publish translated content, AgentReady now reads your translated titles and descriptions for products, collections, pages, and articles, and selects them at render time by the shopper's language. The euro price and the French description arrive together, because an agent that quotes a French price next to an English product name is only half-localized.
The part Shopify does not do
Shopify localizes price, currency, and translated resources. It does not give you a place to say something different per market in your own words. AgentReady now does, and this is the piece you cannot get anywhere else:
- Per-market store content. A tagline, store description, and shipping and returns promises you author per market. "Free returns within 30 days" in one market, "Retours gratuits sous 14 jours" in another, because the truth genuinely differs.
- Per-market FAQ answers. The shipping, duties, and return-window questions are the most market-variable facts a shopper asks, and now a single FAQ can carry a different answer per market while everything else stays shared.
You author only the markets where your message differs. Everything you leave blank inherits your base content, so this stays quick whether you sell into one market or a hundred. The authored shipping and returns promises render both as visible content and as country-scoped policy nodes in your Organization structured data, so an agent reading your schema sees the right policy for the right region. And it stays honest: a free-text promise is published as written, never dressed up as a structured return-day count we do not actually have.
Built for one market or a hundred
The whole system is designed to scale without bloating anything. Prices and translations are collected through Shopify's bulk operations on a background schedule, so a store with a hundred markets never triggers a flood of API calls or a sync that cannot finish. Payloads are size-guarded, and any market that does not fit falls back to your base offers rather than rendering blank. A single-market store carries no extra data at all and behaves exactly as it did before.
How to turn it on
Per-market publishing reads your markets and translations from Shopify, which needs a one-time permission. You approve it once from your Shopify admin, and from then on every market localizes automatically with nothing else to configure. Your base market is fully covered the entire time, so nothing regresses while you decide.
If you are on the Pro or Agent plan, the Markets settings page shows your detected markets and lets you author your per-market content. If you are not sure whether this affects you yet, run the free AI-readiness checker and it will read the hreflang alternates on your storefront and tell you how many markets you publish.
Why this matters now
AI shopping assistants are starting to answer "how much is this and will it ship to me" by reading structured data, not by rendering your page like a browser. On a multi-market store without per-market markup, the honest-looking answer is the wrong one, and the shopper never sees the page that would have corrected it. Closing the gap means the agent quotes the number your shopper would actually pay, in the currency they actually pay it in. That is the difference between an assistant that recommends you and one that quietly gets you wrong.
If you sell internationally on Shopify, this is the readiness work that was missing. Now it is one approval away.


Comments
Every comment here comes from a verified email. Write yours, confirm from your inbox, and it's live.
Loading comments…