In short
- Give each EU country its own shipping zone under Settings → Shipping and delivery and price it on what a label really costs there: measured on 29 September 2026, the cheapest small parcel cost €5.38 to €7.63 domestically in Belgium, Germany, France and the Netherlands, against €9.35 to €13.38 for the same parcel sent from the Netherlands across the border.
- In Shopify a country can sit in only one zone per shipping profile, and a fixed rate in local currency only works when every country in that zone uses the same currency.
- Weight-based rates need a weight on every product, and your highest weight tier should have no maximum — otherwise the checkout shows a shipping error.
- What the customer pays in Shopify and which service the label is bought with are two separate settings. Airpost Order Link handles the second; it is listed in the Shopify App Store, so you install it there.
- AirPost is a peer-to-peer fulfilment network: online shops have their orders packed and dropped at a parcel point by verified people near their customers, who earn a fee per parcel from home. No warehouse, no minimum order volume.
Most Shopify stores that start selling abroad copy one domestic rate into a zone called "Europe" and hope it averages out. It does not. A parcel to France can cost twice what a parcel to Belgium costs, and one rate for both means you lose money on one country and look expensive in the other.
This guide covers the Shopify side step by step — zones, rate types, currencies, free-shipping thresholds — with the menu names from the Shopify Help Center. The numbers to type in come from our own rate card, measured on 29 September 2026.
How do Shopify Markets and shipping zones fit together?
A market in Shopify decides who can buy: language, currency, prices, domain. A shipping zone decides what they pay to receive it. Shopify defines a zone as "a group of countries or regions, such as Europe or North America", and the rates inside it are what the customer sees at checkout.
The two are configured in different places. Markets live under Markets; zones live in shipping profiles under Settings → Shipping and delivery. Shopify is testing a way to set shipping options directly per market, but its help page describes that as early access, "available only to certain stores". For most stores in 2026, the zone is still where the price is set.
A market without a zone cannot check out
If a customer’s address is in a region you do not ship to, Shopify tells them no shipping option is available. Every country you add to a market needs a zone with at least one rate, or the market exists on paper only.
What does a parcel actually cost per country?
Before you type a rate, know your cost. Below is the cheapest service for a small parcel (up to 5 kg, 35 × 25 × 15 cm) per destination, once from stock inside that country and once from the Netherlands across the border. Prices come from our shipping options, measured on 29 September 2026, and include our €0.85 platform fee.
| Destination | From local stock | From the Netherlands | Difference |
|---|---|---|---|
| Belgium | €5.38 (Mondial Relay, point) | €9.35 (DPD, point) | €3.97 |
| Germany | €5.55 (DPD, home) | €9.75 (DPD, point) | €4.20 |
| France | €7.63 (Colis Privé, point) | €13.38 (DPD, point) | €5.75 |
| Netherlands | €6.85 (DPD, point) | — | — |
Two things follow. The spread between countries is too wide for one "Europe" rate: from the Netherlands, France cost €4.03 more than Belgium for the same box. And a domestic parcel inside the customer’s country was €3.97 to €5.75 cheaper than the cross-border one. That gap is what decides whether free shipping is affordable in a country, not your margin alone.
The full per-country picture, including the Nordics and Eastern Europe, is in parcel shipping costs in Europe in 2026 and the European shipping rates index.
How do you set up a shipping zone per country in Shopify?
Open your shipping profile
Go to Settings → Shipping and delivery and click the profile. The general profile applies to every product that is not in a custom one; you can add up to 99 custom profiles for products that need different rates.
Add a zone per country
Under Shipping zones, click Add zone, name it after the country ("Germany"), tick that country under Regions and click Done. A country can be in only one zone per profile, so take it out of any "Europe" zone first.
Add a shipping option
Click Add shipping option, give it the name the customer sees ("Parcel point, 2–3 working days"), and pick a Rate type: Flat, Order amount, Weight, or Carrier or app calculated.
Add delivery details
Under Add delivery details, set a Transit time. Use the service level of the carrier you actually ship with, not a hope; the table further down has them.
Close the gaps and save
For order-amount or weight tiers, leave Maximum empty on the highest tier. Shopify says an order outside your tiers gets no rate and the customer sees a shipping error.
Flat, weight-based or order-amount: which rate type?
| Rate type | How it works | Fits when | Watch out for |
|---|---|---|---|
| Flat | One price per order in the zone | Your products are similar in size | A heavy order costs you the same flat rate |
| Weight | Price per weight range | Your catalogue mixes small and bulky items | Every product needs a weight in Shopify |
| Order amount | Price per order-value range | You want a free-shipping threshold | Low-value heavy orders still cost the full label |
| Carrier or app calculated | Live rate from a carrier or app | You ship yourself with one carrier | Shopify converts these to your base currency |
Weight tiers map well onto how carriers price. Our parcel sizes run up to 2 kg (letterbox), 5 kg (small), 10 kg (medium) and 30 kg (large), so the same four breakpoints make sensible Shopify tiers. Here is Germany worked out, with a sender near your customer packing from local stock:
| Weight tier | Label in Germany | Sender fee (recommended) | Your cost per parcel |
|---|---|---|---|
| 0–5 kg | €5.55 | €2.25 | €7.80 |
| 5–10 kg | €5.55 | €3.00 | €8.55 |
| 10 kg and up (no maximum) | €12.32 | €5.50 | €17.82 |
Whatever you charge the customer on top of that cost is a pricing decision. Rounding up to a clean number per tier is common; charging exactly your cost and building shipping into the product price is the other route.
Can you charge shipping in the local currency?
Yes, with two conditions from Shopify’s help page. Local-currency shipping rates are "only possible when configuring fixed rates", and "if multiple countries are in one shipping zone, then they must all share the same currency". Calculated carrier rates are converted to your store’s base currency.
- Eurozone countries can share a zone if they share a price. Belgium and Germany at the same flat rate is fine; Belgium and France usually is not, because their costs differ.
- Poland, Czechia, Sweden, Denmark each need their own zone for a fixed złoty, koruna or krona rate. Otherwise Shopify converts your euro rate and the customer sees an odd number.
- Local currencies must be enabled for the market first, under Markets.
What should you type in for each country?
A worked example for a store that keeps a batch of stock with a sender in each country and ships small parcels. Cost = the cheapest measured label plus the recommended €2.25 sender fee. Transit time is the carrier’s stated service level on our rate card, not a promise.
| Shopify zone | Option name | Your cost | Transit time to enter |
|---|---|---|---|
| Belgium | Mondial Relay point | €7.63 | Within 3 working days |
| Germany | DPD home delivery | €7.80 | Within 2 working days |
| France | Colis Privé point relais | €9.88 | Within 4 working days |
| Netherlands | DPD service point | €9.10 | Within 4 working days |
Which service to make the default in each country — point or door — is a separate choice with its own trade-offs. France and Belgium expect a pickup point; Germany and the Netherlands lean to the door. The reasoning and the price gaps are in pickup point vs home delivery in Europe.
How do you set a free-shipping threshold per country?
On an existing rate, open the menu next to it, choose Edit shipping option, tick Offer free shipping and enter the minimum order amount. Or add a second option with rate type Order amount, a minimum and an empty maximum, priced at zero.
Set the threshold per zone, from the cost. A threshold that works in Belgium at €7.63 a parcel is a bigger gift in France at €9.88, and much bigger again if the French parcel crosses a border at €13.38. One Europe-wide threshold hides that.
Where does AirPost fit into your Shopify shipping?
Shopify decides what your customer pays. It does not decide which carrier service the parcel leaves with. With local fulfilment through AirPost, a verified person in your customer’s country holds a batch of your stock, and Airpost Order Link sends every paid Shopify order to them. You pay the label, your sender’s fee and €0.85 per parcel — no subscription, no storage fee.
- Paid orders are forwarded to your sender automatically.
- You choose one default service per product and destination country; that is the label that gets bought.
- Tracking goes back to Shopify and the order is marked fulfilled.
- Listed in the Shopify App Store: install Airpost Order Link there, create an AirPost account and connect with the code.
- It does not change your Shopify zones or rates. Those stay yours.
The simplest setup: one option per zone in Shopify, matching the default service you chose for that country. Then the customer pays for the service that is actually booked. How orders travel from Shopify to a parcel point is in Shopify fulfilment app without a warehouse.
Frequently asked questions
Should I make one shipping zone for all of Europe in Shopify?
Only if your cost is similar everywhere, and it rarely is. Measured on 29 September 2026, a small parcel from the Netherlands cost €9.35 to Belgium and €13.38 to France. One zone per country, or per group of countries with the same cost and currency, is safer.
Can a country be in two shipping zones?
Not within the same shipping profile. Shopify allows a country in only one zone per profile, so remove it from a "Europe" zone before giving it its own.
Why does my checkout show "no shipping available"?
Usually because the country has no zone, or because the order falls outside your weight or order-amount tiers. Leave the maximum empty on the highest tier and check that every product has a weight.
Can I show shipping rates in złoty or kronor?
Yes, with a fixed rate in a zone where every country uses that currency, and with local currencies enabled for the market. Carrier-calculated rates are converted to your base currency.
Is Airpost Order Link in the Shopify App Store?
Yes. Install Airpost Order Link from the Shopify App Store, create an AirPost account and connect with a single link code.
Sources
- Shopify Help Center — Setting up shipping zones and rates
- Shopify Help Center — Shipping profiles
- Shopify Help Center — Set up shipping rates in local currencies
- Shopify Help Center — Understanding shipping options by market
- AirPost — shipping options per country (measured 29 September 2026)
- AirPost — European shipping rates index
Connect your Shopify store and ship from your customer’s country
Airpost Order Link