You started packing orders on your dining table. Bubble wrap on one chair, mailers on the other, a stack of shipping labels next to your laptop. For the first 200 orders it felt good. It felt like traction.
Now you're doing 40 orders a day, your kitchen smells like tape gum, and you spent last Sunday packing instead of running ads or talking to suppliers. Somewhere in the last month you stopped being a founder and became a warehouse worker. This guide answers one decision: do you keep fulfilling in-house, or do you hand it to a 3PL, and if so, when and which one.
A 3PL (third-party logistics) is a company that stores your inventory in their warehouse, then picks, packs and ships each order for you when it comes in. You send them stock once. They handle every parcel after that. You get your evenings back and, past a certain volume, you often get cheaper shipping too.
Fulfil in-house until it breaks, then switch. "Breaks" usually means one of three things: you're consistently past roughly 1,000 orders a month, packing is stealing 15+ founder hours a week, or you can't ship same-day anymore. A 3PL charges you three things: storage (per unit or per cubic foot per month), pick-and-pack (per order), and shipping (per parcel, by weight and zone). Expect a blended ₹70 to ₹120 per order for a light product before shipping subsidies. Start with one central warehouse. Go multi-warehouse only once volume and zonal data justify it, because it cuts delivery time and RTO but adds storage and complexity. Pick a partner that integrates cleanly with your Shopify store and marketplaces.
What a 3PL actually does (and what it doesn't)
A 3PL is not a courier. This trips people up. The courier (Delhivery, Blue Dart, Ekart) moves the parcel from A to B. The 3PL is the warehouse and the hands: they receive your stock, shelve it, and when an order drops, they pull the right SKU, box it, slap the label on, and hand it to a courier. Many 3PLs also broker courier rates for you, so you get bulk pricing you'd never get shipping a few hundred parcels yourself.
What a 3PL does not do: build your brand, decide your packaging, or fix a product nobody wants. If your unit economics are broken, a 3PL just loses money for you more efficiently. Get the maths right first.
The three things you pay for
Every 3PL invoice in India, no matter how it's dressed up, is built from three costs:
- Storage: rent for shelf space. Charged either per unit per month (good for small, high-volume SKUs) or by volume occupied, per cubic foot per month (better for bulky items). WareIQ explains both models here.
- Pick-and-pack: the labour of pulling and boxing each order. Charged per order. The more orders you do, the lower the per-order rate falls.
- Shipping: the courier charge, billed by weight slab and zone. Local is cheapest, national is dearest.
On top of these sit the small ones that quietly add up: inbound receiving (unloading and shelving your incoming stock), packaging material, return processing (RTO handling), and sometimes a monthly platform or SaaS fee.
Self-fulfilment vs 3PL: the honest trade-off
| Factor | Self-fulfilment | 3PL |
|---|---|---|
| Cost per order | Low cash cost, high time cost | Higher cash cost, near-zero time cost |
| Founder hours | You pack every order | You pack nothing |
| Shipping rates | Retail or small-aggregator rates | Bulk-negotiated, often cheaper |
| Speed to scale | Caps out fast (space, hands) | Scales with their capacity |
| Control | Full control over every parcel | You trust their SLA and accuracy |
| Best for | Under ~1,000 orders/month | Consistent 1,000+ orders/month |
Self-fulfilment isn't the amateur option. It's the correct option early. When you're doing 10 orders a day, you learn your packaging, catch defects, read customer notes, and keep cash. That hands-on time is training. The mistake isn't fulfilling yourself. The mistake is doing it 200 orders too long.
When to switch: the three trigger test
Don't switch on a feeling. Switch when you hit a trigger. Industry data pegs 1,000 to 10,000 orders a month as the sweet spot where 3PLs give you their best pricing and service. Below that, you're often better in-house. Here are the three signals.
1. Volume: consistently past ~1,000 orders/month
Roughly 30 to 35 orders a day, every day, is where in-house packing starts to crack. One person can't keep up, so you either hire packers and rent space (you're now running a mini-warehouse) or you outsource it. Most 3PLs treat 500 orders a month as the floor to take you on, and 1,000+ as where their rates get genuinely competitive.
2. Time: packing is eating 15+ founder hours a week
Do the honest sum. If you and your team spend 15 to 20 hours a week packing, and your time is worth even ₹500 an hour to the business (running ads, sourcing, talking to customers), that's ₹40,000+ a month of founder time buried in bubble wrap. A 3PL that costs you ₹80 an order on 1,000 orders is ₹80,000, but it buys back that time and usually gives you cheaper shipping. Do the swap when the time cost outweighs the fee.
3. Speed: you can't ship same-day anymore
When orders pile up and you're shipping day-2 or day-3, your delivery promise slips, and slow delivery quietly raises RTO on COD orders. If you've lost the ability to ship the same day an order comes in, your operation has already outgrown your table.
If you're under 1,000 orders/month AND packing takes under 10 hours/week → stay in-house, keep the cash and the learning. If you're past 1,000 orders/month OR packing eats 15+ founder hours/week OR you can't ship same-day → move to a single-warehouse 3PL. If you're past ~5,000 orders/month AND your order data shows a heavy split between north and south (or east and west) India → then, and only then, evaluate multi-warehouse.
The real cost model, in rupees
Here's what a 3PL invoice actually looks like. Shiprocket Fulfillment publishes a worked example on its pricing page: for 500 monthly orders of a 0 to 500g product, they show inbound ₹3,000, outbound (pick-pack) ₹6,000 and packaging ₹2,750, which works out to about ₹24 per order before shipping. Shipping (the courier charge) is billed separately on top.
Add the courier charge and the picture completes. A 500g parcel shipped intra-city might cost ₹35 to ₹50; inter-state runs ₹70 to ₹120 per WareIQ's rate data. So your all-in per-order cost is the fulfilment fee plus the zonal shipping charge.
Two rules when you read any 3PL quote. First, compare all-in per delivered order, not the headline pick-pack fee. The ₹24 becomes ₹90+ once shipping lands. Second, model RTO. A returned COD order costs you forward shipping, reverse shipping and return handling, and the 3PL charges for all three. If your RTO is 30 percent, your true cost per shipped order is higher than the clean number.
The Indian 3PL players, honestly
You have real options. None is best for everyone; it depends on your volume, product size and where your customers are.
| Player | Best fit | Notes |
|---|---|---|
| Shiprocket Fulfillment | Small to mid D2C on Shopify | Published example pricing, plugs into the Shiprocket shipping panel you may already use |
| Delhivery | Mid to large, wide pin-code reach | Own the courier network too, so warehouse and delivery are one company |
| WareIQ | Tech-first D2C, multi-channel | Covers D2C, marketplaces and quick-commerce; AI inventory planning; 12+ cities |
| Increff | Fashion and apparel at scale | Strong inventory and omni software, built for high-SKU catalogues |
| Pickrr / others | Aggregator-plus-fulfilment | Bundle shipping and fulfilment; verify current SLAs before committing |
What actually matters when you choose: how cleanly it integrates with your Shopify store and marketplaces, pin-code coverage where your customers live, real SLA on same-day dispatch, RTO handling, and whether their per-order all-in beats your current cost. Ask for a worked quote on your exact order profile, not a rate card.
Supplier Scorecard™ (applied to 3PLs): score each partner 1 to 5 on five things: all-in cost per delivered order, pin-code coverage in your top 10 cities, same-day dispatch SLA, integration with your store, and RTO handling. Anything under 3 on cost or coverage is a no, however good the sales call felt.
Single warehouse first. Multi-warehouse only at scale.
One central 3PL warehouse is the right starting point for almost everyone. Multi-warehouse means splitting your stock across two or more locations (say Delhi and Bangalore) so orders ship from the one nearest the customer. It's powerful but it's not a beginner move.
The upside is real. Positioning stock closer to buyers can cut delivery windows by 30 to 50 percent, lowers long-haul shipping cost per order, and reduces RTO because faster, more reliable delivery means fewer failed handoffs and fewer "I forgot I ordered this" refusals.
The downside is also real. You now hold duplicate safety stock in every location, which ties up more working capital. You need clean demand data by region to decide the split. And you add operational complexity: two inventory pools to balance, restock and reconcile. Do it too early and you'll have dead stock sitting in a city with no demand. Go multi-warehouse once you're past roughly 5,000 orders a month and your order data clearly shows demand splitting across regions, not before.
Signing a 3PL on the lowest pick-pack rate and ignoring shipping. A founder picks the partner quoting ₹18 pick-pack over one at ₹24, feeling clever about saving ₹6 an order. Then the first invoice lands: the cheap 3PL's brokered courier rates are ₹15 higher per parcel, and their coverage is thin in the founder's top city, pushing 20 percent of orders to a pricier backup courier. On 1,000 orders that "saving" turned into ₹12,000 to ₹18,000 of extra cost a month. Always compare all-in per delivered order.
Moving stock to a 3PL and firing the discipline. In-house, you counted every unit. At the 3PL, inventory drifts: their count says 400, your system says 460, and nobody reconciles until a bestseller shows out-of-stock during a sale. Set a weekly reconciliation and a low-stock trigger from day one. Read inventory management for D2C India before you hand over a single carton.
- Confirm you're consistently past ~1,000 orders/month, or packing eats 15+ founder hours/week.
- Calculate your current true all-in cost per delivered order, including your time.
- Shortlist 3 partners and ask each for a quote on your exact order profile.
- Compare all-in per delivered order, not the pick-pack headline.
- Check pin-code coverage in your top 10 destination cities.
- Confirm same-day dispatch SLA and how RTO is handled and billed.
- Test the integration with your Shopify store and marketplaces before going live.
- Send a small trial batch first; audit accuracy and packing quality.
- Set weekly inventory reconciliation and a low-stock alert.
- Start single-warehouse; revisit multi-warehouse only past ~5,000 orders/month.
Next action: run the honest cost comparison today
Open a sheet. In one column, your real self-fulfilment cost per order: packaging, current shipping, and your own time valued at ₹500/hour. In the next, a 3PL's all-in quote on your order profile. If the 3PL number is close or lower and it buys back 15+ founder hours a week, you have your answer. If you're still under 1,000 orders and packing is manageable, stay in-house one more quarter and keep the cash. Also read the Shiprocket vs NimbusPost vs Delhivery comparison so you understand courier economics before you outsource, and if you haven't yet mapped the full journey, the guide to starting a D2C brand in India puts this decision in context.
If you'd like the complete execution system, calculators, SOPs, templates and operating frameworks behind this process, continue inside D2C Acquisition.Lab.
