Selling bundles into more than one market means every bundle price is computed at least twice: once by Shopify Markets, which converts and rounds each product price per market, and once by your bundle app, which applies the discount. When those two computations disagree, the customer sees one number on the product page and pays another at checkout — in a currency you probably do not look at daily. This page is the checklist for catching that before your customers do. It is vendor-neutral: every check below works with any bundle app, including ours.
Disclosure, stated up front: Crescano builds Solid Bundles, whose one-click verification automates most of this checklist. The checklist itself works by hand, with any app, on any store.
Why do bundle prices break abroad at all?
Because a discount defined in one currency has to be applied to prices that live in another. A percentage discount survives that trip intact: 15% of the converted price is exact in any currency, because the percentage applies after conversion. A fixed-amount discount does not: "$9 off" must itself be converted, and that conversion rounds independently of the component prices it is subtracted from. Add per-market rounding rules (prices ending in .95, .00, or .90 depending on the market) and the drift compounds. Cents of drift sounds cosmetic until it inverts: a bundle that displays as cheaper than buying the parts separately, but checks out as more expensive, is the kind of thing customers screenshot.
The six-point checklist
Run each check in every market you sell in, not just your top one. The only reliable instrument is a real cart in that market — previews render from your session's currency and hide exactly the failures you are looking for.
- Displayed bundle price after conversion. Open the product page from each market (or with the market preview tool) and compare the bundle price against the sum of converted component prices minus the discount. They should agree to the cent.
- The discount the customer actually receives. Add the bundle to a cart in that market and read the discount line. A fixed-amount discount converted separately can differ from the product-page promise; a percentage should not.
- Cart total vs product-page promise. The number that converts a customer is the one on the product page. If the cart total is higher, even by a cent, you have a trust bug, not a rounding bug.
- Checkout total in the presentment currency. Complete a test checkout (Shopify's Bogus Gateway on a dev store, or a real order you refund). Discounts can behave differently at checkout than in the cart, and this is the only place you see the final rounding.
- Market-specific price overrides. If you set fixed per-market prices for some products, check bundles containing them: the bundle math may still use the converted base price rather than your override.
- Per-market stock and availability. If inventory is split across locations serving different markets, check that the bundle's availability in each market reflects the stock that market can actually ship, and that a component out of stock in one location does not silently sell the bundle there anyway.
Percentage vs fixed-amount discounts, in one table
| PROPERTY | PERCENTAGE DISCOUNT | FIXED-AMOUNT DISCOUNT |
|---|---|---|
| Applied | After currency conversion | Defined in base currency, converted separately |
| Rounding points | One (the converted price) | Two (price and discount round independently) |
| Exact in every market | Yes, structurally | Only by coincidence of rates and rounding rules |
| Safe default for international stores | Yes | Test per market before launch |
When should I re-run the checklist?
Multi-currency correctness is not a launch-day property; it decays. Re-run the checks when you add a market or currency, when you change a bundle's contents or discount, when you set or change per-market price overrides, and before any sale event that will send traffic to non-base markets. Exchange rates move daily, and a fixed-amount discount that rounded well in January can round badly in June without anyone touching the store.
How Solid Bundles automates this
Solid Bundles was built for one thing: bundles serious operations can trust — and multi-market pricing is one of the places that trust is usually lost silently. Its verification tool builds a real test cart in every market you sell in and reports what the customer would actually pay: bundle total, per-line prices, discount applied, and cart-to-checkout conversion, per currency, before the bundle goes live. Discounts are percentage-based with per-line allocations computed from converted prices, so the structural drift of fixed amounts does not enter in the first place. That is most of this checklist, run in one click instead of one afternoon; checks 5 and 6 are covered by the same run because the carts are built per market against live stock.
Install the trial, click Verify, and read the report for every market you sell in. If a bundle would price wrong anywhere, you will see it at your desk, not in a customer email: email [email protected] with questions.
View on the App StoreChoosing a bundle app from scratch? Start with the two architectures and the five-minute test. Working out whether a bundle discount is even worth giving? Use the bundle margin calculator.