Multi-market product search for more than one country
Selling in more than one country: building multi-market product search
A shopper in Manchester and a shopper in Munich can ask for the same kettle and need different answers. This guide covers market codes, local-currency prices, shipping origin versus delivery destination, and how to compare prices fairly when your product search spans more than one country.
A shopper in Manchester and a shopper in Munich can type the same request, "quiet kettle under 80", and need completely different answers. The currency is different, the retailers are different, the plugs are different, and "80" means pounds to one and euros to the other. Product search that ignores this will give confident answers that nobody can buy.
This guide covers the decisions that matter when your product search or shopping assistant serves more than one country: how to represent a market, how to treat prices, what shipping filters really mean, how to find out where the shopper is, and how to compare prices without misleading anyone.
Treat the market as part of every request
A market is the country whose retailers, prices and availability you are searching. The simplest reliable approach is to make it an explicit parameter on every search, using a two-letter country code such as GB, US, DE or FR. Do not infer it from the language of the query. English is used to shop in the UK, US, Australia and Canada, and a German speaker may live in Austria or Switzerland.
In the Simlir REST API the market is the gl parameter. The same query in two markets is two separate requests:
Code examplejson
GET https://simlir.com/api/v1/search?q=quiet+kettle&gl=gb&limit=5
GET https://simlir.com/api/v1/search?q=quiet+kettle&gl=de&limit=5
The markets listed in the Simlir docs are GB, US, DE, FR, ES, IT, AU and CA. Depth varies by country and category, so a limit is a ceiling, not a promise: some markets will return fewer results, or none, for a narrow request. Your assistant should handle that honestly rather than quietly falling back to another country.
Keep prices in local currency, with their date
Show the price the shopper would actually pay, in the currency the retailer charges. Converting a US dollar price into pounds produces a number that no UK retailer is offering, and it hides import costs, taxes and delivery charges. A converted price is an estimate; label it as one or leave it out.
Every price should also carry its currency, its retailer and the date it was checked. Prices move, and a shopper deserves to know whether a figure is from this morning or last month. We cover this in more depth in why every product price needs a source and a checked time.
Does shipping origin tell you where an item will be delivered?
This is the mistake that causes the most confusing answers. A filter on where a merchant ships from tells you nothing certain about where it will deliver to. A UK retailer may ship to Ireland but not to Norway. A merchant shipping from Germany may deliver across the EU, or only within Germany.
Field
What it tells you
What it does not tell you
Market (gl)
Which country's retailers and prices you are searching
Whether a given address can receive the item
ships_from
The country the merchant ships from
The countries the merchant delivers to
Retailer link
Where the shopper can check delivery terms and buy
Final delivery cost until the shopper enters an address
In Simlir, ships_from filters the merchant's shipping origin, not the delivery destination. It is useful when a shopper wants to avoid customs charges or long delivery times, for example "only show me pram sellers shipping from the UK". For delivery itself, send the shopper to the retailer link and say plainly that delivery terms are confirmed there.
Ask for the shopper's market when you are not sure
Good signals include an account setting, a saved delivery address, or the site's own country version. Weaker signals include IP location, browser language and currency symbols in the query. If the signals disagree, or there are none, ask one short question before searching:
"Which country should I search in? Prices and stock differ, so I want to show you things you can actually get delivered."
Remember the answer for the rest of the session. Asking once is far better than showing a list of products in the wrong currency and making the shopper start again.
How do you compare prices across countries fairly?
"Cheapest" only makes sense among offers a shopper can choose between. Comparing a £64 UK price with a 69 euro German price and a 79 US dollar price tells the shopper nothing useful, even after conversion, because delivery, tax and returns are different in each case.
Group offers by market firstRank and compare prices only inside the shopper's market.
Match on identifiersUse GTIN or brand plus MPN to be sure two offers are the same product before comparing them.
Show the currency and checked dateNever strip the currency symbol or the snapshot date from a price.
Separate cross-border optionsIf you show an overseas offer, put it in its own section and say that delivery and duties may apply.
Say when a market is thinIf only one or two retailers appear, say so rather than calling one of them the best price.
Watch for products that change by country
The same model name can hide real differences. Dishwashers and kettles have different plugs and voltages, headphones may ship with different chargers, and trainers use different size systems. Identifiers often differ too: a product sold in the UK and the US may carry different GTINs. Treat specifications and identifiers as market-specific, and avoid recommending a product from another market without saying what might differ. A clear product data schema makes these fields easy to check.
Putting it together
Work out the shopper's market from strong signals, or ask.
Search that market only, with the market code on every request.
Apply ships_from only when the shopper cares about shipping origin.
Show local-currency prices with retailer and checked date.
Compare prices only among offers in that market, matched on identifiers.
Link to the retailer for delivery terms and purchase.
Should I convert prices into the shopper's currency?+−
Only as a clearly labelled estimate. The price a shopper can act on is the one the retailer charges in its own currency, before delivery and any import costs.
Does filtering by ships_from mean the item will be delivered to me?+−
No. ships_from describes where the merchant ships from. Delivery destinations and costs are confirmed on the retailer's site.
What if the shopper's market returns no results?+−
Say so, suggest relaxing a constraint such as price or brand, and only offer another market if the shopper agrees and understands delivery may differ.
Which countries can I search with Simlir?+−
The markets listed in the Simlir docs are GB, US, DE, FR, ES, IT, AU and CA. Pass the market as the gl parameter on each search; depth varies by country and category.