We’ve built and re-built a dozen direct-to-consumer storefronts in the last two years. The pretty part — the product pages, the cart flow, the brand video — is the easy half. The half that decides whether you survive a Black Friday weekend is the boring stack underneath: payments, shipping, taxes, notifications. Get those wrong and the most beautiful storefront in the country will leak customers at checkout.
This is the operational checklist we run with every D2C client — what to pick, what to skip, and why the defaults are different for India than for anywhere else.
Pick your payment gateway honestly
There are three gateways worth seriously considering in India in 2026: Razorpay, Cashfree, and Stripe. They all support cards, UPI, netbanking, and wallets. The differences that matter are domestic onboarding speed, dispute handling, and pricing on UPI transactions.
- Razorpay — fastest onboarding for Indian sellers. UPI flat at 0% (currently). Best dashboard. Default pick.
- Cashfree — slightly cheaper on cards. Solid for high-volume stores. Onboarding can be slower for first-time merchants.
- Stripe — only if you also sell internationally. Indian onboarding is now possible but bureaucratic; not worth it if 95% of your customers are in India.
Whichever you pick, integrate with their webhook — never trust the client-side success callback alone. We’ve seen revenue lost because a flaky network on the customer’s side caused the redirect to fail while the payment had cleared.
import crypto from "crypto";
import { NextResponse } from "next/server";
export async function POST(req: Request) {
const body = await req.text();
const signature = req.headers.get("x-razorpay-signature");
const expected = crypto
.createHmac("sha256", process.env.RAZORPAY_WEBHOOK_SECRET!)
.update(body)
.digest("hex");
if (signature !== expected) {
return NextResponse.json({ error: "bad signature" }, { status: 400 });
}
const event = JSON.parse(body);
if (event.event === "payment.captured") {
await markOrderPaid(event.payload.payment.entity.order_id);
}
return NextResponse.json({ ok: true });
}Shipping: Shiprocket vs Delhivery vs direct
For most early-stage D2C brands, Shiprocket is the default — aggregator pricing, multi-courier routing, COD handling, returns built in. Once you cross roughly 200 orders/day, the math flips and a direct relationship with one or two couriers (Delhivery, Bluedart) usually wins.
Whichever you pick, the integration pattern is the same: create the shipment server-side at order confirmation, store the AWB number against the order, and surface tracking to the customer with the courier’s real tracking URL — not a vanity branded page that adds zero information.
GST and invoicing — don’t skip this
Every order needs a GST-compliant invoice. The format is non-negotiable: seller GSTIN, buyer state (for IGST vs CGST + SGST), HSN code per product, taxable value, tax rate, tax amount, total. Generate it server-side at order confirmation, save the PDF, and surface it in the customer’s order history.
We’ve never seen a regulator chase a small D2C brand over invoicing, but we’ve seen plenty of brands chase their accountant for missing invoices six months later. Cheaper to do it right at order time.
Image strategy for slow networks
Indian e-commerce is mobile-first, often on 4G with patchy 5G. The mistake we see most: 2 MB product photos served at full size on the product page. The fix is unsexy but works:
- One source — high-res original, never edited in place
- Many derivatives — Cloudinary or Vercel Image Optimization to generate responsive sizes on demand
- AVIF + WebP fallback — both formats are now reliably supported; jpegs only as the last resort
- Blur placeholders — perceived performance matters as much as actual performance
Notifications — WhatsApp is the channel
Email open rates in Indian e-commerce hover around 12–18%. WhatsApp delivery rates for transactional messages clear 95%. Use both, but if you can pick only one for order confirmations, shipping updates, and delivery notifications, pick WhatsApp via the official Business API (through a provider like Gupshup or Interakt).
Cash on delivery: love it or hate it
COD is still 25–40% of orders for most non-premium Indian brands. The return rate on COD is 3–4× higher than prepaid. The right answer isn’t to disable COD — it’s to do partial-COD (collect a small advance via UPI to confirm the order) and to gate COD by pincode/order-value/customer-history.
The storefront isn’t the bottleneck. The bottleneck is the boring stack: payments, shipping, taxes, COD policy. Get those right and the prettier site converts on its own.
Every D2C build we ship at TechNboost includes all of the above — wired up, tested, documented. The “e-commerce site” is one feature. The store that actually works is the other twelve.

