To set up shipping on Shopify in India, go to Settings > Shipping and delivery, add an India zone to your shipping profile, and create flat, weight-based or order-value rates with a free-shipping minimum. Turn on Cash on Delivery under Settings > Payments. Shopify's own labels don't cover Indian couriers, so connect a shipping app for AWBs and tracking.
Where are the shipping settings in Shopify?
Everything starts in Settings > Shipping and delivery. Shopify organises rates in three layers, and most setup problems come from mixing them up.
- Shipping profiles are sets of shipping rules for specific products and locations. Every store has a general profile that covers all products, and you can create up to 99 custom profiles for products that need different rates, such as heavy or fragile items.
- Zones are groups of countries or regions that share the same rates. A country or region can sit in only one zone within a profile.
- Shipping options are the rates inside a zone. The name you give each one is what customers see at checkout.
Two things to check first. India must be in an active market under Markets, or customers can't place orders even if rates exist. And Shopify is gradually moving some stores to "shipping options by market", managed from Markets instead of shipping profiles. It is in early access, so if your admin looks different from the steps below, that is the reason.
How do you set up Shopify shipping for India, step by step?
- 1Add packed weights to every product. Weight-based rates go wrong when weights are missing. Enter the packed weight, not the bare product weight, and check box sizes with the volumetric weight calculator, because Indian couriers bill the higher of actual and volumetric weight (L × B × H in cm ÷ 5000).
- 2Confirm your fulfilment location under Settings > Locations has the correct warehouse address and pincode.
- 3Open Settings > Shipping and delivery and click into the general shipping profile.
- 4Create a zone for India. Click Add zone, name it, select India under Regions, and click Done.
- 5Add a shipping option. Click Add shipping option, give it a customer-facing name with a delivery promise, such as "Standard delivery (3–7 business days)", and choose a rate type: Flat, Order amount or Weight.
- 6Set the tiers if you picked Order amount or Weight. Enter a minimum, maximum and price for each range, and leave Maximum blank on the top tier so large orders don't hit a shipping error at checkout.
- 7Add free shipping above a threshold. Tick Offer free shipping, enter the minimum order amount, and save. The free shipping threshold guide covers how to choose the number.
- 8Add local delivery or pickup if you have a store. Both sit under Additional delivery methods. Local delivery works by distance or postal codes, with its own minimum order price and delivery price. Pickup in store is set up per location, with an expected pickup time.
- 9Turn on cash on delivery under Settings > Payments, covered in the next section.
- 10Place test orders, one prepaid and one COD, above and below your free-shipping threshold, and check the rate at checkout and the confirmation email.
Which Shopify rate type should an Indian store use?
| Rate type | How it works | When to use it for India |
|---|---|---|
| Flat | One price per order in the zone. Flat rates apply once per order, not per product. | Single-warehouse D2C stores with similar-sized products. Easy to explain at checkout. |
| Order amount (price-based) | Price changes with cart value, in tiers you set, for example ₹49 below ₹749 and ₹0 above. | When you want to nudge baskets past a threshold or recover more freight on small orders. |
| Weight | Price changes with total cart weight, in tiers you set. | Catalogues that mix light and heavy items, where one flat rate under- or over-charges. |
| Offer free shipping | The rate drops to ₹0 once the order crosses a minimum amount. | Almost every D2C store, paired with a flat or tiered rate below the threshold. |
| Carrier or app calculated | A connected carrier or shipping app supplies rates at checkout. | Only if your app supports it. Connecting your own carrier accounts needs specific Shopify plans or an extra monthly fee. |
| Local delivery | Your own riders deliver within a distance or a set of postal codes. | Same-day orders around a store or dark store in one city. |
| Pickup in store | The customer collects from a location you enable. | Brands with retail stores that want to offer collection. |
For most Indian D2C stores the practical answer is a flat or order-amount rate for India plus free shipping above a threshold. Courier costs vary by zone, but buyers see one number at checkout, and a single India-wide rate is easier to trust than one that jumps around by state.
Worked example: setting the rate and threshold
Assume a blended forward courier cost of ₹75 per order and an average order value of ₹650. A ₹49 rate below ₹749 recovers about two-thirds of freight on orders under the threshold. Above ₹749 you absorb the ₹75, which the bigger basket should pay for. Setting the threshold just above average order value means a typical buyer is one low-priced add-on away from free shipping, instead of qualifying without changing anything.
How do you enable cash on delivery on Shopify?
COD is a manual payment method. Go to Settings > Payments, select Cash on Delivery (COD) from the manual payment methods in the payment providers section, add any details or instructions customers should see at checkout, and activate it. Shopify doesn't charge third-party transaction fees on manual payments.
COD orders arrive marked unpaid, with payment pending. Mark each one paid once the courier remits the cash, or Shopify's reports won't match your bank account. Turning COD on adds no order confirmation or address check by itself, so pair it with confirmation messages and prepaid nudges. Our guide to converting COD to prepaid covers partial COD and checkout incentives.
Why don't Shopify's built-in shipping labels work for Indian couriers?
Shopify Shipping lets merchants buy labels inside the admin, but Shopify's help centre lists carriers only for fulfilment locations in the US, Canada, Australia, the UK and a handful of EU countries. India isn't on that list, so there is no native way to create a Delhivery, Blue Dart or DTDC AWB from Shopify. Indian stores fill the gap with a shipping app or aggregator connected to the store. A good one should:
- Pull new orders automatically, with the payment mode (prepaid or COD) carried onto the AWB.
- Let you choose a courier per order on rate, delivery time and pincode serviceability.
- Generate AWBs and printable labels in bulk.
- Write the tracking number and tracking URL back to the Shopify order and mark it fulfilled, so Shopify's shipping confirmation goes out.
- Show tracking on a page that carries your brand. See branded tracking.
If you fulfil manually, enter the tracking number in the fulfilment form. When Shopify doesn't recognise the carrier, choose Other and paste the complete tracking URL, including the AWB digits, so the order status page links to the right place.
Which Shopify shipping mistakes cost Indian stores money?
- Product weights left at zero, so weight-based tiers show the wrong rate at checkout.
- A top tier with a maximum value, so the biggest orders hit a shipping error.
- A free-shipping threshold below your average order value, which pays freight on orders that would have happened anyway.
- Rate names with no delivery time, which drive where-is-my-order calls.
- COD orders never marked paid, so Shopify's numbers drift away from your remittance statements.
Frequently asked questions
Not for labels. Shopify's help centre lists label carriers only for fulfilment locations in the US, Canada, Australia, the UK and some EU countries, and India isn't included. You can still set rates, free shipping and cash on delivery in Shopify, but booking Indian couriers, printing labels and syncing tracking needs a shipping app or aggregator.
Open Settings > Shipping and delivery, edit the shipping option in your India zone, tick Offer free shipping, enter the minimum order amount and save. Keep a paid rate for orders below it. A threshold a little above your current average order value nudges baskets up instead of giving away freight on orders you would have got anyway.
Go to Settings > Payments, choose Cash on Delivery (COD) from the manual payment methods, add any checkout instructions and activate it. COD orders show as payment pending, so mark them paid once your courier or aggregator remits the money. Shopify doesn't charge third-party transaction fees on manual payment methods.
Not with standard zones, which are built from countries and regions. Local delivery can target postal codes, but only for deliveries made by your own team around a location. For pincode-level pricing or serviceability checks you need a shipping app; otherwise keep one India-wide rate and absorb the zone differences in it.
Sources
Shipping operators and engineers who build RouteOneX's courier integrations, NDR and COD workflows for Indian D2C sellers. Every guide is reviewed against courier terms and official sources before publishing, and dated when it is updated.
How we write and review guides