How to Run a Different Cart for Every Shopify Market

Free shipping thresholds, delivery promises and offers that make sense in one country are wrong in another. A practical guide to per-market cart personalisation on Shopify.

Editorial illustration for How to Run a Different Cart for Every Shopify Market

Key takeaways

  • A single global free shipping threshold is wrong in most of your markets, because it is set from domestic order values and domestic shipping costs.
  • Delivery estimates are the highest-value thing to localise. A domestic promise shown internationally is a support ticket waiting to happen.
  • Block-level conditions are usually more maintainable than building a separate cart per market.
  • Currency conversion is not localisation. A converted threshold still needs to be a psychologically sensible number in the local market.

Most stores that sell internationally are running one cart in every country. The currency changes, and nothing else does.

That is a bigger problem than it looks, because almost every number in a cart is a claim about logistics — and logistics are the thing that varies most across borders. A free shipping threshold encodes your domestic shipping cost. A delivery estimate encodes your domestic carrier's transit time. A returns promise encodes your domestic returns address. Show all three unchanged to a shopper two thousand kilometres away and at least one of them is wrong.

What actually differs between markets

Before deciding what to personalise, it helps to be precise about what varies.

VariableVaries by market?Consequence if ignored
Shipping cost to fulfilHeavilyFree shipping threshold is unprofitable or uncompetitive
Transit timeHeavilyDelivery estimates become false promises
Average order valueModeratelyThresholds sit at the wrong percentile of the distribution
Price sensitivityModeratelyDiscount depth is over- or under-calibrated
Duties and taxesHeavilyCart total surprises the shopper at checkout
Payment expectationsModeratelyExpress checkout options are irrelevant or missing
LanguageAbsolutelyTrust collapses at the worst possible moment
Returns logisticsHeavilyYou promise something you cannot deliver cheaply

Only two of those are solved by currency conversion. The rest need a decision.

Start with the delivery estimate

If you change one thing, change this.

An estimated delivery date in the cart is one of the highest-value pieces of information you can show, because it answers the question shoppers most often leave to go and look up. It also has the highest cost when it is wrong, because a missed date is a support ticket, a refund request and a review.

The rule is simple: the estimate shown must be the estimate for the shopper's actual destination, based on the actual carrier and lane you will use. If you cannot compute that reliably for a market, show a range wide enough to be true, or show nothing. A vague honest range beats a precise false one.

Then the free shipping threshold

A threshold is a profit decision disguised as a marketing one. The maths behind it:

The gross profit on the incremental spend required to reach the threshold must exceed your average shipping cost to that market.

Which means the threshold must move when either side of that inequality moves — and both sides move across borders.

Setting it properly per market:

  1. Pull the order value distribution for that market only, last 90 days.
  2. Find the 60th–75th percentile.
  3. Compute your average fulfilment cost to that market, including duties if you absorb them.
  4. Check that gross margin on the gap between median order value and the threshold covers that cost.
  5. Round to a number that reads naturally in the local currency.

That last step matters more than it sounds. A threshold of "€68" produced by converting $75 looks like an algorithm ran. "€70" looks like a decision. Shoppers respond to round numbers as goals in a way they do not respond to arbitrary ones.

Localise the copy, not just the currency

Cart copy is short, high-stakes and frequently the last untranslated surface on an otherwise localised store.

The strings that matter most:

  • The progress bar sentence, which is the one shoppers actually read.
  • The delivery estimate, including the date format. 08/09 means two different months on two sides of the Atlantic — use a spelled-out month.
  • Trust and returns text.
  • The checkout button, and any express payment labels.
  • Error states, which are the most-neglected and the most damaging.

Segment beyond geography

Market tells you about logistics. Customer tag tells you about relationship, and the two together produce a much better cart than either alone.

Useful segments:

  • First-time visitor. Needs trust blocks, a visible returns policy and an achievable first goal. Does not need your highest reward tier — they will not reach it.
  • Repeat customer. Already trusts you. Reclaim the trust-block space for a replenishment suggestion or a higher-tier reward.
  • High-value / VIP. A threshold calibrated to the general population is meaningless here. Give them a tier that is actually a stretch.
  • Wholesale or B2B tagged. Should not see consumer discount mechanics at all. Different cart, not a different block.
  • Discount-code arrivals. Already have a discount. Stacking a second one on top is margin you did not need to spend.

Separate carts vs conditional blocks

The instinct when you first get per-market capability is to build a cart per market. Resist it.

Five separate carts means five places to update when you change your returns policy, five layouts drifting apart over a year, and five things to test after every theme update. It is the CMS equivalent of copy-pasting a component.

The better default is one base cart with conditional blocks:

  • Progress bar block → threshold value conditional on market.
  • Delivery estimate block → shown only where you can compute it.
  • Duties notice block → shown only in markets where you do not absorb duties.
  • Trust block → shown only to first-time visitors.
  • Wholesale notice → shown only to tagged accounts.

Reserve a genuinely separate cart for markets that differ structurally — a region where a promotion is legally restricted, or a wholesale channel with entirely different mechanics.

A rollout that will not break anything

  1. Audit. List every number and every claim currently in your cart. Mark which are true in all markets. Most stores find three or four that are not.
  2. Fix the falsehoods first. Delivery estimates and returns claims before optimisation. This is a trust repair, not a growth project.
  3. Split the threshold for your two largest non-domestic markets only. Measure for a month.
  4. Translate the cart strings for every language you sell in.
  5. Add segment conditions — first-time versus repeat — once the geographic layer is stable.
  6. Review quarterly. Shipping rates and order distributions both drift. A threshold set eighteen months ago is almost certainly wrong now.

What to measure, per market

The mistake is looking at blended numbers. A change that lifts revenue in your largest market and quietly kills conversion in a smaller one will look like a win in aggregate.

Track per market:

  • Cart-to-checkout rate
  • Average order value
  • Percentage of orders above the free shipping threshold
  • Gross profit per order after shipping and duties
  • Support tickets mentioning delivery or shipping cost

That last one is the leading indicator. A rise in delivery-related tickets in a specific market almost always means the cart is promising something the fulfilment chain cannot deliver.

Frequently asked questions

What is the difference between Shopify Markets and multi-currency?

Multi-currency converts prices at checkout. Shopify Markets is the broader configuration layer that lets you control catalogue, pricing, domains, languages and duties per region. Cart personalisation should key off Markets, because currency alone tells you nothing about shipping cost, delivery time or local expectations.

Should free shipping thresholds be converted or set independently?

Set independently. A converted threshold produces numbers like 68.42 that read as arbitrary, and more importantly it ignores the fact that your shipping cost and your average order value are different in every market. Set each threshold from that market's own order distribution and shipping economics.

How many different carts should I actually build?

As few as possible. Most stores need one base cart plus conditional blocks, not five separate carts. Separate carts should be reserved for markets that differ structurally, such as a wholesale region or a country where a promotion is legally restricted.

Do I need translated cart text for every market?

You need it for every language you sell in, which is usually fewer than the number of markets. Untranslated cart copy is one of the most visible trust failures in international ecommerce because it appears at the exact moment the shopper is deciding to hand over money.

Can I target the cart by customer tag as well as market?

Yes, and the two together are more useful than either alone. Market determines shipping and delivery reality; customer tag determines what kind of relationship you have. A repeat customer in Germany and a first-time visitor in Germany should see different reassurance and different reward tiers.

Ninety9 Team

We build 5 conversion apps used by Shopify merchants in Bulgaria and beyond. Everything we write here comes out of what we see in real store data.

Keep reading

Related articles