work about Ready to talk?

Shopify Markets Currency Rounding Bugs: What's Actually Broken and the Workaround

Shopify Markets currency rounding bugs explained: wrong price endings, checkout price mismatches and fixedAmount discount drift, plus the workaround.

date

You set your EUR market to round to .95. Half your German prices now end in .95 and the rest end in .99. A fixed €5 discount knocks €4.93 off at checkout. A customer screenshots a product page showing one price and a checkout showing another, and asks which one you are actually charging. If you sell in more than one currency through Shopify Markets, you have probably hit at least one of these.

None of it is documented as a bug. Shopify's help pages describe how rounding is supposed to work. The developer forums describe what actually happens. This article pulls the two together, explains where the Shopify Markets currency rounding logic breaks down, and sets out the workaround most merchants are using while they wait for a proper fix.

How Shopify Markets pricing is supposed to work

Shopify calculates a converted price in a fixed order. It takes your base price, multiplies by the current exchange rate, then adds the currency conversion fee. For a UK store on Shopify Payments that fee is 2% (US stores pay 1.5%). Next it applies any percentage price adjustment you have set for the market. Only then does it round, if rounding is switched on for that currency. Shopify's own documentation says it plainly: rounding is applied after currency conversion and any price adjustments.

Two things about the rounding step catch people out. You do not choose the ending. Shopify rounds to what it calls the most common denominator for each currency, and the help centre states that these defaults cannot be customised. And the rule only covers converted product prices and shipping rates. It does not touch gift cards, and it does not force the final checkout total onto a tidy ending once discounts and tax are in the mix. Fixed per-market prices sit outside this pipeline altogether: set a manual price for a market and no conversion or rounding is applied to it.

That hierarchy is logical. The problems start where real stores stop matching the diagram.

Bug one: price endings that ignore your rounding rule

The most visible of the Shopify multi-currency pricing rounding errors is prices landing on the wrong ending. One merchant on the Shopify Community set a EUR market to round up to the nearest .95 across every country in it. Some countries rounded up as expected. Germany rounded down. Same market, same rule, same products. Shopify's own support assistant in that thread agreed the pattern looked like a system-level fault rather than a settings mistake.

The shipping-rate version is better documented. On the developer forum, a France market configured to round up to .95 EUR produced carrier shipping rates ending in .99 at checkout. A Shopify staff member called it unexpected, because the documentation says rounding should apply to shipping as well as products. A second staff member could not reproduce it on a test store, and the thread stalled there. If you have read our piece on why carrier rates break at checkout under market-driven shipping, this will feel familiar. Shipping is where Markets logic is least consistent.

One quieter cause is worth ruling out first. Several merchants report that the rounding option in their Markets settings has disappeared or become fixed. If you set a custom rule years ago and it has since been replaced by the non-customisable default, your prices did not break. The rule you thought you had no longer exists.

Bug two: the fixedAmount discount that loses money at checkout

This one costs you directly. Shopify Functions let developers build custom discounts, and a common pattern is a fixedAmount discount expressed in the store's base currency. When the customer is shopping in a different presentment currency, that amount has to be converted, and the conversion is where precision goes.

The clearest report is a developer forum thread on fixedAmount losing precision. The function returned a discount of 0.70 SEK. Checkout applied 0.65 SEK. The final price moved from 128.00 to 128.05 SEK. A few öre on one line looks trivial. Across a basket of several items on a store doing hundreds of orders a day in six currencies, it is a steady leak, and it is exactly the kind of discrepancy that triggers chargeback disputes and complaints about misleading pricing.

Shopify did ship a fix. It then reverted it. The fix caused a worse bug: on subscription renewal orders in multi-currency stores, fixedAmount discounts were converted twice. In a high-rate currency like MXN the doubled discount could reach 100% of the order value, so renewals went out free. Shopify rolled the precision fix back to stop that, and the original cent-level drift returned. The last status on the precision thread was that it was still being worked on. As of November 2026, we cannot find anyone confirming it is resolved.

The discount function returns one number. Shopify's checkout engine rounds it again after the function has finished. Your code is correct and the charged amount is still wrong.

Bug three: the product page and checkout disagree

A Shopify checkout price mismatch on a Markets store usually has one of three causes, and only one of them is a Shopify bug.

    A legacy currency converter is still running. Before Markets, most stores used a theme-level converter app that rewrote prices in the browser. Leave one installed and it converts on top of the price Markets has already converted, so the storefront shows a price around 2% above what checkout charges. One merchant on the community forums saw exactly this and fixed it by removing the old converter.Fixed prices are not carried into bundles. Fixed per-market prices are honoured on the product page. Many bundle apps then recalculate the bundle from base-currency prices and reconvert, so the fixed price vanishes in the cart. Modelling the bundle as its own product with its own fixed prices is the usual fix.Rounding is applied in one place and not the other. Merchants have reported whole-euro rounding on the product page while checkout still showed cents, and the reverse. This is the genuine Markets inconsistency, and the hardest to pin down because it is intermittent.

Rule out the first two before raising a ticket. They account for most of the forum threads with this title, and Shopify Support will ask you to anyway.

The workaround merchants are actually using

The pattern that works is to take rounding and conversion out of Shopify's hands for the markets that matter. Fixed prices per market bypass the exchange rate, the conversion fee markup and the rounding step entirely, so what you type is what the customer sees on the product page and at checkout. You can set them in the bulk editor or by CSV import with per-market price columns. It is more work to maintain and you carry the exchange-rate risk yourself, but it is deterministic.

For discounts, switch fixedAmount to percentage wherever the commercial logic allows. A percentage is calculated against the presentment-currency price, so there is nothing to convert and nothing to lose. Where a fixed amount is non-negotiable (a £10 welcome offer, say), have the Function read the cart's presentment currency and return the amount already denominated in that currency, rather than returning a base-currency figure and letting checkout convert it. That does not stop the final rounding pass at checkout, but it removes the conversion step where most of the drift happens.

    Remove any legacy theme currency converter app and check for leftover JavaScript in your theme.Set fixed prices for your top two or three markets by revenue. Leave automatic conversion on for the long tail.Replace fixedAmount discounts with percentage discounts, or convert inside the Function.Price bundles as their own products with their own fixed per-market prices.Check your rounding rule still exists and still says what you think it says.

If you are on Shopify Plus and selling at volume in the EU or US, this is also the point to weigh up Managed Markets, where Shopify acts as merchant of record and handles pricing, duties and local payments differently. Our comparison of Shopify Markets vs Managed Markets covers the trade-offs.

Why this matters more than a few cents

Most Shopify brands we work with from Glasgow do not have a traffic problem. They have a conversion problem, and international checkout is where it shows up most sharply. A visitor in Munich who sees €49.95 on the product page and €49.99 at checkout does not think about rounding rules. They think the store is unreliable, and unreliable stores lose the sale at the exact moment it should close. Odd endings like €43.17 have the same effect: the price looks machine-generated, because it is.

When we run conversion rate optimisation on a multi-currency store, the pricing audit comes before any A/B test, because a test tells you nothing useful if a fifth of your checkout sessions see a different number from the one that got them there. It is also one of the first things we check during a Shopify migration. Stores arriving from Magento or WooCommerce often bring a legacy converter and hand-rounded prices with them, and both need reconciling against Markets before launch.

What to do this week

Open an incognito window, set your location to your second-largest market, and walk one product from listing to payment. Write down every price you see. If any two of them differ, you have your starting point, and the three sections above will tell you which bug you are looking at. Then fix prices for that market, and repeat for the next one.

If you would rather have a senior Shopify team run that audit and build the fixes into an ongoing programme, that is what our Conversion Growth Retainer is for. No juniors, no outsourcing, and no promises about Shopify's bug tracker, just workarounds that hold up. Get in touch and tell us which currencies are giving you trouble.

Related articles

view all

(01) Shopify One-Page Checkout vs Three-Page: Can You Revert It, and Should You?

Shopify one-page checkout vs three-page: who can revert, why abandoned checkout emails dropped, and what non-Plus merchants can still fix at checkout.

read article

(02) Shopify Agentic Storefronts Explained: What Changed Since OpenAI Scaled Back Instant Checkout

OpenAI scaled back ChatGPT Instant Checkout. What Shopify Agentic Storefronts means for your store, which admin settings to check and what to ignore.

read article

(03) Shopify ADA and EAA Accessibility Compliance: What an Agency Fix Actually Involves

Shopify ADA compliance and EAA rules explained for store owners: why Shopify stores get sued, WCAG 2.2 AA, and what a proper theme fix involves.

read article

Stay ahead of the Shopify curve

Uncover Insights brings the latest Shopify trends, practical tips, and a look behind the scenes straight to your inbox.

    We won't send you spam. Unsubscribe at any time.

    Big plans for your Shopify store?
    Let's talk.