WooCommerce Shipping Setup Guide
Configure WooCommerce shipping zones, flat rates, table rates, live carrier rates and the best shipping plugins for European online stores.
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
Table Rate Shipping for Complex Rate Structures
Live Carrier Rate Plugins for WooCommerce
WooCommerce IOSS Configuration
Quick Comparison
| Plugin Type | Best Plugin | Price | What It Solves |
|---|---|---|---|
| Shipping zones/rates | Native WooCommerce | Free | Basic flat rate + free shipping |
| Table rate shipping | WC Table Rate Shipping | $119/yr | Weight/price/class-based rules |
| Multi-carrier EU | Sendcloud | From €0 | 80+ carriers, IOSS, tracking, returns |
| EU VAT / IOSS | WC EU VAT Compliance | €79/yr | VAT calculation, B2B zero-rating |
| Returns portal | Sendcloud Returns | Included | Branded self-service returns |
| DHL specifically | DHL for WooCommerce | Free | DHL label print + tracking |
| Multi-channel | ShipStation | From $9/mo | WooCommerce + Amazon + eBay + Etsy |
Expert Tips
- ▸Always add product weight and dimensions to every WooCommerce product (WooCommerce → Products → each product → Shipping tab). Plugins for table-rate shipping, live carrier rates and even basic weight-based flat rates will return €0 or errors if product weight is missing — and €0 shipping costs every order you fulfil.
- ▸Test every shipping zone thoroughly before going live — use WooCommerce's checkout simulator by adding items to cart and entering test addresses in each zone. Check: correct zone matched, correct rate displayed, free shipping threshold triggers correctly, and international zones don't show domestic rates by mistake.
- ▸For stores using variable-rate shipping, implement shipping class overrides for your heaviest or most awkward products. A 5 kg framed print and a 200g phone case shouldn't share the same shipping rate — use shipping classes to override the default rate for specific product categories.
- ▸Enable WooCommerce order tracking emails and include carrier tracking links — after checkout, customers who can track their parcel generate 40–60% fewer 'where is my order?' support tickets. Sendcloud and DHL for WooCommerce push tracking numbers automatically back to the order and can send branded tracking email notifications.
- ▸For EU cross-border selling, review the EU distance selling threshold (€10,000 aggregate per year across all EU non-domestic B2C sales) and register for EU OSS once you approach it. WooCommerce EU VAT Compliance plugin can track your running total toward this threshold, giving you advance warning before you breach it.
- ▸Configure a local pickup zone with your business address and €0 cost — even small e-commerce operations benefit from offering local pickup as a checkout option. Local customers who collect in person eliminate shipping cost entirely and often spend more knowing they avoid shipping charges.
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