Shopify field mapping
Shopify Markets to multi-currency feeds
Selling into several markets means one feed per market, not one feed with several currencies. Each needs its own prices, its own currency, its own product URLs and its own tax treatment, and all four come from the market configuration rather than from the product.
The Shopify side
- API field
- market.webPresence + priceList
- Called
- Markets, with their domains and price lists
- Found at
- Settings → Markets, where each market has its own domain or path, currency and price adjustments
Before and after
Real values on the left as Shopify stores them, on the right as a channel needs them.
| In Shopify | In the feed | Note |
|---|---|---|
| UK market, price 49.00 | price 49.00 GBP, link example.com | The primary market feed. |
| DE market, price list 56.00 | price 56.00 EUR, link example.de | The market price, not a conversion of 49.00. |
| DE market, VAT inclusive | 56.00 EUR including VAT | Tax treatment follows the market, not the store. |
| US market, tax excluded | price 59.00 USD, tax handled separately | The opposite convention from the same product. |
| product not available in DE | (excluded from the German feed) | Market catalogue restrictions have to reach the feed. |
The transformation, step by step
-
Generate one feed per market, not one feed for all of them
Every channel documented here expects a feed to describe one market. A single file carrying several currencies is not a supported shape anywhere, and the channel will read one of them and be wrong about the rest.
-
Read the market price rather than converting
A market can have a price list with its own prices, percentage adjustments and rounding rules. Converting the store price at a live rate produces a number the storefront does not charge, which is a landing-page mismatch on every row.
-
Build URLs from the market's own domain or path
Markets are served on their own domain or a path prefix. Sending the primary domain to every market means shoppers are redirected, or worse, arrive on a page priced in a currency they cannot pay in.
-
Apply the market's tax convention
Whether the submitted price includes tax is a property of the market. One catalogue therefore produces a VAT-inclusive German feed and a tax-exclusive US feed from the same underlying price, which is a per-feed setting rather than a per-product one.
-
Include only what the market actually sells
Markets can restrict catalogue availability, so a product sold in the UK may not be purchasable in Germany. Feeding it into the German channel advertises something a shopper there cannot buy.
What goes wrong
Converted prices do not match the storefront
Market price lists apply adjustments and rounding, so a converted price is almost never the price the customer is shown. It is the most common multi-market feed error and it produces a price mismatch on every product rather than on a few.
One feed with several currencies is not a feed
It is a tempting shape because the data is all there, and no channel supports it. The file uploads, the channel reads one currency, and the prices for every other market are wrong in a way that looks like a pricing error rather than a structural one.
Market URLs are easy to forget
Prices get localised and URLs do not, because the price is obviously per market and the URL feels universal. A shopper then lands on a page in the wrong currency, which fails both the shopper and the landing-page check.
The number of feeds multiplies
Four markets and four channels is sixteen feeds, each needing generation, scheduling and monitoring. That is a pipeline problem rather than a mapping one, and it is the point where hand-maintained feeds stop being viable.
How feedlab maps it
feedlab treats the market as part of the feed definition: each generated feed carries its market's price list, currency, domain, tax convention and catalogue availability, from one shared set of mapping rules. Adding a market produces a new feed per channel rather than a new set of rules to maintain.
Frequently asked questions
Can one feed cover several currencies?
No. Every channel expects a feed to describe one market. A file carrying several currencies will be read as one of them, making the prices wrong for every other market.
Should I convert my prices for other markets?
No. Read the market price list. Shopify Markets applies its own adjustments and rounding, so a live conversion produces a price your storefront does not charge.
Do market feeds need different product URLs?
Yes. Each market is served on its own domain or path prefix, and sending the primary domain means shoppers are redirected or land on a page in the wrong currency.
How many feeds does a multi-market store need?
One per market per channel. Four markets across four channels is sixteen feeds, which is the point at which generation and monitoring matter more than the mapping itself.
Errors this mapping causes
Attributes involved
- price The price attribute is the item's full price before any discount, submitted as a number followed by an ISO 4217 currency code. It must match what a shopper sees on the landing page in that market, including whether tax is included, which is why multi-market Shopify stores so often trip the price mismatch disapproval.
- link The link attribute is the URL a shopper is sent to after clicking a listing, and the page the channel crawls to verify that the feed is telling the truth about price and availability. On a multi-market Shopify store it must point at the market-specific storefront URL, not the primary domain.
Related concepts
- Feed scheduling Feed scheduling is the arrangement where a sales channel fetches a feed from a fixed URL on a repeating timetable instead of the merchant uploading a file. It matters because the interval between regenerations is the window in which a channel can be wrong about a price or a stock level, and most mismatch disapprovals are caused by that window being too wide rather than by a bad mapping.
- Product feed A product feed is a structured file listing every item a shop sells, with one row per purchasable item and one column per attribute the destination understands. Sales channels use it to build their own copy of a catalogue, which is why a feed is a translation of a shop's data into another system's schema rather than an export of it.
Primary sources
Channel specifications change. These are the official documents this page is based on.