Skip to content
Shopify / Apps

Shopify fulfillment in India: Shiprocket, Delhivery and 3PL

The honest shipping stack for Indian D2C: aggregators like Shiprocket vs direct carriers like Delhivery, how COD, NDR and RTO actually work, and the right way to wire it all into Shopify without duct-taping five apps together.

Tanuj Rajput

Web developer & one-operator studio

·9 min read
Shopify fulfillment in India: Shiprocket, Delhivery and 3PL

For most Indian D2C stores on Shopify, start with a shipping aggregator like Shiprocket for multi-carrier COD and pincode coverage, move to direct carriers like Delhivery once you cross a few thousand orders a month, and treat RTO — not freight — as your biggest cost. Get the COD and NDR workflow right and fulfilment stops leaking money.

I am a senior Shopify developer in Delhi, and I have wired the shipping stack for D2C brands shipping everything from skincare to 5kg cookware across India. This is the honest version of how fulfilment actually works here — the parts the app store listings gloss over.

Aggregator or direct carrier — which do I start with?

This is the first real decision, and most brands get it backwards by going direct too early or staying on an aggregator too long.

An aggregator (Shiprocket, Shyplite, iThink, Nimbuspost) sits between you and a dozen carriers. You get one panel, one integration, COD support, pincode-level serviceability, and automatic carrier selection or fallback when one courier can't deliver. You pay a small markup on freight for that convenience.

A direct carrier (Delhivery, Bluedart, DTDC, Ekart, XpressBees) is a contract with one courier. Cheaper per shipment at volume, better SLAs, cleaner escalation — but you lose the multi-carrier fallback, and one carrier's bad week in one region is now your problem.

FactorAggregator (e.g. Shiprocket)Direct carrier (e.g. Delhivery)
Best at0–3,000 orders/mo3,000+ orders/mo
Carrier choiceMany, auto-selectedOne
Per-shipment costHigher (markup)Lower (contract rate)
COD + serviceabilityBuilt inYou manage
Fallback if courier failsAutomaticManual re-book
Rate negotiationLimitedReal leverage

The clean rule: start on an aggregator, graduate to direct carriers for your main lanes while keeping an aggregator for the long tail. Most mature brands I work with run a hybrid — Delhivery or Bluedart direct for metros where they have volume, an aggregator for everything else.

What does shipping actually cost per order in India?

Rates change constantly with fuel surcharges and slab revisions, so treat these as planning numbers and verify live in your panel. As of 2026, a rough guide:

Line itemTypical range (INR)~USD
Surface, 500g, within zone₹35–₹60$0.42–$0.72
Surface, 500g, cross-zone₹55–₹90$0.66–$1.08
Air / express, 500g₹90–₹160$1.08–$1.93
COD handling fee₹15–₹40 or 1.5–2%flat or %
RTO (forward + reverse)~2× forward freight—

Two things brands underestimate: weight slabs (a 510g parcel is billed at the next slab up, and dimensional/volumetric weight can beat actual weight for bulky-but-light items), and RTO, which quietly doubles the freight on every failed order. Get your packaging weight and box sizing right before you obsess over per-gram rates.

How does COD really work on a Shopify store?

Cash on Delivery is still 50–70% of orders for many Indian D2C brands, so you cannot ignore it — but it is also where the risk lives.

Shopify supports COD natively as a manual payment method. In practice you layer on more control:

  • Restrict COD by pincode, cart value, product, or customer using a COD app so you are not shipping cash-risk orders to high-RTO areas.
  • Verify COD orders with an OTP or WhatsApp confirmation before dispatch — this alone kills a chunk of fake and impulse orders.
  • Take a partial COD advance on high-value or high-risk carts (say ₹100–₹200 prepaid, balance on delivery) to give the buyer skin in the game.
  • Nudge toward prepaid with a small discount; every prepaid order is one you can't lose to RTO.

Your aggregator or carrier collects the cash and remits it, usually weekly, minus a COD fee. That remittance cycle is working capital you need to plan for — you have paid for goods and freight before the cash lands. If you are still deciding how to handle payments and COD together, Shopify Payments, COD and GST in India covers the checkout side in detail.

What are NDR and RTO, and why do they matter so much?

If you learn one thing about Indian fulfilment, learn this. RTO is the biggest hidden cost in Indian D2C — bigger than freight, bigger than most app fees.

  • NDR (Non-Delivery Report): a failed delivery attempt. Wrong or incomplete address, customer not home, phone unreachable, or a COD buyer who refuses the parcel at the door.
  • RTO (Return to Origin): what an unresolved NDR becomes. The parcel travels all the way back to you. You pay forward freight, reverse freight, handling, and recover zero revenue.

For COD-heavy stores, RTO can run 25–30% before you do anything about it. Pull that into single digits and the impact on your P&L is larger than almost any conversion tweak. Here is the workflow that gets you there:

  1. Address hygiene at checkout — validate pincode, catch obviously broken addresses, collect a working phone number.
  2. COD verification before dispatch — OTP or WhatsApp confirm; auto-cancel unconfirmed high-risk orders.
  3. NDR action within hours, not days — when a courier reports an NDR, message or call the customer immediately and re-attempt while intent is still warm.
  4. Block or downgrade repeat-offender pincodes to prepaid-only.
  5. Reward prepaid so your riskiest orders never enter the COD funnel in the first place.

Most aggregators have an NDR dashboard; the discipline is acting on it fast. A WhatsApp automation that pings the customer the moment an NDR fires recovers far more parcels than waiting for the courier's next attempt. If you are already running WhatsApp for order updates, folding NDR recovery into it is a natural extension — see abandoned cart automation for Indian stores for the messaging patterns.

How do I connect all this to Shopify cleanly?

This is where I spend most of my client time, because the difference between a tidy integration and a duct-taped one is real money and real support headaches.

The aggregator app. Shiprocket (and its rivals) have official Shopify apps. Install, authorise, and orders sync automatically: they flow into the aggregator, you generate labels and manifests, and tracking numbers push back to Shopify so the order is marked fulfilled and the customer gets a shipping email. This covers 80% of what a growing brand needs on day one.

Tracking experience. The default is to dump customers onto a third-party tracking page. That is a bounce and a branding miss. I prefer a native or lightweight branded tracking page on your own domain, fed by the carrier's tracking data, so buyers stay on your store and see your brand while they check status.

COD and RTO logic. Handle these with purpose-built apps rather than trying to bend one tool to do everything — a COD control app for rules, a verification app or WhatsApp flow for confirmation, an NDR tool if your aggregator's is weak.

When to go custom. Once you are at volume, or running multiple warehouses, or splitting orders across carriers by rule, the off-the-shelf apps start fighting each other. That is when a thin custom integration — often via Shopify Flow, a private app, or Shopify Functions for shipping/COD rules at checkout — earns its keep. Every extra app also adds weight to your storefront; how app overhead hurts performance explains why a leaner stack loads faster and converts better. A quick audit of your best-fit app stack for Indian D2C is a good first step before adding another tool.

Do I need a 3PL, and when?

A 3PL (third-party logistics provider) stores your inventory, then picks, packs, and ships each order for you. Warehouses like those integrated with Shopify — or independent 3PLs with a Shopify connector — take fulfilment off your team's plate.

You do not need one at the start. Self-fulfil from your own space while volume is low, margins are tight, and you want to feel every part of the operation. The signals it is time to move:

  • Picking and packing is eating hours your team should spend on growth.
  • You want regional warehouses to cut delivery time and RTO for far-flung pincodes.
  • Errors are creeping in as order volume outpaces manual handling.
ModelTypical fitTrade-off
Self-fulfil0–~300 orders/moCheapest; costs your time
3PL (single hub)~300–3,000/moStorage + per-order fees; buys back time
3PL (multi-region)3,000+/moFaster delivery, lower RTO; more coordination

A 3PL adds storage and per-order handling fees, so run the maths: the fee should be less than what your team's reclaimed time plus the RTO improvement is worth. For most brands that crossover lands somewhere in the few-hundred-orders-a-month range, but it depends entirely on your margins and how hands-on your team is.

What does the whole stack look like, put together?

Here is the shape of a fulfilment stack I would set up for a growing Indian D2C brand on Shopify:

LayerEarly stageGrowth stage
CarrierAggregator (Shiprocket)Hybrid: direct + aggregator
COD controlPincode + value rules+ advance, + verification
RTO defenceManual NDR + WhatsAppAutomated NDR + prepaid nudges
TrackingBranded tracking pageSame, plus proactive updates
WarehousingSelf-fulfil3PL, possibly multi-region
Shopify glueOfficial appsFlow / custom integration

The mistake I see most often is bolting on five overlapping apps and calling it a stack. Fewer, well-chosen tools — with a thin custom layer where the off-the-shelf options fall short — is faster, cheaper to run, and far easier to support. Fulfilment is not a place to improvise; it is where a clean setup quietly protects your margin on every single order.

What's next

If your Shopify fulfilment is a tangle of apps that don't talk to each other, or your RTO is eating your margin, that is exactly the kind of problem I fix. On the Shopify developer in Delhi page you can see how I work — senior hands-on development, transparent fixed pricing, and named case studies. Or tell me your setup directly at /start: your order volume, your COD split, your current carriers, and where it hurts. I will give you an honest read on whether you need a custom integration or just a better-configured stack.

Sources

FAQ

Frequently asked questions

  • Should I use Shiprocket or Delhivery directly for my Shopify store?

    Use an aggregator like Shiprocket when your volume is low and you want access to many carriers, COD, and pincode-level serviceability from one panel. Go direct with Delhivery, Bluedart, or Ekart once you ship a few thousand orders a month and can negotiate contract rates — the per-shipment cost drops and you get better SLAs, but you lose the multi-carrier fallback an aggregator gives you.
  • How do I connect Shiprocket to Shopify?

    Install the Shiprocket app from the Shopify App Store and authorise it — it syncs orders automatically, pushes tracking back to Shopify, and lets you generate labels and manifests from one dashboard. For a cleaner customer experience I usually pair it with a native Shopify tracking page or a lightweight tracking app so buyers do not bounce to a third-party site to see where their parcel is.
  • What is NDR and RTO in Indian ecommerce shipping?

    NDR (Non-Delivery Report) is a failed delivery attempt — wrong address, no one home, customer not reachable, or a COD refusal. RTO (Return to Origin) is what happens when NDRs are not resolved and the parcel ships back to you. RTO is the single biggest hidden cost in Indian D2C: you pay forward and reverse freight and recover nothing, so cutting RTO is where the real money is.
  • How much does shipping cost per order on Shopify in India?

    As of 2026, expect roughly ₹35–₹90 per 500g surface shipment through an aggregator, more for air, heavier parcels, or remote pincodes, plus a COD fee of about ₹15–₹40 or 1.5–2% of order value. Direct carrier contracts run lower per shipment at volume. Always verify live rates in your Shiprocket or carrier panel, as slabs and fuel surcharges change frequently.
  • Can I offer COD on Shopify in India?

    Yes. Shopify supports Cash on Delivery as a manual payment method out of the box, and most Indian brands add an app to restrict COD by pincode, cart value, or product, and to add a partial COD advance to cut RTO. Your shipping aggregator then handles the cash collection and remits it to you, usually on a weekly cycle minus a small COD handling fee.
  • Do I need a 3PL for my Shopify store in India?

    Not at first. Self-fulfil from your own space while volume is low and margins matter most. Move to a 3PL or Shopify-integrated warehouse once picking, packing, and inventory start eating your team's time — usually a few hundred orders a month. A 3PL adds storage and per-order handling fees but buys back time and, with regional warehouses, faster delivery and lower RTO.
  • How do I reduce RTO on my Shopify store?

    Verify COD orders with an OTP or WhatsApp confirmation before dispatch, take a small COD advance on high-risk orders, clean addresses at checkout, and act on NDRs within hours by calling or messaging the customer. Blocking repeat-RTO pincodes and nudging COD buyers toward prepaid with a small discount also helps. Together these routinely pull RTO from 25–30% down into single digits.
Revision history· 1 entry
  1. September 06, 2026

    Initial post. The Indian D2C fulfilment stack for Shopify — aggregators vs direct carriers, COD, NDR and RTO economics, 3PL timing, and how to wire it all into Shopify cleanly.

Last updated September 06, 2026

shopifyfulfillmentshiprocketlogisticsindia