Flat rate close by
- When
- The delivery address is up to 10 km away in a straight line
- Then
- A flat €4.90 for this tier
- The customer sees
- A customer 6 km away pays €4.90 for delivery — the same as a neighbour 9 km away.
KM Distance Shipping
On its own, Shopify prices shipping by zone, weight or order value — not by how far away your customer is. With the KM Distance Shipping app you set rates by straight-line kilometres from your postcode or by postcode zone, and the app returns the matching rate right at checkout. Your Shopify plan needs third-party carrier-calculated shipping for this.
| Price | USD 12.90 per 30 days, 14-day free trial, one plan with every feature |
|---|---|
| Requirement | Third-party carrier-calculated shipping: included on the Advanced and Plus plans, available on Grow with annual billing or as a paid add-on, usually not available on Basic. |
| Calculation | Straight-line distance from one origin postcode, or postcode zones where the longest matching prefix wins. Optional in both modes: free shipping above a cart value, a fixed surcharge above a cart weight and a minimum order value for delivery. |
| Countries | Distance mode: Germany, Austria, Switzerland, France, Italy, Slovenia, Belgium, the Netherlands, Luxembourg, Poland, Czechia and Denmark (12 countries). Zone mode: any country with numeric postcodes. |
| Languages | German, English, French, Spanish, Italian and Dutch. |
| Privacy | From the delivery address the app uses only the postcode and country, and never stores, caches or logs them. No external map service: the geo data (GeoNames, CC BY 4.0) is looked up locally inside the app. The app and its database run in Frankfurt, Germany (Fly.io). |
| Limitations | No driving distance (straight line by design), kilometres only (no miles) and one location per shop; distance mode only in 12 countries. |
If you deliver regionally yourself, you end up building patchworks of postal-code zones in Shopify — and still lose money on the last mile. Because Shopify prices shipping by zone, not by distance. Fair delivery rates for 5 km and for 45 km? Not possible natively.
KM Distance Shipping calculates right at checkout: either distance tiers from your location (straight line, price per km or flat rate per tier) or postal-code zones with flat prices. You pick the mode, set your prices — the app returns the right shipping rate for every order. Built for merchants who deliver regionally themselves: delivery services, furniture stores, beverage retailers, garden centres, florists.
Postal-code zones with prefix logic ("50xxx = €4.90", catch-all supported) or distance tiers with flat rate, base price + price per km and an optional price cap — freely selectable per shop.
Free shipping above a cart value, a fixed surcharge above a cart weight and a minimum order value for delivery — for postcode zones and distance tiers alike. Free shipping takes priority over the surcharge.
Beyond your largest tier the app simply offers no rate — orders outside your delivery area never happen in the first place.
From the delivery address the app uses only the postcode and country, and never stores, caches or logs them. No external map service: the geo data (GeoNames, CC BY 4.0) is looked up locally inside the app.
Rates are served through Shopify's Carrier Service API, without touching your theme. A four-step guide walks you through setup and keeps monitoring it live; the built-in postcode and address tester lets you check your rates before going live.
Interface in German, English, French, Spanish, Italian and Dutch. Distance mode covers Germany, Austria, Switzerland, France, Italy, Slovenia, Belgium, the Netherlands, Luxembourg, Poland, Czechia and Denmark, including cross-border deliveries. Zone mode: any country with numeric postcodes.
The app uses Shopify's Carrier Service API, so your shop needs third-party carrier-calculated shipping: included on the Advanced and Plus plans, available on Grow with annual billing or as a paid add-on, usually not available on Basic. The app's setup guide checks this as its first step.
Cancel any time by uninstalling the app — billing ends through Shopify Billing.
Your shop needs third-party carrier-calculated shipping: included on the Advanced and Plus plans, available on Grow with annual billing or as a paid add-on, usually not available on Basic. The app checks this in its setup guide as the first step and tells you right away whether your shop is ready.
The most common cause: your Shopify plan lacks the carrier-calculated shipping feature (see previous question). That applies after a plan downgrade too: once the shop no longer meets the requirement, Shopify deactivates the carrier service association and no rates arrive — without anything changing in the app's own settings. Second most common: the rate was removed from your shipping profile — in that case the app warns you with a red banner on its start page and walks you to the fix.
A few minutes. A four-step guide walks you through: check plan, set mode and prices, activate carrier, done. The guide keeps monitoring the state afterwards. The built-in postcode and address tester lets you check your rates before going live.
No. Rates come through Shopify's checkout API — the app never touches your theme and works with every theme.
Straight-line distance from your origin postal code — deliberately not driving distance. That keeps the calculation fast, independent of external services and privacy-friendly. Postal-code coordinates come from the GeoNames dataset (CC BY 4.0) and are looked up locally inside the app.
Two modes: postal-code zones with a flat price per zone (longest matching prefix wins, catch-all zone supported) or distance tiers — each tier either a flat rate or base price plus price per kilometre, with an optional cap. Prices always in your shop currency. Both modes can optionally add: free shipping above a cart value, a fixed surcharge above a cart weight and a minimum order value for delivery.
Yes. Above the cart value you set, delivery is free — in both modes. Free shipping takes priority over a weight surcharge.
The app's delivery option doesn't appear at checkout, and there is no separate notice. Other shipping methods such as parcel shipping remain available. So state the minimum order value for delivery in your cart or on your shipping page. At exactly the minimum order value, the option already appears.
As a fixed amount, added once as soon as the weight of all shippable items in the cart reaches your threshold — not per kilogram. Keep your product weights up to date; without weight data the surcharge doesn't apply.
Yes. Beyond the largest distance tier (or without a matching zone and no catch-all) the app offers no shipping rate — customers outside the area cannot complete the order with this shipping method.
Distance mode: Germany, Austria, Switzerland, France, Italy, Slovenia, Belgium, the Netherlands, Luxembourg, Poland, Czechia and Denmark, including cross-border. Zone mode: any country with numeric postcodes.
No, the app works in kilometres.
No — one origin location per shop (one origin postal code in the settings).
German, English, French, Spanish, Italian and Dutch. The app detects your shop language automatically, and there is a manual switcher too.
One plan, everything included: "Standard" at USD 12.90 per 30 days — with a 14-day free trial of the full feature set. Billing runs through your regular Shopify invoice.
No. Distance calculation runs locally inside the app — there are no external API costs and no usage-based billing.
Just uninstall the app — nothing else needed. Billing ends through Shopify Billing under its rules.
Yes. Shopify shows all rates from all sources side by side at checkout — manual rates, other carrier apps and this app. If you want to show only the distance rates, remove other rates in your Shopify shipping settings.
The app is built fail-safe: on any problem — unknown postal code, unsupported country, internal error — it simply offers no rate. Your checkout never breaks; other configured shipping methods remain available.
No. For each calculation the app receives the postal code and country of the delivery address from Shopify, uses both in memory for that one calculation — nothing is stored, cached or logged.
No — with no one. The app uses no external map service; the geo data ships as static files inside the app and is looked up offline.
The app and its database run in Frankfurt, Germany (Fly.io). Details are in the app's privacy policy.
The app implements all privacy webhooks required by Shopify. On uninstall, all stored shop data is deleted completely. End-customer data is never stored in the first place.
By email at info@kevin-metzdorf.com — on business days, with a reply usually within one to two business days, in English or German.
Kevin Metzdorf — Shopify developer and consultant, in the Shopify ecosystem since 2019. The app is built with the same craft client projects get: data model first, then code.
KM Distance Shipping has been available in the Shopify App Store since 14 August 2026 and is developed further continuously.
Clear edges beat disappointed expectations — this is what the app is not built for:
25 minutes, free of charge. Whether it's about the app or your Shopify setup as a whole — afterwards you'll know the next sensible step.