WooCommerce's shipping system confuses everyone the first time — zones inside methods inside classes, all deciding what a customer pays at checkout. It maps cleanly onto courier reality once the vocabulary clicks.

Zones = geography rules

A shipping zone is a set of regions (states, pincodes, countries) with shipping methods attached — 'Maharashtra: flat ₹50', 'Rest of India: flat ₹80', 'Northeast: ₹150'. The customer's address matches a zone, the zone's methods offer their prices.

Classes = product types

Shipping classes tag products — 'fragile' adds ₹30, 'heavy' uses a different table, 'letter' ships cheap. A cart's shipping price = zone-method price per class, summed. The combination handles most catalogues' mixed freight needs.

The rate-table problem

WooCommerce's built-in methods are flat tables — you're estimating freight by zone, and the estimate either eats margin or loses carts. The live-rate fix: a plugin that quotes the actual carrier per order at checkout — Pure Parcel's WooCommerce plugin does exactly this, replacing guess-tables with real quotes.

The simple starting config

Zone 1 'Same city': free or ₹49 (you'll cover it with hyperlocal). Zone 2 'Rest of India': live rates via plugin or a fair flat rate. Zone 3 'Special' (NE/hills): honest surcharge. Three zones covers most sellers until the catalogue demands classes.

Pure Parcel automates exactly this — the pipeline from order to AWB without the manual steps.

See how →

The playbook

1

Create zones by your real lanes

Same city / regional / national / special.

2

Attach the right method per zone

Flat rates to start; live rates when the plugin's in.

3

Tag products with classes

Fragile/heavy get their rate treatment.

4

Install live quoting

Pure Parcel's plugin replaces estimate-tables with real rates.