The fastest lever for most beauty brands on Shopify isn't more traffic. It's the second purchase. A serum brand doing 1,000 orders a month at ₹1,150 average order value is buying nearly all of those orders from Meta and Google every single month. Push the 90-day repeat rate from 18% to 26% and you add 80 orders per cohort at zero acquisition cost. That's ₹92,000 a month, ₹11 lakh a year, from work that happens after checkout. Compare that to what a 20% cut in CAC would take.
So most of what follows is about the parts of a Shopify beauty store that decide whether someone comes back: the product page, the way the catalogue is browsed, the payment mix, and the timing of the email that lands when their bottle is nearly empty.
Shade, size and skin type break the default theme
Shopify's variant model handles a lipstick in 12 shades fine. It stops handling it well the moment you have 12 shades across 3 finishes, and then a mini size for two of the finishes only. You end up with variant combinations that don't exist, a swatch grid where half the options are greyed out, and a mobile PDP where the shade picker pushes the add-to-cart button below the fold.
Two things we do on almost every beauty build. First, swatches render as actual colour or a cropped product image, never as a text dropdown. A shopper picking between "Nude 03" and "Nude 07" from a dropdown will not pick either. Second, sold-out shades stay visible and clickable with a back-in-stock capture, because the shade someone wants is the reason they came, and hiding it converts an interested visitor into a bounce.
Metafields do the rest. Undertone, finish, coverage, SPF value, skin type, key actives, net weight, batch and shelf life. Set these up properly in the beginning and every downstream job gets easier: filters, search, feed exports to Google and Meta, quiz logic, and eventually a subscription plan. Retrofitting metafields onto a 400-SKU catalogue after the fact is a week of tedious work nobody enjoys.
Beauty shoppers browse by concern, not by your collection names
Your navigation says Serums, Moisturisers, Cleansers. Your customer is thinking "something for pigmentation that won't break me out". Those are different mental models and the second one wins.
The fix is filters that map to the language on the label: concern, skin type, key ingredient, texture, price band, and whether it's fragrance-free. On a catalogue past roughly 80 SKUs, Shopify's native filtering starts to feel thin, and the default search does a poor job with ingredient names, misspellings, and the way people type "vitamin c serum for oily skin" into a search box expecting a filtered result rather than a keyword match. We built FilterPro partly because we kept rebuilding the same faceted-filter and search layer for catalogue-heavy clients, beauty among them.
Whatever tool you use, check one number: the conversion rate of sessions that use site search versus those that don't. If searchers convert at three or four times the site average and only 6% of sessions search, your search box is too small and too far from where the thumb rests.
What a beauty PDP has to answer before it can sell
Six questions, in roughly this order of importance:
- Will this suit my skin? (type, undertone, concern, what it doesn't contain)
- What's actually in it, at what percentage? Full INCI list, and the actives called out with concentration where you can state one.
- How do I use it, and with what? Morning or night, before or after which step, what not to layer it with.
- When will I see something? Give a realistic window. "Visible in 3 days" damages you more than "most people notice a difference around week four".
- Is it fresh? Manufacturing date, expiry, PAO symbol. Cosmetics buyers check this and marketplace listings have trained them to expect it.
- What if it doesn't work for me? Say what happens with an opened product, plainly. Hiding an unfriendly returns policy in a footer link costs you the order anyway, just later.
Reviews earn their place on beauty PDPs more than in most categories, but only with attributes attached. A five-star review from someone with dry, sensitive, 40s skin is worth more to a matching shopper than 200 unfiltered stars. Collect skin type and age band at review time and let people filter by it.
The COD arithmetic most beauty brands on Shopify get wrong
Take a store where 60% of orders come cash on delivery and 22% of those COD orders come back as RTO. Per 1,000 orders that's 600 COD, 132 returned. Forward and reverse shipping runs about ₹140 on a light 100g parcel, so ₹18,480 gone. Some of that returned stock can't be resold because the seal or carton is damaged, and for cosmetics that write-off is real.
The standard reflex is a 5% prepaid discount. Run it. On ₹1,150 AOV that's ₹57.50 per order. Say it converts 150 of the 600 COD orders to prepaid: you've spent ₹8,625, including on plenty of people who were going to pay online anyway. It prevents 33 RTOs (22% of 150). At ₹140 shipping plus, say, a 30% chance of a ₹300 unit being unsellable, you save roughly ₹230 per prevented RTO. 33 × 230 = ₹7,590.
You just spent ₹8,625 to save ₹7,590. A blanket prepaid discount is close to a wash, and on a lower-AOV catalogue it loses money.
What works better: pull your last six months of RTOs by pincode, and show COD only where it earns its place. Cap COD above a value threshold. Trigger a WhatsApp order confirmation with a single-tap payment link on COD orders from high-risk pincodes, which converts a slice of them to prepaid at almost no cost. Offer the discount as a first-order-only incentive rather than to your entire returning base. Razorpay's UPI intent flow on mobile also does quiet work here: if paying online takes two taps, fewer people default to cash out of inertia.
Replenishment timing beats another discount email
A 30ml serum used twice a day lasts most people six to eight weeks. A 200ml cleanser, ten to twelve. If your only post-purchase email is a 15% off blast on the 30th of every month, you're discounting people who were going to reorder anyway and missing the ones who ran out in week seven.
Set a days-to-empty value per SKU as a metafield, then build a flow that fires at 70% of that window with no discount at all, just a reorder link and a reminder of what they bought and the shade. Fire again at 110% with a small incentive. We run this in Omnisend and Klaviyo both; the platform matters less than having the per-SKU number instead of a single global 45-day guess.
Sampling deserves a mention. Beauty is the one category where a ₹40 sachet in the parcel genuinely drives the next order, because the objection is "will this suit me", not price. Put the sample of the adjacent product, not a second sample of what they bought.
Heavy stores: the video and UGC problem
Beauty stores accumulate weight faster than any other category we work on. Shade-finder app, before-and-after slider, UGC gallery pulling Instagram, review widget, quiz, wishlist, loyalty popup, WhatsApp chat, three pixels. Each one is 40-120KB of JavaScript and most load on every page, including the ones where they do nothing.
The symptom is a mobile LCP of 3.5 to 4.5 seconds on a hero image that's an uncompressed 1.4MB JPEG, on a 4G connection in a Tier-2 city where your Meta traffic actually lives. Getting that under 2 seconds is mostly unglamorous: convert heroes to WebP at sensible dimensions, lazy-load anything below the fold, defer the review and UGC scripts until interaction, and delete the two apps you stopped using in March but never uninstalled. Our own SwiftStore app handles the scanning and monitoring side of this, though the app audit is a human job. If you'd rather have someone go through it properly, that's what our speed optimisation work covers.
The boring compliance layer
In India, cosmetics sit under the Drugs and Cosmetics Act and its rules, which means your labelling, your claims and your manufacturing licence details all matter, and your PDP copy is a public claim. If any part of your range is ingestible, a beauty collagen, a gummy, a hair supplement, that's FSSAI territory with its own licence number and label requirements. Get the compliance text onto the product page as structured metafields rather than baked into a description image, because you will need to update it and you will not want to re-export 300 images.
Two practical Shopify notes. GST on most cosmetics is 18%, so decide early whether your listed prices are inclusive and keep it consistent across your site, your marketplace listings and your invoices. And if you're shipping to the UAE or the US, ingredient restrictions differ from India's, so a single global catalogue with one description will eventually get a listing pulled. Market-specific metafields and Shopify Markets handle this, but only if you plan for it before you switch the market on.
If a marketplace is 80% of your revenue, your store's job changes
Plenty of Indian beauty brands do the bulk of their volume on Nykaa, Amazon and Myntra. If that's you, don't let an agency talk you into treating your Shopify store as the primary sales channel on day one. It isn't, and it won't be next quarter either.
What it should do instead: launch new shades and limited runs first, so the people who care most have a reason to come; hold the full ingredient story and the education content that marketplace listings can't; run the loyalty programme and subscriptions that marketplaces don't let you own; and capture first-party data you can use for retargeting when marketplace ad costs climb during a sale event. Set the KPI to email and WhatsApp list growth plus repeat rate for the first two quarters, not total revenue. The revenue follows once the list is real.
The corollary is that you probably don't need Shopify Plus yet. Unless you're running multiple storefronts across markets, doing serious B2B, or hitting checkout customisation limits, standard Shopify plus a good theme and three or four well-chosen apps will carry you a long way further than the sales conversation suggests.
Where to start this week
Pull one report: orders by customer, split first-time versus returning, for the last 90 days. If returning orders are under 20% of the total, everything above about PDP detail, replenishment flows and sampling matters more than your next ad creative. If it's over 35%, your problem is acquisition and the answer is content and organic visibility for the ingredient and concern queries you're currently renting from Google Ads.
If you'd rather have someone else look, we run a free store audit that covers the PDP structure, app weight, filter setup and the COD mix. It takes us a few days and you get the findings whether or not you work with us.


