Multi-market feeds (currency conversion)
Export one catalog to several countries and currencies. Set a base currency, add markets with exchange rates, and publish a separate channel feed per market.

What multi-market feeds do
Markets let you re-export the same product catalog into other currencies without maintaining a separate feed per country. You set the feed's base currency (the currency your source prices are in), then add one or more markets. Each market converts prices using an exchange rate you provide and outputs in that market's currency.
Each market gets its own channel exports and its own stable pull URLs, so you can give Google Germany a EUR feed and Google UK a GBP feed, both built from one source.
Set your base currency
Before adding markets, tell MartechFlow what currency your source prices are already in. This is the Base currency field on the feed's Markets panel.
- 1Open the feed and go to the Markets panel.
- 2Enter your Base currency, for example USD, and let it save.
- 3Confirm it is correct: every market's conversion is calculated from this base.
- The base currency is required before a market export can build. If it is missing, the market export is held and an alert explains why.
- If a source row carries a currency that conflicts with the base currency, the row is rejected for that market, because one exchange rate cannot convert mixed-currency rows.
Add a market
A market is a label, a target currency, an optional country, and an exchange rate relative to your base currency.
- 1In the Markets panel, fill in Market (a name like Germany), Currency (like EUR), and optionally Country (like DE).
- 2Enter the Rate, which is the multiplier from your base currency to this market's currency. For example, if 1 USD = 0.92 EUR, enter 0.92.
- 3Click Add market.
- 4Repeat for each country you want to sell into.
- Currency must be a valid 3-letter code; the rate must be greater than zero.
- Exchange rates are manual. You set the number, and you update it when rates move. MartechFlow does not fetch live FX rates for you.
How prices are converted
For each product, the market multiplies price and sale_price by the market's exchange rate and rounds to the market's increment (0.01 by default). The output currency is set to the market currency.
There is a safety rule for sales: if rounding pushes the converted sale_price up to or above the converted price, the sale is dropped for that row, so a non-discount never appears as a fake discount. Blank prices stay blank.
- Example: a base price of 20.00 USD with a rate of 0.92 becomes 18.40 EUR.
- Rounding uses the market's increment, so you can produce whole-currency prices for markets that need them.
Publish a feed per market
Adding a market does not create an export on its own. After you have defined a market, go to Publish and create the channel exports you want for that market (for example a Google Shopping CSV for Germany). Each market export gets its own pull URL that channels fetch.
Markets are protected from accidental breakage: you cannot delete a market while it still has exports pointing at it. Remove its exports first, then delete the market.