I lost roughly $12,000 running a dropshipping store in India. Not in one dramatic month. In a slow, well-documented drip across ad accounts, courier invoices, sample orders, influencer payments, and a pile of returned parcels sitting in a corner of a room.
The thing I want to push back on is the premise the entire dropshipping content industry is built on: that this is a low-investment business. It is not. It is a working-capital business wearing an ecommerce costume. Every structural feature of Indian D2C — cash on delivery, courier remittance cycles, paid-social acquisition, return to origin — converts your bank balance into a float that someone else holds. You are not building a store. You are financing a supply chain with your own money while renting your entire demand.
This is the honest version. What it cost, where the money actually went, what I fixed, and what I would tell someone about to wire their first ad budget into a Meta account.
Why Is Dropshipping Capital Intensive? You Pay Everything Upfront and Get Paid Last
In a normal SaaS business, you get paid before or at the moment you deliver value. In Indian COD dropshipping, the order of operations is inverted:
- You pay Meta today, in advance, for impressions.
- You pay for inventory, or at minimum you pay a supplier before dispatch.
- You pay forward freight when the parcel leaves.
- The customer maybe pays the delivery agent in 4–7 days.
- The courier remits your COD money 7–15 days after that, minus fees.
- And for 20–40% of parcels, step 4 never happens — you instead pay reverse freight.
That means at any given moment you are carrying three to six weeks of spend on your own balance sheet. Scale the ad spend and the float scales with it — linearly, immediately, with no discount for being right. Growth in this business consumes cash faster than it produces it. That single fact is what "capital intensive" means, and it is the part that no one selling a dropshipping course explains.
Reason 1: Ads Are the Only Channel That Works
There is no organic path here. Nobody is searching for the product because they did not know it existed thirty seconds ago. There is no SEO moat on a generic gadget, no community, no referral loop, no email list on day one. Meta is the channel. Occasionally Google Shopping. That is it.
Which means 100% of your demand is rented, and the rent is repriced daily by an auction you do not control. Two consequences follow:
- Your CAC is set by other people's balance sheets. You are not buying impressions off a rate card. You are bidding for them, and the price is whatever the other bidders make it.
- You must keep paying to keep existing. Stop spending for a week and revenue goes to approximately zero. There is no base load. Every dollar of revenue has a dollar of ad spend attached to it, forever.
The Auction Is the Business, and You Are the Weakest Bidder In It
This is worth spelling out, because "competition raises your CPA" sounds like a platitude until you see the mechanism. Meta does not sell you a user. It runs an auction for each impression, and it does not simply award it to the highest bid — it ranks advertisers on roughly bid × predicted action rate × ad quality. You win by being willing to pay more, or by being more likely to get the click and the purchase. Everyone chasing the same broad Indian audience — the same 18–34 interest cluster, the same pincodes, the same festive window — is stacked into the same auction for the same eyeballs.
Which means your cost per acquisition is not really a number you control. It is an output of who else showed up that day. Four things move it, and none of them are things you did:
- Someone with better economics outbids you on purpose. This is the one that actually kills small dropshippers, and it is downstream of getting your ICP right — or not. A brand with repeat purchase, an email list, and real LTV can rationally pay $25 to acquire a customer worth $90 over two years. You are selling a one-off gadget with no second order — your break-even CPA might be $6. When they enter your auction, they are not outsmarting you. They can simply afford a price you cannot, and they will take every impression they want. You lose on economics, not on skill.
- Seasonality drags in advertisers who ignore you the rest of the year. Festive season, Q4, IPL — inventory does not expand to match demand, so CPMs climb for everybody. Your ad account looks identical to how it looked in August and your CPA is up 60%.
- Your winner gets cloned, and the clones bid against you. In Indian dropshipping, a working creative gets copied within weeks. Now there are eight stores running your angle at your audience. The auction gets denser and the audience has seen the hook already, which is worse than it sounds — see the next point.
- Fatigue makes the platform charge you more for the same delivery. Because the ranking weights predicted action rate, a creative people have stopped clicking is a creative Meta will only serve if you pay up for it. Falling CTR raises your effective CPM, which raises your CPA, which is why creative fatigue shows up on the invoice and not just in the engagement column.
Put together: your acquisition cost drifts upward as a structural default, and the only way to hold it down is to keep feeding fresh creative into the machine. That is not a marketing problem you solve once. It is a subscription you pay forever, and the price goes up.
Then there's the learning phase tax. Every new campaign, every new product, every meaningful edit resets the algorithm's education, and you fund that education. Product testing is not "try five products, keep the winner." It is "pay for five learning phases, and statistically expect all five to fail." If you want the statistical framing for why early results mislead you here, I wrote about Bayesian and sequential A/B testing separately. My testing budget was real money spent to purchase the information that something did not work.
Reason 2: The Creative Treadmill Never Stops
Targeting used to be the lever. It is not anymore. Meta's algorithm has absorbed audience selection almost entirely — you hand it a budget, a conversion event, and a pile of creatives, and the creative is the targeting now. Which is fine as a mechanic, except for what it does to your cost base.
Broad, algorithm-led delivery is hungry. It burns through creative variations fast, fatigue sets in within days on a scaling ad set, and the platform's own guidance keeps pushing toward more assets, more formats, more variation. You are not making an ad. You are running a small content studio that must ship continuously, forever, as a cost of staying in the auction.
And every time Meta changes something — a new placement, a shift in how Advantage+ allocates budget, a new aspect ratio that suddenly performs — your existing creative library depreciates. Not gradually. In a week. I've had a winning video go from carrying the account to unservable-in-practice after a delivery change, with nothing about the video or the product having changed.
So you have a permanent, non-optional creative line item. If you shoot in-house, you're buying time. If you don't, you're buying videos.
Reason 3: Influencer Content Costs $350–475 a Video, and It's a Coin Flip
Mid-tier Indian creators quoted me $350 to $475 per video — and that is for one asset, usage-limited, with no performance guarantee whatsoever. Not a campaign. Not a retainer. One video.
Do the arithmetic on the creative treadmill above. If a scaling account needs a genuine stream of fresh concepts and most of them will lose, content alone becomes a four-figure monthly line item before a single dollar goes to media. For a store in its first year at a typical D2C gross margin, that one line can eat the entire margin — you are paying for the privilege of staying in the auction.
The failure rate is the brutal part. It is completely normal for a $400 video to underperform a $0 phone clip shot on a table at 11pm. You cannot know in advance. So you either spend enough for a portfolio of attempts, or you spend a little and get a portfolio of one — which is not a portfolio, it's a bet.
Reason 4: Delivery Is Where the Money Actually Dies
This is the section I wish someone had written before I started. Everything above is expensive but visible — you can see it in the ad account. RTO is invisible until it has already happened, and it is bigger than everything else combined.
What Is RTO (Return to Origin) in Ecommerce?
RTO — return to origin — is a COD order that ships, travels across the country, gets refused or goes undelivered, and travels back. You paid the ad cost that generated it. You paid forward freight. You paid packaging. You pay reverse freight. You get the product back, sometimes damaged, often unsellable. Revenue: zero. Cost: roughly double a normal shipment.
My RTO ran between 20% and 40% depending on the pincode mix, the product, and the month. At the top of that range, one in three parcels is a pure loss on top of a fully paid-for customer acquisition. No amount of ad optimisation survives that. You can cut CPM by 20% and still lose money; cut RTO by 20 points and a dead store becomes a live one.
Here's the shape of it. The unit costs below are representative of what a small Indian COD store looks like rather than a line-by-line copy of my books — the point is the delta, not the decimals, so plug in your own numbers and the conclusion holds. Same 100 orders, same product, same ad cost, two different delivery rates:
| Per 100 confirmed orders (AOV $14) | 70% delivered | 92% delivered |
|---|---|---|
| Revenue collected | $980 | $1,288 |
| Ad spend ($4.20 CPP × 100) | $420 | $420 |
| COGS on delivered units ($3.50) | $245 | $322 |
| Write-off on damaged returns | $16 | $4 |
| Forward freight ($0.95 × 100) | $95 | $95 |
| Reverse freight on RTO ($0.95) | $29 | $8 |
| Packaging ($0.25 × 100) | $25 | $25 |
| COD remittance fees | $25 | $32 |
| Confirmation calls ($0.10/order) | — | $10 |
| Contribution margin | $125 (13%) | $372 (29%) |
Neither column includes salaries, Shopify, apps, GST handling, or your own time. The 70% column does not survive a two-person ops team. The 92% column barely does. That is the actual business.
RTO Reduction in Practice: Confirming Every Single Order
The fix was not clever. It was operational, and it was two layers.
Layer one: an automated WhatsApp yes/no immediately after checkout. I built this on whatsapp-web.js — the same unofficial client I used to build automated WhatsApp appointment reminders — an unofficial library that drives WhatsApp Web programmatically. A Shopify orders/create webhook fires, the service messages the customer with the product, the amount, and the delivery address, and asks them to reply 1 to confirm or 2 to cancel. Confirmed orders get pushed to the courier. Cancellations get killed before they ever cost freight — which is the entire point, because a cancellation at this stage costs nothing and the same cancellation at the doorstep costs freight both ways plus a unit that may come back unsellable.
// simplified: confirm before you ship
client.on('message', async (msg) => {
const order = await findOrderByPhone(msg.from);
if (!order || order.status !== 'awaiting_confirmation') return;
if (msg.body.trim() === '1') {
await markConfirmed(order.id); // -> push to Delhivery / Blue Dart
await msg.reply('Confirmed! Shipping today. 📦');
} else if (msg.body.trim() === '2') {
await cancelOrder(order.id); // -> costs us zero
await msg.reply('Cancelled, no charge. Thanks!');
}
});
A practical warning, since I'd rather you hear it from me: whatsapp-web.js is an unofficial automation of the web client, not a supported API. It is not what WhatsApp wants you doing, numbers do get banned, and it needs a session that stays alive. For a bootstrapped store it was the difference between profitable and not, and I'd make the same call again — but go in knowing that you're building on sand, keep the messaging strictly transactional and low-volume, and plan the migration to the official Business API before it becomes an emergency.
Layer two: a human calling the non-responders. I hired someone whose entire job was calling every order that did not reply on WhatsApp. Unglamorous, and by far the highest-ROI hire in the business. One modest salary against fifteen points of RTO is not a cost, it is the margin — the arithmetic is not close.
Between the two layers, plus nudging customers toward prepaid and validating addresses at checkout, we got the delivery rate to 92%. That number is the only reason the store ever had a profitable month.
On Couriers: Shiprocket, Then Off It
I started on Shiprocket, like everyone does, because the aggregator model looks obviously correct — one integration, multiple carriers, better rates through pooled volume. In practice I found the transparency wasn't there. Weight discrepancy charges that appear after the fact and are painful to dispute. Tracking statuses that don't reflect what the parcel is doing. NDR handling where "customer not reachable" shows up for a customer who was, in fact, reachable — because a failed delivery attempt is cheaper for someone in the chain than an actual one. RTO decisions you learn about when the parcel is already coming back.
I'm not alone in this. There's an entire subreddit, r/FuckShiprocket, full of sellers comparing the same set of complaints — I'm fairly active there. Read it before you commit your fulfilment to any aggregator; the pattern-matching across hundreds of sellers is more useful than any review site.
What I moved to was direct contracts with multiple carriers — Delhivery and Blue Dart — and routing between them. Blue Dart for metros and higher-value parcels where reliability justifies the price; Delhivery for reach and cost across tier-2 and tier-3 pincodes. Direct contracts mean a real account manager, real escalation, and a weight dispute you can actually argue. The tradeoff is you need volume to get decent rates, and you carry the integration and routing logic yourself — which is more capital and more engineering, again.
Reason 5: Sourcing Is a Quality Problem Disguised as a Price Problem
The dropshipping fantasy is that sourcing is solved: you list, someone else ships, you never touch a box. In India, every one of those paths has a specific failure mode.
- China (AliExpress, 1688, agents). Landed cost is not unit cost. Add import duty, IGST, customs clearance, freight, and 20–40 day lead times. Long shipping times destroy COD conversion and inflate cancellations. To ship fast you must hold stock locally — and the moment you hold stock, you are not dropshipping, you are running inventory with your own cash.
- IndiaMART suppliers. Fast and local, but quality control is broadly not the priority. Batch variance is real: your sample is excellent, your first hundred units are noticeably not. That gap shows up as returns, refunds, bad reviews, and RTO — the same cost line as everything else in this post.
- Roposo Clout and similar platforms. I tried the creator-commerce/reseller route. The catalogue management was poor, product data was inconsistent, and the payouts weren't good enough to build a business on. You end up with thin margins on products you cannot control the quality of, which is the worst of both worlds.
Underneath all three is one truth people underestimate: Indian consumers are quality-sensitive, and COD makes it costless for them to act on it. Nobody has paid yet. If the parcel looks cheap, or arrives late, or the reviews are bad, they just refuse it at the door. Product quality in a COD market is not a brand consideration — it is a direct input to your RTO rate, and therefore to whether you make money at all.
The way out of that is samples, batch checks, and holding good inventory. All of which is capital.
The Stack I Ended Up With
- Shopify — storefront, checkout, orders. Fine. The monthly fee is the smallest line item in this post by an order of magnitude, and the app subscriptions add up faster than the plan itself.
- Delhivery + Blue Dart, direct — multi-carrier routing by pincode and order value, after moving off aggregator pricing.
- whatsapp-web.js (wwebjs.dev) — automated order confirmation, with the caveats above.
- Meta Ads — the demand engine, and the single largest cost.
- Two people. One handling packaging, dispatch, and customer support. One doing nothing but confirmation calls on every order.
Note what's in that list: two salaried humans and a physical dispatch operation. That is not a laptop business. Somewhere between "test a product" and "run a store," dropshipping quietly becomes a logistics company with a Shopify frontend, and the cost structure follows.
So Where Did $12,000 Go?
Roughly, and from memory rather than a clean ledger:
- Ad spend on products that failed. The largest single bucket. Each test is a learning phase you pay for, and most tests are supposed to fail — that's the model working as designed, and it's still your money.
- RTO. Freight out, freight back, damaged units, and the ad spend attached to orders that generated $0. This was the quiet killer.
- Creative. Influencer videos at $350–475 each, several of which produced nothing.
- Inventory. Stock bought to fix delivery times that then didn't sell fast enough, sitting as dead capital.
- Salaries and tooling. Two people plus Shopify plus apps, paid every month regardless of whether the month worked.
No single catastrophic decision. Just a cost structure that quietly requires more capital than the model advertises, sustained over long enough to add up to $12,000.
What I'd Tell Someone About to Start
- Budget for the float, not the launch. The question is not "can I afford this month's ad budget." It's "can I afford to have three to six weeks of ads, freight, and inventory outstanding at all times, while 30% of it comes back as cardboard?"
- Build order confirmation before you build anything else. Before the theme, before the upsell app, before the second product. RTO is the largest variable in your P&L and it is the one most within your control.
- Push hard on prepaid. Every prepaid order removes RTO risk, freight-back risk, and the remittance lag simultaneously. A discount for prepaying is almost always cheaper than the RTO it prevents.
- Treat creative as a fixed monthly cost, not a project. If you cannot fund a continuous stream of new concepts, you cannot scale on Meta. Plan the budget or plan the ceiling.
- Get direct courier contracts as early as your volume allows, and read r/FuckShiprocket before you hand your fulfilment to anyone.
- Order samples. Then order a batch and check it. In a COD market, product quality is an RTO input, not a branding exercise.
- Know what you're actually building. If the plan is a real brand — repeat purchase, a category, an email list, some reason for demand to exist without an ad behind it — the capital has somewhere to compound. If the plan is arbitrage on a trending product, you are paying for a very expensive education. I got the education.
Frequently Asked Questions
Is dropshipping profitable in India?
Rarely, and never quickly. Indian dropshipping runs on cash on delivery, which means ad spend, freight, and packaging are all paid weeks before the courier remits any revenue, and 20–40% of COD orders come back as return to origin with zero revenue and roughly double the shipping cost. On the illustrative model in this post, a 70% delivery rate leaves a 13% contribution margin before salaries or software, while 92% leaves 29%. Profitability is possible, but it depends on having enough working capital to survive the RTO rate and enough operational discipline to bring it down — not on picking a better product.
What is RTO in ecommerce?
RTO stands for return to origin: a cash-on-delivery order that ships, gets refused or goes undelivered at the doorstep, and is shipped back to the seller. The seller pays forward freight, reverse freight, and packaging, and collects zero revenue on it — a cost roughly double a normal delivered shipment, on top of the ad spend that produced the order. In Indian COD ecommerce, RTO typically runs 20–40% of orders, which is usually larger than the store's entire gross margin.
Why is dropshipping capital intensive?
Because every cost lands before any revenue arrives. You pay for ads today, pay a supplier before dispatch, and pay forward freight when the parcel ships — but the customer may not pay for 4–7 days, and the courier does not remit that cash for another 7–15 days after that. That is three to six weeks of ad spend, freight, and inventory sitting on your own balance sheet at all times, and the float scales linearly as you grow. Add a 20–40% RTO rate that turns part of that spend into a total loss, and dropshipping stops being a low-investment side hustle and becomes a working-capital business.
How do you reduce RTO on cash-on-delivery orders?
Confirm every order before it ships. An automated WhatsApp yes/no message immediately after checkout, followed by a human confirmation call for anyone who does not reply, plus incentives to prepay and address validation at checkout. A cancellation caught at that stage costs nothing; the same cancellation at the doorstep costs freight both ways plus a unit that may come back unsellable. This took my delivery rate from roughly 70% to 92%.
The Honest Conclusion
Dropshipping in India is sold as low-risk because the inventory risk is low. But inventory was never the expensive part. The expensive parts are renting 100% of your demand from an auction that reprices daily, feeding a creative machine that depreciates your assets in a week, and shipping COD parcels into a market where a third of them can come back and cost you double.
None of that is a reason nobody should do it. People do make it work — and the ones I've seen do it are almost always the ones who treated it as an operations business from day one, obsessed over RTO before they obsessed over ROAS, and had enough capital to survive the products that didn't work while they found the one that did.
I had the operations instinct. I got delivery to 92%, which I'm still genuinely proud of. What I didn't have was enough capital to keep testing after I'd learned how to run it properly. That's the whole lesson, and it cost me $12,000: in this business, being right is necessary, and being funded is what lets you stay long enough to be right.
~ Comments & Discussion ~
Have thoughts on this post? Join the discussion below! Comments are powered by Disqus.