Delivery charges & shipping — zones, pincodes, free delivery
One standard rate or per-area zones, free delivery above ₹X, weight & order-size bands, Express, deliver-only-where-listed, CSV upload, and a pincode simulator to test it all.
Watch 2 short videos8 min readUpdated 5 Oct 2026
In this guide
How delivery charges work
Which delivery setup do I need?
Everything lives in Manage → Delivery → Shipping — the page itself is headed Shipping & Delivery. When a customer types their pincode at checkout, your store picks the right charge in this order: a specific pincode rate wins first, then a matching custom area zone (state / district / city / pincode group), and finally your standard rate. Pincodes in states you've blocked are refused — unless you've added a specific pincode rate for them yourself. Changes here go live immediately — the store checks your latest rules on every pincode lookup, so you never need to update or republish your website for a rate change.


- 1The master switchOff means every order ships free. Everything else appears once it is on.
Turn it on and set your standard rate
The standard rate is the one charge most customers pay — most shops need nothing more.
Switch on “Charge for shipping”
The toggle at the top. Off means orders ship free — no charge is added at checkout. Turning it on creates a starting rate you can edit right away.Set your charge and free-delivery amount
In What you charge for delivery, enter the charge per order (say ₹40) and, if you like, a "Free shipping above" amount (say ₹999). Leave it blank if delivery is never free. Add your usual delivery time in days — customers see it as an arrival estimate.Save
Press Save delivery charge. That's it — your store now charges delivery correctly for every pincode in India.Once shipping is on, a Your delivery setupcard sits near the top of the page and reads your whole setup back in three boxes — where you ship, your standard rate (or "Tiered" when bands are on) with the free-above amount, and your delivery time with whether COD is allowed. It turns red the moment your settings would block every order, so you can check the shop at a glance without opening a single section.
With shipping on, the product pages of most store designs also show a Check deliverybox — a customer types their pincode and sees whether you deliver there, and when, before adding to cart. Don't want it? In the editor, open a product page and switch off Delivery checker under Show or hide parts.
Different rates for different areas (zones)
A zone is a group of areas with its own rate — use it when local delivery is cheaper than sending a courier across India. Example: one zone for Maharashtra at ₹25, another for your own city at ₹15, and the standard rate for everyone else.
Add a zone
Open Different rates for specific areas and click Add zone. Name it ("Mumbai", "South India") and set its charge, free-above amount and delivery days.Pick where it applies
Choose whole states, districts, cities, exact pincodes, pincodes starting with a number (560 = all of Bengaluru), or a pincode range. You can also exclude areas — e.g. all of Maharashtra except one district. Exclusions always win.Special rates for single pincodes
A pincode rate beats everything else — handy for "free delivery in my own pincode" or a remote pincode that costs extra. Under Specific pincode rates, click Add pincode— add one pincode (city/state fill in automatically) or a whole range (up to 2,000 at a time). Link it to a zone and leave charge or days blank to inherit that zone's values; a pincode with no zone needs its own charge (enter 0 for free). You can also tick Block Cash on Deliveryfor pincodes where couriers won't collect cash.
Charge by weight
For heavy goods, charge by the order's total weight instead of one flat rate. Edit any zone and switch on Weight-based pricing: "up to 500g → ₹40, up to 2kg → ₹60, up to 5kg → ₹100, heavier → ₹150". Each product's weight is set on its product page (products without a weight count as 500g). The cart's weights add up and the matching slab applies.
If a product is sold in packs or sizes, write that pack's own weight on the pack ("500g", "1kg", or plain 500for grams) — both the customer's charge and the weight declared to your courier then use it instead of the main product's weight. Anything we can't read as a weight ("Large", "Pack of 2") falls back to the product weight — on a money field we never guess.
Cheaper delivery on bigger orders
Reward bigger carts with bands by order value — open Cheaper (or free) delivery on bigger orders: "₹0–499 → ₹80, ₹500–999 → ₹40, ₹1000+ → ₹0 (free)". A ₹0 band means free delivery above that amount. When bands are on, they replace the single charge + free-above fields — for a simple "free over ₹999" you don't need bands at all.
Express delivery (paid faster option)
Let customers pay extra for speed — open Offer faster delivery (Express), set a name ("Express"), a flat charge (say ₹120) and its faster delivery days. At checkout customers pick Standard or Express. Your free-delivery amounts don't apply to Express (only a free-shipping coupon can waive it), and the amount is checked on our servers, so nobody can trick the price.
Packing fee and a maximum charge
Two small controls in Packing fee or a maximum charge: a packing / handling fee added to every paid delivery (skipped when delivery is free), and a "never charge more than ₹X"ceiling so stacked charges can't shock a customer. The same section has a toggle deciding whether free-delivery offers should also waive per-product and category fees (normally they don't — only the standard charge is waived).
Rates by product type — and per-product overrides
Charge differently by category — free for clothes, ₹80 for heavy appliances — in Different delivery price for different product types. A category rule can apply everywhere or only in one zone (the zone version wins). For a single item, set shipping on the product itself in Products: free, a flat fee, per-piece, or "₹50 first + ₹20 each extra" — a product's own setting beats every rule on this page. When one cart mixes several such products, the combine setting near the top decides whether their fees add up or only the highest is charged.
Deliver only where you choose
A local bakery shouldn't take orders from another state. Under Where do you ship? pick Only my listed pincodes— then only pincodes you've listed (or covered by a custom zone) can order; everyone else sees "we don't deliver here", and our servers refuse the order too. Prefer to ship almost everywhere? Stay on Anywhere in India and use Don't ship to these statesto block just the states your courier can't reach.
Test any pincode before your customers do
Two testing tools sit under the Preview what your customer pays heading, just below your standard rate. Test a pincode — type a pincode and cart amount, see the exact charge, arrival dates and COD status (it uses the same live check your store uses). What will my customer actually pay? — pick real products from your catalog and see an item-by-item breakdown naming which rule set each charge. If a charge ever looks wrong, run this first — it tells you exactly which rule to fix.
Bulk pincodes with a spreadsheet (CSV)
Managing hundreds of pincodes? Click Upload CSV in the pincode section. Columns: pincode,zone,charge,free_above,cod_available,cod_charge,eta_min,eta_max,active,notes — amounts are in plain rupees (₹50 = 50), and blank cells inherit from the zone or standard rate. You always see a preview(how many rows will be added, updated, skipped) before anything is saved, and "Merge" mode updates existing pincodes without duplicating. Download exports your current list the same way — edit and re-upload.
What your customer sees
On the product page, cart and checkout the customer types their 6-digit pincode and instantly sees the delivery charge and arrival dates — plus a "free delivery above ₹X" nudge when you've set one. Unserviceable pincodes get a polite "sorry, we don't deliver here". The final charge is always re-checked on our servers when the order is placed, so the amount you set is the amount collected.
Shipping with courier partners (Shiprocket, Shipmozo, Delhivery One, NimbusPost, Shadowfax, India Post)
Everything above decides what the customer pays you. Courier partners are the other half — who actually carries the parcel. Connect one or more accounts in Delivery → Courier Partners; then on any order, compare live rates from every courier across all your connected partners, pick one, and book the pickup — AWB number and label are created for you, and tracking updates flow back to you and your customer automatically. The two systems are independent: your customer charges never change when you switch couriers.
NimbusPost connects with the same email and password you use for its panel. After connecting, tap + Add warehouseto save your pickup address — it's sent to NimbusPost with every booking, so there's nothing to set up in their panel. When you ship, NimbusPost books your chosen courier, the AWB and label arrive together in one step, and the courier pickup is requested automatically.
Shadowfax connects with the API token your Shadowfax account manager gives you (they issue one for testing and one for live orders — paste the live one). Tap + Add warehouseto save the address the rider collects from; it goes to Shadowfax with every booking as both the pickup and the return address. Shadowfax bills you on your contract, so its row in the courier list says Contract rate instead of a price; the AWB comes back the moment you ship, the rider is assigned to collect, and you print labels from your Shadowfax client portal. Most sellers use the seller-pickup model — tick warehouse-model only if Shadowfax set your account up that way.


India Post — works a little differently
India Post reaches PIN codes no private courier will touch, so it's worth connecting even if you mostly ship elsewhere. It works differently from the others, and it's worth knowing why before you connect: the Department of Posts gives sellers no booking API. So you keep booking exactly as you do today — at the post office counter, or on app.indiapost.gov.in under Self Booking.
What connecting India Post does give you:
- Live India Post prices on every order, next to your other couriers — Speed Post, Registered Parcel and Business Parcel, priced for that exact parcel and delivery PIN, straight from the Department of Posts' own rate service.
- One place to record the article number. After you book at the post office, open the order, pick the India Post option and type the 13-character number from your receipt (like
EE123456785IN). We save it as the tracking number, move the order to Packed and give your customer a working India Post tracking link.
To connect: Delivery → Courier Partners → India Post. You need just two things — your 10-digit India Post Customer ID (sign in at app.indiapost.gov.in and open Profile; registering is free) and the post office you book from, typed as Name@PIN — for example MG Road PO@560001. We never ask for your India Post password. We check that PIN against India Post's live rate service before saving, so a typo is caught immediately.
Two things India Post can't do for you: there's no label to print here (the post office prints its own barcode label when it books your parcel — use Print labelson the orders list if you want a packing slip), and tracking doesn't update by itself, so move the order to Shipped or Delivered yourself. Your customer's tracking link works throughout.
Getting India Post to book automatically
India Post doeshave a full API — booking, address labels, live tracking, the lot. They just don't hand it out on request: you get a test (sandbox) account first, and production access is approved only after the test results are signed off. It usually takes 2–6 weeks, and India Post charges nothing for it — you keep paying only normal postage.
Everything you need is waiting in Delivery → Courier Partners → India Post under "Want India Post to book automatically?"— including the two emails to send, already filled in with your store's details. The six phases are:
- Get a contract (BNPL) account— API booking bills to a contract, so a plain retail account isn't enough. Ask the Marketing Executive of your postal Circle.
- Request sandbox access — send email 1. It asks for all of it at once, including whitelisting our server, which is the step people miss and the one that blocks everything else.
- Sandbox testing — paste what India Post sent you into "Run India Post's test" and press the button. It runs their whole checklist from our server and gives you the test report to download. You never have to send anyone your sandbox password.
- Submit results, request production — send email 2 with that report attached. This is the approval gate: India Post also wants an escalation matrix (who they contact when something breaks), which email 2 already lays out for you.
- Production credentials — pass them to us and we switch automatic booking on. Your orders, prices and existing shipments are untouched.
- Go-live monitoring — book a few real parcels and check they look right.
While you wait, nothing changes: live rates and article-number recording keep working exactly as they do today.
Delivery charge you can only work out after the order
Sell sofas, fridges, cement — anything where delivery depends on the address and the load? Right under the main switch, turn on Delivery charge after the order. At checkout customers see Delivery charge: Added after you orderwith your own message (a usual range helps, like “Delivery in Pune: usually ₹200–₹800”), and order without it. You add the charge on the order and send the final bill on WhatsApp.
- Which orders — every delivery order, or only orders with products you choose (tick Delivery charge confirmed after the order in a product's Shipping Override section).
- How customers pay — cash on delivery, pay after you confirm (from the bill link), or the items online now and the delivery charge later. Part payment (Partial COD) and UPI-screenshot payments are not offered for these orders.
- It works with pincode shipping switched on or off. Your areas still decide whereyou deliver — only the charge waits. Store pickup orders and free-delivery coupons are never affected, and a store that charges delivery by distance (below) can't use it.
Full walk-through with a worked example: Delivery charge after the order.
Deliver nearby yourself? Get the customer's location and charge by distance
Near the top of the page, Local delivery — customer location & fee by distance is for shops that deliver in their own town with their own rider. It works with pincode shipping switched on or off, and it has these parts (a restaurant sets its delivery in Delivery fee & area instead — on a restaurant website this card points there):
- Ask customers for their delivery location at checkout — adds a Use my location button (or a box to paste a Google Maps link) under the address, with a landmark line. On its own it is not required: a customer who skips it orders exactly as before. Every delivery order then shows the customer's spot on its order page, with Open in Maps and Navigate. While Charge delivery by distance is on, this is always on (the fee needs it) and customers can also pick their door on the map.
- Don't take a delivery order without the customer's exact location— on the new checkout you can make the location a must. Place Order then waits until the customer moves the map so the pin sits on their door and confirms it, close enough to see the buildings. Their phone's location only moves the map there, because a phone's reading can be off by a few houses. A saved address that only has a phone reading is checked on the map once more. Pickup and dine-in orders are not asked, and orders you add yourself are never blocked. If the map cannot open on a customer's phone, their phone's location or a pasted Google Maps link is taken instead, so nobody is stuck.
- Saved addresses remember their spot — when a signed-in customer sets their location while one of their saved addresses is chosen, it is saved to that address. Next time, choosing that address brings the spot back, so a repeat order goes through in one tap. An older saved address that has no spot yet is marked in amber at checkout (“Home” has no map location yet) so the customer sets it once; it is remembered from then on.
- Your shop's location — every distance is measured from here. Set on map opens a Google map: search your shop's name, move the map until the red pin is on your door and tap Save this as my shop's location (Satellite shows the rooftops). Or stand at the counter and tap I'm at my shop now — use my location, or paste your shop's Google Maps link — both open the map on that spot for you to check. A short share link (maps.app.goo.gl/…) has no location inside it, so the map searches the shop name that came with it. The spot is saved straight away; the card then shows Saved, View on Google Maps, Change on map and Remove. While your fee is by distance and no spot is saved, your Overview shows a Set your shop's location card that works right there, and the sidebar marks Shipping with an amber !.
- Charge delivery by distance— switch it on, set your shop's location (the card appears right under the switch) and fill the distances, for example up to 3 km ₹20, up to 6 km ₹40. Add Free delivery above a cart value and a Minimum delivery charge if you want them, then press Save local delivery.
While Charge delivery by distance is on, it is your delivery charge.The pincode shipping charges and rules on this page are not used. A customer who does not share a location pays your first distance's fee; a customer farther than your last distance pays the last one's fee. Pickup orders pay no delivery charge, and a free-delivery coupon still makes delivery free.
At checkout the customer sees “~3.2 km from the shop” beside the location button and the fee for that distance. The fee is worked out on our servers from the same distance, so what the customer sees is what they pay — cash on delivery or online.
Who carries those orders? Add your own people as delivery boysand give each order to one of them — he sees the address, the customer's location on the map and the cash to collect, and you see what is out and the cash each one holds. See Deliver with your own delivery boys.
The map on your checkout — Google Maps
On the new checkout, when a customer sets their delivery spot, a Google mapopens: its search box finds apartments, offices and shops by name, and the line under the pin shows the address. If Google ever cannot open on a customer's phone, our free map (OpenStreetMap) opens in its place, so nobody is stuck. You manage it in Map on your checkout, right under Local delivery.
- Free every day — your shop gets a number of Google map opens free each day (the card shows how many). A map open is one customer opening the map; moving, zooming and searching inside it are part of the same open.
- After the free opens — the card says what happens next for your shop. Choose Keep Google Maps (a small fee per open from your account credits, taken once a day — the next morning — as one line on your statement) or Switch to our free map for the rest of that day. If your credits run below the allowed limit, the free map shows until you recharge.
- My own Google key— Google Maps on your own Google account, with no daily limit from us. Google bills your Google account directly; an India billing account gets about 70,000 free map opens a month. The card walks you through getting a key (about 10 minutes), lists your shop's addresses to copy into the key's website list, and has a Check & use this key button: it draws a Google map with your key and saves the key only when Google answers. Every other choice on this card saves the moment you pick it; switching from your own key back to Google Maps from us asks first, because it removes your key.
- Every map open is shown — today, and every day of the month (tap Earlier for past months): Google map opens (free, charged, on your own key), opens of our free map, times Google could not draw the map (those are never charged), Google searches and places named under the pin, and exactly what was charged each day.
Under a Google map the customer sees one line saying the map is by Google, with links to Google's map terms and privacy policy, as Google requires. The location they confirm is used only to deliver their order.
Prefer customers to collect from your shop?
Turn on in-store pickup— customers choose "pickup" at checkout and pay no delivery charge at all. It works alongside delivery or instead of it, and pickup orders skip the minimum-order-value rule too.
Common questions
The map on my checkout was not Google for one customer? Google could not be used for that open — Google did not answer on their phone, your free opens for the day were used and you chose the free map after them (or your credits ran low), or the same person reopened the map many times in an hour. The usage list in Map on your checkout shows each case.
Do I need to publish my site after changing rates? No — pincode checks are live; every change applies the moment you save.
Why is delivery free for one customer? Run the simulator with their pincode — most often the cart crossed your free-above amount, a ₹0 band applied, or a pincode rate says free.
Can I charge more for COD? Yes — the COD fee is set in Payment Settings; here you only choose where COD is allowed.
What if a pincode isn't in the directory? You can still add it manually — the rate works fine; only the auto-filled city/state is skipped.
The courier page says an order has no delivery PIN code?That happens on stores that don't use per-pincode delivery charges. It's fixed — the courier rate card now reads the PIN straight from the customer's address, so those orders ship normally. If it still shows, the address genuinely has no 6-digit PIN: open the order, edit the address to include it, and retry.
Shiprocket says "Unable to create an order please try again after some time"? That is a temporary error on Shiprocket's own server — it happens occasionally even when your account and connection are perfectly fine, and their own message says to try again. We already retry once automatically for you. If it still shows, wait 2–5 minutes and hit Ship again — it clears on its own. There is no need to disconnect or reconnect Shiprocket. Only if it keeps failing over 10+ minutes, check in Shiprocket that your wallet has at least ₹200, your pickup address is verified under Settings → Pickup Addresses, and the delivery pincode is serviceable. Also worth knowing: Shiprocket's system doesn't accept emojis in internal product codes — our platform removes them automatically when booking, so emojis in your product names (🔥, 🎉 etc.) stay on your store and never block a Shiprocket shipment. If a booking still refuses and your product name is full of unusual symbols, try removing them for that order and ship again.
Does connecting a courier here log me out of their website?No. Your courier connection uses a separate API login (for Shiprocket, the dedicated API user you created), and we sign in once and reuse the same access key — it can't end your browser session on their site. If you keep getting logged out of a courier panel, it's almost always because more than one person shares that panel login — each new sign-in logs the previous person out. Ask the courier for separate user logins.
More in Delivery & shipping
Did this answer your question?
It takes one tap and it genuinely changes what we write next.