Shopify native price rounding vs custom rounding rules
Last reviewed: .
Short answer
When you sell in more than one currency, Shopify converts your prices with an exchange rate and a conversion fee. Converted prices end in random cents. Shopify Markets has a built-in fix: a Price rounding option per market currency. It rounds converted prices up to "the most common denominator for each currency", and it also rounds shipping rates. It needs Shopify Payments, and Shopify says "You can't customize your rounding rules to anything different from these defaults."
For many stores that is enough. Custom rules make sense when you want your own ending per currency (.99, 9.90, whole numbers), different rules for cheap and expensive products, rounding down as well as up, or control over compare-at prices after conversion.
How does Shopify convert and round prices?
Shopify's Help Center gives the formula Customer price = Base price x Exchange rate x (1 + Conversion fee). Rounding is "applied after currency conversion and any price adjustments." In Shopify's own example, a converted price of €8.81 becomes €8.85 when rounding rules are active.
Limits from the Help Center:
- Payments. To take payments in several currencies, your store must use Shopify Payments or Adyen; otherwise customers in all markets pay in your store's default currency. The rounding page itself says: "Only stores using Shopify Payments can use this feature."
- Fixed rules, rounding up. The rule is a default per currency, and the option is called "Round up to the nearest {value}". You choose whether it is on; you can't change the ending.
- Gift cards and B2B. "Rounding rules don't apply to gift cards", and rounding rules set on the Markets page "don't apply to B2B customers".
- Compare-at prices. The rounding page does not mention them. If you show sale prices in other currencies, check them on the storefront.
How do I turn on Shopify's built-in rounding?
From the Shopify Help Center ("Rounding prices"):
- From your Shopify admin, go to Markets.
- Click the market you want to round prices for.
- In the Currency selector, click the market's currency to show the currency options.
- In the Price rounding section, select Round up to the nearest {value}. The value depends on the currency.
- Click Done, then save the market.
In the same options you can set the Exchange rate (FX) to Manual. Manual rates can't be used for your primary market, and you keep them current yourself. A manual rate keeps prices stable, but it does not choose the ending.
What if I want exact prices per market?
Shopify lets you set prices per market through catalogs. From the Help Center ("Managing catalogs"):
- Go to Markets > Catalogs and click Create catalog, or open your market's catalog.
- In Price adjustment, enter a percentage to raise or lower all prices. By default it also applies to compare-at prices; turn off Include compare-at price to set them yourself.
- Optionally set a specific Price and Compare-at price per product. A price you set overrides the adjustment.
- For many products, click Adjust prices > Import CSV and fill the Fixed Price column. An export only includes products with fixed prices.
- Add the catalog to the market: click the market, click the plus icon next to Catalogs, select the catalog, click Done and Save.
Fixed prices give you full control, but you type or import each one, and Shopify notes that with fixed pricing for markets you can "lose or gain money" as exchange rates change.
Native rounding or rule-based rounding: how do they compare?
| Question | Shopify Markets rounding | Rule-based rounding (app approach) |
|---|---|---|
| Price endings | Shopify's default for each currency | Your choice per market: .99, .95, 9.90, whole numbers, steps of 5 or 10 |
| Rules by price level | One rule per currency | Different rules for price bands, for example cheap vs expensive items |
| Direction | Rounds up | Up, down or nearest, within limits you set |
| Compare-at prices | Not covered on the rounding page | Can be rounded so the shown discount stays consistent |
| Preview | Check the storefront after switching it on | Preview every price before anything is written |
| Undo | Change the Price rounding option | Remove the written prices and return to automatic conversion |
| Exchange-rate changes | Follows the live rate automatically | Prices are written as fixed prices, so they must be re-rounded when rates move |
| Requirements | Shopify Payments; not for B2B customers | Depends on the app; usually Markets with a second currency |
The trade-off: native rounding needs no setup and follows the live rate, but you can't choose the ending. Rule-based rounding gives you the ending you want as a fixed price, so something has to update it when rates move.
Why do compare-at prices need extra care in the EU?
Article 6a of the Price Indication Directive 98/6/EC, inserted by the Omnibus Directive (EU) 2019/2161 and applied by Member States from 28 May 2022, says: "Any announcement of a price reduction shall indicate the prior price applied by the trader for a determined period of time prior to the application of the price reduction." The prior price is "the lowest price applied by the trader during a period of time not shorter than 30 days prior to the application of the price reduction."
Shopify's Help Center page on the directive points to the compare-at price feature for sales, and notes you can hide compare-at prices for EEA customers in the Markets section of your admin.
A sale shows two numbers: the price and the compare-at price. If each is converted and rounded on its own, the discount shoppers see in another currency can differ from the one in your base currency; a price rounded down and a compare-at price rounded up make it look larger than it is. Rounding also does not tell you whether a compare-at price is the right reference price. That depends on your price history in each market.
When is the native feature enough?
- You use Shopify Payments and sell to consumers, not B2B.
- The default ending for each currency looks fine to you.
- Rounding up is acceptable for your margins and positioning.
- You don't show compare-at prices in converted currencies, or you checked them and they look right.
What to check in your store
- List your markets, their currencies and whether each uses an automatic or manual exchange rate.
- Check whether Price rounding is on for each market currency.
- Open the storefront with each market's country selected and look at prices, sale prices and shipping rates.
- Check whether catalogs with a Price adjustment also change compare-at prices (Include compare-at price).
- List products with fixed prices per market and decide who updates them when exchange rates move.
- For sale prices in the EU, keep a record of the lowest price in the prior period in each market and currency.
- If you sell B2B, check B2B prices separately; Markets rounding doesn't apply to them.
- Ask your legal advisor how price-reduction rules apply in the countries you sell to.
How Lektoro helps (and what it doesn't do)
Lektoro: Currency Rounding is a Shopify app for setting your own rounding rules per market.
What it does:
- Sets price endings, steps, up to six price bands, rounding direction and limits on how far a price may move, per market, with presets for common currencies.
- Shows a read-only preview for every market: base, current, converted and rounded price.
- After a review step, writes rounded prices as fixed prices in the market's price list, or in its own pricing-only catalog if the market has no active price list.
- Rounds compare-at prices so the shown discount is never larger than the real discount in your base currency.
- Skips prices you set manually, unless you allow overwriting in Settings.
- Reverts any market to automatic conversion in one click and keeps a change log you can export as CSV.
- Optionally (paid plan) re-rounds prices when products change or the exchange rate moves past a threshold you set.
What it doesn't do:
- It doesn't check your 30-day price history or decide whether a sale price meets EU rules.
- It doesn't support B2B catalogs.
- In a market where some countries use another local currency, those customers still see converted prices.
- It writes nothing to your store until you click Apply.
To try rounding rules on your own converted prices first, use the free price rounding preview. It runs in your browser with the app's rules engine and changes nothing in your store.
Sources
- Shopify Help Center, Rounding prices — https://help.shopify.com/en/manual/international/pricing/rounding
- Shopify Help Center, Currency conversion and exchange rates — https://help.shopify.com/en/manual/international/pricing/exchange-rates
- Shopify Help Center, Local currencies in Markets — https://help.shopify.com/en/manual/markets/customizations/local-currencies
- Shopify Help Center, Managing catalogs — https://help.shopify.com/en/manual/markets/customizations/catalogs
- Shopify Help Center, Selling internationally with B2B — https://help.shopify.com/en/manual/b2b/getting-started/international
- Shopify Help Center, European Price Indication Directive — https://help.shopify.com/en/manual/compliance/legal/pricing-indication-directive
- Directive 98/6/EC, Article 6a — https://eur-lex.europa.eu/eli/dir/1998/6/oj/eng
- Directive (EU) 2019/2161, Articles 2 and 7 — https://eur-lex.europa.eu/eli/dir/2019/2161/oj/eng
Not legal or tax advice. This page describes Shopify features as documented in the Shopify Help Center on the date above; Shopify may change them. It does not cover national rules on price indication. Ask a qualified advisor about your prices and markets.