Shopify App · Live in the Shopify App Store

KM Distance Shipping

Shipping rates by distance and postcode for Shopify

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.

View in the Shopify App Store 14-day free trial — full feature set
Live in the Shopify App Store since

At a glance

PriceUSD 12.90 per 30 days, 14-day free trial, one plan with every feature
RequirementThird-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.
CalculationStraight-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.
CountriesDistance mode: Germany, Austria, Switzerland, France, Italy, Slovenia, Belgium, the Netherlands, Luxembourg, Poland, Czechia and Denmark (12 countries). Zone mode: any country with numeric postcodes.
LanguagesGerman, English, French, Spanish, Italian and Dutch.
PrivacyFrom 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).
LimitationsNo driving distance (straight line by design), kilometres only (no miles) and one location per shop; distance mode only in 12 countries.

The problem

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.

The solution

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.

What rules look like

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.

Further out, fairly tiered

When
The delivery address is between 10 and 40 km away
Then
A base price plus a price per kilometre, capped at €25
The customer sees
The delivery price rises with distance — but never above €25, even at the edge of the area.

A delivery area with a clear edge

When
The delivery address is more than 40 km away (beyond the largest tier)
Then
The app offers no rate
The customer sees
Local delivery doesn't appear at checkout — other options such as parcel shipping remain available.

Postcode zones instead of kilometres

When
The postcode starts with 50 — or more precisely with 503
Then
50xxx costs €4.90, 503xx costs €3.90 — the longest matching prefix wins
The customer sees
A customer in 50321 pays €3.90, one in 50667 pays €4.90.

A catch-all for every other postcode

When
None of the postcode zones you created matches
Then
Catch-all zone at €9.90
The customer sees
Customers outside your core areas still get a price — instead of no delivery option at all.

Delivering across the border

When
Store in Aachen, delivery address in Maastricht (Netherlands)
Then
The same distance tiers apply across the border
The customer sees
The customer in Maastricht pays by distance, just like any customer in Germany.

What the app does

Two modes, one switch

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.

Price rules in both modes

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.

A delivery radius with a clear edge

Beyond your largest tier the app simply offers no rate — orders outside your delivery area never happen in the first place.

No address ever leaves the server

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.

Set up in minutes, theme untouched

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.

6 languages, 12 countries

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.

Good to know

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.

One plan. Everything included.

StandardUSD 12.90 per 30 days14-day free trial — full feature set
  • All features included, no feature gating
  • No per-calculation costs, no hidden fees
  • Billed conveniently through your Shopify invoice
  • Free for partner and development stores

Cancel any time by uninstalling the app — billing ends through Shopify Billing.

Frequently asked questions

Setup & requirements

What do I need in my Shopify plan?

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.

Why don't I see any shipping rates at checkout?

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.

How long does setup take?

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.

Do I need to change my theme?

No. Rates come through Shopify's checkout API — the app never touches your theme and works with every theme.

Features

How does the app calculate distance?

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.

Which pricing models are possible?

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.

Is there free shipping above an order value?

Yes. Above the cart value you set, delivery is free — in both modes. Free shipping takes priority over a weight surcharge.

What does my customer see below the minimum order value?

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.

How does the app calculate the weight surcharge?

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.

Can I limit my delivery area?

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.

Which countries are supported?

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.

Are miles supported?

No, the app works in kilometres.

Are multiple warehouses or locations supported?

No — one origin location per shop (one origin postal code in the settings).

Which languages does the app come in?

German, English, French, Spanish, Italian and Dutch. The app detects your shop language automatically, and there is a manual switcher too.

Pricing & billing

What does the app cost?

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.

Are there per-calculation costs or hidden fees?

No. Distance calculation runs locally inside the app — there are no external API costs and no usage-based billing.

How do I cancel?

Just uninstall the app — nothing else needed. Billing ends through Shopify Billing under its rules.

Compatibility

Does the app work alongside other shipping apps?

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.

What happens with an unknown postal code or an error?

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.

Data & privacy

Are customer addresses stored?

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.

Is address data shared with third parties like Google Maps?

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.

Where does the app run?

The app and its database run in Frankfurt, Germany (Fly.io). Details are in the app's privacy policy.

Is the app set up for GDPR?

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.

Support

How do I reach support?

By email at info@kevin-metzdorf.com — on business days, with a reply usually within one to two business days, in English or German.

Who is behind the app?

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.

How long has the app been available?

KM Distance Shipping has been available in the Shopify App Store since 14 August 2026 and is developed further continuously.

Guides on this topic

All guides
  • How safe are Shopify apps? Permissions, data access, and what to check before installingEvery Shopify app shows exactly what data it can see and which store areas it can edit before you install it — Shopify reviews apps before they reach the App Store, but not every day after that. The 2025 Consentik incident shows what happens when an app with broad permissions is poorly secured behind the scenes. This article covers where to see the permissions, what they mean, and how to spot a data-minimal app.
  • Shopify shipping rates by postcode: zones, surcharges, delivery areasShopify's shipping zones only know country and state or region, so a separate rate for a single postcode or a postcode range like "IV" doesn't exist there. Built-in local delivery can list postcodes, but only as local delivery with a radius or a list of individual codes — no surcharge for remote areas, no tiering by postcode prefix. Merchants who want to price shipping per postcode zone, or apply a Highlands and Islands surcharge automatically, need an app with its own rate logic.
  • Bulky goods and freight shipping in Shopify: why the rates add upA bulky item and a small accessory in the same cart, both fitting in one consignment — and Shopify still charges for both. That isn't a bug, it's documented behaviour: weight-based, carrier-calculated and app rates are always combined. You can assign a freight rate to an oversized product, but you can't merge it with anything else and you can't price it by distance — which is exactly where furniture and pallet shipping breaks down.
  • Different local delivery rates by distance in Shopify: radius zones vs. per-kilometre pricingShopify's local delivery lets you set a delivery radius and a price per zone, but the only conditions you can attach to that price are order-value breaks — not the customer's actual distance from your store. So a rate that grows the farther someone lives, or that's free only within a short radius and paid beyond it, has no native setting. An app that calculates a real per-kilometre rate through Shopify's checkout is the way merchants close that gap.
  • How to restrict your delivery area in Shopify: local delivery vs. postcode zonesShopify's regular shipping zones only distinguish country and state or region, so blocking an order by individual postcode isn't possible with them. Only the separate "local delivery" feature can genuinely fence off an area by postcode list or radius — but it's limited to your own delivery within the same country. Merchants who want to restrict the delivery area for regular carrier shipping need an app that supplies its own rate logic through Shopify's Carrier Service API.
  • Shopify pickup in store: setup and the reasons it doesn't appearPickup in store takes a few clicks to activate — and then goes missing at checkout more often than you'd expect. The causes are almost always the same: the pickup location doesn't stock the whole order, the „Physical product" setting is off, or the location doesn't fulfil online orders. And one expectation Shopify doesn't meet at all: setting a single product to „pickup only, no shipping" isn't a native option.

What the app deliberately does not do

Clear edges beat disappointed expectations — this is what the app is not built for:

  • No driving-distance or route calculation — straight line by design
  • No miles, kilometres only
  • No multi-location (distance from the nearest warehouse)
  • No delivery dates or time slots
  • No label printing, no tracking — the app calculates prices only
  • Distance mode is not worldwide (12 countries)
  • No per-kilogram weight surcharge — only a fixed amount above a weight threshold
  • No notice at checkout when the minimum order value isn't reached — the delivery option simply doesn't appear

Questions about the app — or about your whole shop?

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.