How to Set Up Custom Shipping Rates on Shopify (By Pincode, Weight & Zone)
Shipping is one of the most critical — and most confusing — parts of running a Shopify store. Charge too much and you lose customers at checkout. Charge too little and you eat into your margins. The solution? Custom shipping rates that accurately reflect your real costs.
In this guide, I'll walk you through every method of setting up custom shipping rates on Shopify — from simple flat rates to complex pincode-based, weight-based, and zone-based configurations. I've set up custom shipping for stores across India, Australia, the UK, and more, including SpiceZen where we configured pincode-level shipping rates across all of Australia.
Understanding Shopify's Shipping Architecture
Before diving into setup, you need to understand how Shopify organizes shipping:
Shipping Profiles
Shopify uses Shipping Profiles to group products that share the same shipping rules. You can have:
- General Profile: The default — applies to all products unless overridden
- Custom Profiles: For products with unique shipping requirements (e.g., oversized items, fragile goods, digital products)
For example, if you sell both regular spice pouches and glass spice grinders, the grinders might need a different shipping rate due to weight and packaging requirements.
Shipping Zones
Within each profile, you create Shipping Zones — geographic regions with their own rates. A zone can be as broad as "Rest of World" or as specific as a list of postal codes.
Shipping Rates
Each zone has one or more rate types:
- Flat Rate: A fixed price regardless of cart contents
- Price-Based Rate: Different rates based on order total (e.g., free shipping over ₹999)
- Weight-Based Rate: Different rates based on total cart weight
- Carrier-Calculated Rate: Real-time rates from carriers like Australia Post, Shiprocket, or Delhivery
Method 1: Simple Flat Rate Shipping
Best for stores with consistent product sizes and domestic-only shipping.
Step-by-Step Setup:
- Go to Settings → Shipping and delivery
- Click on your General shipping profile
- Click "Create shipping zone"
- Name the zone (e.g., "Domestic - India") and select the country/region
- Click "Add rate" → Choose "Set up your own rates"
- Enter a rate name (e.g., "Standard Shipping") and price (e.g., ₹49)
- Optional: Add a "Free shipping" rate with a minimum order condition
Pro Tip: Always add a free shipping threshold. Data consistently shows that 73% of shoppers expect free shipping and will add items to their cart to qualify. A "Free shipping over ₹499" offer often increases average order value by 15-30%.
Method 2: Weight-Based Shipping Rates
Essential for stores with products of varying sizes and weights — spices, supplements, clothing, hardware, etc.
Step-by-Step Setup:
- First, ensure all your products have accurate weights entered (go to each product → Shipping section → Weight)
- Go to Settings → Shipping and delivery → General profile
- In your shipping zone, click "Add rate"
- Click "Add conditions" → Select "Based on item weight"
- Set the weight range and rate. Example:
- 0 - 500g: ₹49
- 500g - 1kg: ₹79
- 1kg - 3kg: ₹129
- 3kg - 5kg: ₹199
- 5kg+: ₹299
- Repeat for each weight tier you need
Important: Shopify calculates the total cart weight and matches it against your ranges. If a customer orders 3 items weighing 200g each (600g total), they'll pay the 500g-1kg rate.
Method 3: Zone-Based Shipping (Different Rates by Region)
This is where it gets powerful. You can charge different rates for metro vs. regional vs. remote areas.
For Indian Stores (Shiprocket Zones):
India's shipping landscape is divided into zones by carriers. Here's a typical setup:
- Zone A (Metro): Mumbai, Delhi, Bangalore, Hyderabad, Chennai, Kolkata — ₹49 flat
- Zone B (Tier 2 Cities): Pune, Ahmedabad, Jaipur, Lucknow — ₹69 flat
- Zone C (Regional): Smaller cities and towns — ₹99 flat
- Zone D (Remote/NE India): J&K, NE states, Andaman — ₹149 flat
In Shopify, you create 4 separate shipping zones for India, each containing the relevant states or specific pin codes.
For Australian Stores:
When I set up SpiceZen's shipping, we created zones based on Australia Post's zone structure:
- Metro: Sydney, Melbourne, Brisbane metro postcodes — AUD $8.95
- Regional: Regional NSW, VIC, QLD — AUD $12.95
- Remote: WA outback, NT, remote QLD — AUD $19.95
- Free Shipping: All zones for orders over AUD $80
Method 4: Pincode-Based Custom Rates (Advanced)
The most granular approach — different rates for specific postal codes. This is what large D2C brands in India use.
Why Pincode-Based?
Carriers like Shiprocket and Delhivery charge different rates based on the pickup and delivery pincodes. If you're absorbing shipping costs or offering flat rates, you need to know your real cost per pincode to set profitable rates.
Implementation Options:
Option A: Shopify's Native Shipping Zones (Free)
You can add specific postal code ranges to a shipping zone:
- Create a shipping zone
- Instead of selecting entire states, click "Add postal codes"
- Enter postal code ranges (e.g., 400001-400099 for Mumbai city)
- Set your custom rate for this zone
Limitation: This gets tedious if you need 50+ pincode-level zones. But for 5-10 zones, it's the simplest free solution.
Option B: Carrier-Calculated Rates
Let your shipping carrier calculate the exact rate at checkout:
- Shopify Shipping: Integrates with USPS, UPS, DHL (mainly US-focused)
- Shiprocket: India's most popular option — install their app and enable calculated rates
- Australia Post: Use the Australia Post app for real-time AusPost rates
Note: Carrier-calculated rates are available on the Advanced Shopify plan ($399/month) or Shopify Plus. On lower plans, you need a third-party app.
Option C: Third-Party Shipping Apps
For complex requirements, these apps extend Shopify's native capabilities:
- Advanced Shipping Rules — granular control over shipping logic
- Better Shipping — pincode-based rates with easy CSV import
- Shiprocket — auto-calculated rates for Indian carriers
- Parcelify — rule-based shipping with product tags, weights, and postal codes
Method 5: Product-Specific Shipping Profiles
Some products need entirely different shipping rules. Common scenarios:
- Oversized items (furniture, equipment) — higher base rate
- Fragile items — special handling surcharge
- Digital products — no shipping at all
- Perishable goods — express shipping only, no economy option
Setup:
- Go to Settings → Shipping → Create new profile
- Name it (e.g., "Oversized Items")
- Add the specific products that belong to this profile
- Set up zones and rates specific to these products
Key Point: When a customer orders products from different profiles, Shopify shows separate shipping rates for each profile at checkout. The customer pays the sum of all applicable shipping charges.
Free Shipping Strategies That Work
Free shipping isn't free for you — but it's the #1 driver of conversions. Here are proven strategies:
- Threshold-Based: "Free shipping on orders over ₹999" — increases AOV
- Product-Embedded: Build shipping cost into the product price. A ₹499 product with ₹49 shipping becomes ₹548 with "free shipping." Psychologically, customers prefer this.
- Member-Only: Free shipping for loyalty program members or subscribers
- First-Order: Free shipping on first orders to reduce acquisition friction
Common Shipping Setup Mistakes
- Forgetting to set product weights: Weight-based rates only work if every product has an accurate weight. Default is 0, which gives an incorrect rate.
- Overlapping zones: If the same postal code appears in two zones, Shopify shows both rates at checkout — confusing customers.
- No "Rest of World" rate: If a customer from an uncovered country tries to order, they'll see "no shipping available" and leave.
- Not testing with real addresses: Place test orders with addresses from each zone. Verify the correct rate appears at checkout.
- Ignoring packaging weight: Your 500g product ships in a 100g box. Account for packaging weight in product weights.
My Shipping Setup Checklist
Use this checklist before launching your store:
- ☐ All products have accurate weights entered
- ☐ General shipping profile covers your main product line
- ☐ Custom profiles created for special items
- ☐ All target countries have shipping zones
- ☐ "Rest of World" zone configured (even if rates are higher)
- ☐ Free shipping threshold set (recommended)
- ☐ Test orders placed from each zone and verified
- ☐ Checkout tested on mobile devices
- ☐ Shipping policy page updated with estimated delivery times
- ☐ Returns shipping process documented
Need Help Setting Up Complex Shipping?
I've configured pincode-based shipping for stores across India and Australia. Let me set up your rates correctly from day one.
Get Shipping Setup Help