🛒
E-commerce Shipping

WooCommerce Shipping Setup Guide

Configure WooCommerce shipping zones, flat rates, table rates, live carrier rates and the best shipping plugins for European online stores.

6M+
WooCommerce active stores
Unlimited
Shipping zones
50+
Carrier plugins
Best for complex rates
Table Rate plugin

WooCommerce powers over 6 million active online stores worldwide — more than any other e-commerce platform. As an open-source WordPress plugin, WooCommerce gives European merchants complete flexibility over shipping configuration, but that flexibility comes with complexity. Unlike Shopify's streamlined UI, WooCommerce shipping requires careful setup of zones, methods and plugins to achieve the same results. This guide covers everything from basic zone configuration and flat-rate shipping to advanced table-rate plugins, live carrier integrations and IOSS-compliant label printing for EU cross-border sales.

WooCommerce Shipping Zones and Methods

WooCommerce Shipping zones (WooCommerce → Settings → Shipping → Shipping zones) match customer addresses to shipping methods and rates. How zones work: Each zone has: a geographic scope (countries, states/regions, postcodes) and one or more shipping methods assigned. WooCommerce checks zones from top to bottom — the first matching zone applies. Put specific zones (e.g., France) above broader zones (e.g., European Union) to ensure precedence. Zone geographic scope options: • Continent: e.g., "Europe" • Countries: individually selected (e.g., Germany + Austria + Switzerland) • States/provinces: for large countries • Postcode/ZIP ranges: for local delivery or local pickup zones Shipping methods available natively: • Flat rate: Fixed price, optionally with cost per kg or per item formula. Example: cost = 6.90 + (1.50 * [qty]) applies €6.90 base plus €1.50 per additional item. • Free shipping: Triggered by minimum order amount, coupon, or always free. Add as a method within a zone. • Local pickup: In-store collection option — zero or low cost. • WooCommerce Shipping (Automattic's service): Available in some countries — discounted DHL/USPS/Canada Post rates. Common EU zone structure for a European merchant: Zone 1 — [Your country] (domestic) Zone 2 — European Union (all 27 EU states except home country) Zone 3 — Rest of Europe (UK, CH, NO, IS — customs apply) Zone 4 — North America Zone 5 — Rest of World

Table Rate Shipping for Complex Rate Structures

WooCommerce's built-in flat rate is insufficient for most serious e-commerce operations. Table Rate Shipping plugins let you set rates based on multiple criteria simultaneously. Best table rate plugins: • WooCommerce Table Rate Shipping (WooCommerce official, $119/yr): Rate tables based on weight, item count, price, class. Multiple conditions per rule. Best for stores with varied product weights and destinations. • Flexible Shipping (freemium, Octolooks): Free tier covers basic weight-based rules. Pro version adds many conditions, price breaks, carrier integration. • Advanced Flat Rate Shipping Method (freemium): Good free option for weight+destination rules. Example table rate configuration for EU zone: Weight 0–0.5 kg → €4.90 Weight 0.5–2 kg → €6.90 Weight 2–5 kg → €9.90 Weight 5–10 kg → €14.90 Weight 10–20 kg → €24.90 Order value > €75 → Free shipping Shipping classes: Use WooCommerce Shipping Classes to group products with different shipping costs (e.g., "Fragile — glass", "Heavy — furniture", "Standard"). Assign products to classes and configure different rates per class in your table rate plugin.

Live Carrier Rate Plugins for WooCommerce

Live carrier rate plugins pull real-time rates from carrier APIs and display them at checkout. Customers see actual carrier prices rather than approximated flat rates. Top live rate plugins for European WooCommerce stores: Sendcloud (free plugin + paid subscription): • Connects 80+ European carriers (DHL, UPS, DPD, GLS, PostNL, CTT, Colissimo, Hermes) • Shows checkout delivery widget with estimated delivery dates and multiple carrier options • Print labels, track shipments, manage returns from WooCommerce • IOSS-compliant labels for EU cross-border • Best overall choice for EU merchants DHL for WooCommerce (free official plugin by DHL): • Real-time DHL Express and DHL Parcel Connect rates • Automatic label generation from your DHL account • Tracking pushed back to WooCommerce orders UPS WooCommerce Shipping (official, freemium): • Live UPS rates from your UPS account FedEx WooCommerce Shipping (third-party, ~$99/yr): • Live FedEx rates at checkout GLS WooCommerce (regional, free/paid): • GLS real-time rates — strong Central/Eastern Europe coverage Note: Live rate plugins require the WooCommerce store to call the carrier API on every checkout page load — can slightly slow checkout. Caching live rates (typically 15 min) balances accuracy vs performance.

WooCommerce IOSS Configuration

If you ship goods from outside the EU to EU customers in consignments under €150, you need IOSS. WooCommerce requires additional plugins or configuration for full IOSS compliance. Steps for WooCommerce IOSS setup: 1. Tax configuration: In WooCommerce → Settings → Tax, enable "Prices entered with tax" and configure tax rates per EU country. You can import EU VAT rates via a plugin (e.g., EU VAT Assistant by Inpsyde, Aelia Currency Switcher, or WooCommerce EU VAT Compliance by WP Overnight). 2. Tax plugins: • WooCommerce EU VAT Compliance (WP Overnight, premium): Validates EU VAT numbers, automatically applies B2B zero-rating for VAT-registered EU buyers, records destination-country VAT for OSS/IOSS reporting. Most complete EU VAT solution. • TaxJar (US-founded): Supports EU VAT calculation and IOSS reporting. Subscription-based. • Avalara AvaTax: Enterprise-grade, IOSS-capable, higher cost. 3. Label printing: Use Sendcloud, ShipStation or EasyPost — these print IOSS-compliant shipping labels with your IOSS number in the customs declaration, enabling fast EU customs clearance without VAT collection at the border. 4. IOSS number storage: Store your IOSS number in your shipping plugin settings — it must appear on every sub-€150 parcel destined for the EU.

Quick Comparison

Plugin TypeBest PluginPriceWhat It Solves
Shipping zones/ratesNative WooCommerceFreeBasic flat rate + free shipping
Table rate shippingWC Table Rate Shipping$119/yrWeight/price/class-based rules
Multi-carrier EUSendcloudFrom €080+ carriers, IOSS, tracking, returns
EU VAT / IOSSWC EU VAT Compliance€79/yrVAT calculation, B2B zero-rating
Returns portalSendcloud ReturnsIncludedBranded self-service returns
DHL specificallyDHL for WooCommerceFreeDHL label print + tracking
Multi-channelShipStationFrom $9/moWooCommerce + Amazon + eBay + Etsy

Expert Tips

Frequently Asked Questions

How do I set up shipping zones in WooCommerce?

Go to WooCommerce → Settings → Shipping → Shipping zones → Add zone. Name the zone, select its geographic scope (countries, regions, or postcodes), then add shipping methods (Flat rate, Free shipping, Local pickup, or third-party carrier methods). Order zones from most specific to most general — WooCommerce applies the first matching zone from top to bottom. Common EU setup: Zone 1 = your domestic country, Zone 2 = EU countries, Zone 3 = UK/Switzerland/Norway (customs apply), Zone 4 = international. Click 'Save changes' — zones are live immediately for new checkouts.

What is the best shipping plugin for a WooCommerce store in Europe?

Sendcloud is the best overall shipping platform for EU WooCommerce merchants — it integrates 80+ European carriers (DHL, UPS, DPD, GLS, PostNL, CTT, Colissimo, Correos, GLS), shows carrier options and estimated delivery dates at checkout, prints IOSS-compliant labels, manages returns via a branded portal, and provides tracking notifications. The free plan covers up to 400 shipments/month. For complex weight-and-destination rate tables, WooCommerce Table Rate Shipping (official, $119/yr) is the best dedicated solution. For EU VAT compliance and IOSS, WooCommerce EU VAT Compliance by WP Overnight is the standard.

How do I add free shipping over a certain amount in WooCommerce?

In WooCommerce → Settings → Shipping → [your zone] → Edit → Add shipping method → Free shipping → Add method. In the Free shipping method settings, set 'Free shipping requires' to 'A minimum order amount' and enter your threshold (e.g., €50). Save. You can also trigger free shipping via coupon codes (select 'A coupon' in the same setting). Best practice: also keep a Flat rate method in the same zone so customers below the threshold still have a shipping option. Test the threshold by adding €49 then €51 of items to cart and verifying checkout correctly shows/hides free shipping.

Can WooCommerce display real-time shipping rates from DHL or UPS at checkout?

Yes — using plugins. Install 'DHL for WooCommerce' (free official DHL plugin) and connect your DHL account for real-time DHL rates at checkout. For UPS, use the official UPS WooCommerce plugin. For access to multiple carriers simultaneously, Sendcloud displays rates from 80+ carriers at checkout in a unified widget — customers can compare DHL, UPS, DPD, and others and choose their preferred carrier/speed. Live rates require carrier API credentials (a business account with DHL/UPS/FedEx) and work on all WooCommerce plans (no plan restriction like Shopify's Advanced requirement).

How do I handle WooCommerce shipping for EU and non-EU customers differently?

Create separate shipping zones: one for EU countries (no customs, no import VAT per parcel) and one for non-EU countries (UK, USA, Switzerland, Norway, etc. where customs declarations apply). For EU zones: configure rates normally; VAT is collected at point of sale (include VAT in your listed prices). For non-EU zones: clearly communicate that customs charges may apply at destination — set higher shipping rates to cover carrier surcharges; use Sendcloud to automatically generate customs invoices for non-EU shipments; if you have IOSS: apply it for sub-€150 parcels entering the EU from outside.

How do I set up WooCommerce shipping for different product weights?

Two approaches: (1) Weight-based flat rate: In WooCommerce → Settings → Shipping → [zone] → Flat rate → Cost formula, use [qty] and [cost] variables, or leave cost as fixed and combine with a Table Rate plugin for weight brackets. (2) WooCommerce Table Rate Shipping plugin: create rate rows for weight ranges (e.g., 0–0.5 kg = €4.90; 0.5–2 kg = €6.90 etc.) — most flexible. IMPORTANT: every product must have a weight entered in the Shipping tab (WooCommerce → Products → product → Shipping → Weight). Without weights, weight-based rules default to 0 kg and may show incorrect rates.

Related Guides

Compare Shipping Rates for Your Online Store

Instant quotes from DHL, UPS, FedEx and more — find the best rate for every order.

Get Rates Now