Magento for cosmetics and beauty brands: shades, ingredient lists and batch codes
One lipstick in 30 shades is one product to your customer and 30 SKUs to your warehouse, and sorting that out is usually my first job when I set up Magento for cosmetics and beauty brands. Then come the ingredient lists that people with allergies actually read, the batch numbers you need if a product is ever recalled, and the perfume or nail polish that is not allowed on a plane. None of this is unusual for the category. It just costs far less to plan before the catalog import than to fix after launch.
- Every shade its own SKU, shown as a color swatch on one product page
- INCI ingredient lists and warnings stored per product, not pasted into the description
- Batch numbers linked to orders, so a recall reaches the right customers
Where a beauty catalog gets harder than a clothing one
A t-shirt has a size and a color. A foundation has a shade, an ingredient list, a batch number and sometimes a shipping restriction. These four shape how the catalog is built.
-
Swatches One lipstick, many SKUs
To the customer it is one lipstick. To the warehouse it is 30 barcodes, each with its own stock level and its own photo. When a shade sells out or gets discontinued, it should drop out of the swatch row by itself instead of leaving a dead click on the product page.
-
INCI People read the ingredients
Shoppers with allergies or sensitive skin check the full ingredient list before they buy, and the EU Cosmetics Regulation expects those ingredients in INCI names. If the list only exists as a photo of the box, nobody can search or filter on it, and nobody notices when a reformulation changes it.
-
Batch code Recalls happen per batch
Cosmetics carry a batch number and often an expiry or period-after-opening date. Magento Open Source counts stock per SKU only. It has no lot or expiry tracking, so if one batch of mascara is pulled you cannot ask the store who received it unless that link was set up beforehand.
-
Hazmat Some products cannot fly
Perfume and nail polish are flammable liquids, and aerosol dry shampoo or setting spray is pressurized, so air carriers treat them as dangerous goods. A cart with one bottle of perfume may not be allowed on the express international service your other orders use, and the checkout has to know that.
Six parts of a beauty store, one at a time
Some of this is plain Magento configuration, some needs an extension, and a little is custom code. I mark which is which, because that is where the hours go.
-
Shades as swatches, not a dropdown
Each shaded product becomes a configurable product with a shade attribute set to Visual Swatch, so the customer clicks a color chip and the photo, price and stock change with it. I load the hex code or a swatch image for every shade from your spreadsheet, so 40 foundation shades do not have to be typed in by hand. Out-of-stock shades hide from the row, and a discontinued one is simply disabled. A shade finder quiz or a virtual try-on service can sit on top later, but the shade data has to be right first.
-
Ingredients, claims and warnings
The full INCI list goes into its own product attribute, not the marketing description, and appears in a fixed spot on every product page. Claims such as vegan, fragrance-free or cruelty-free are yes/no attributes picked from a fixed list, so they can be used as filters and nobody invents a new spelling. If you sell into the EU, each product has a Responsible Person, and I can show that name and address with the warnings. Which claims you are allowed to make is a question for your regulatory advisor. I make sure the store shows exactly what they sign off.
-
Batch numbers and expiry dates
Because Magento Open Source has no lot or expiry tracking, there are two practical routes. If a 3PL or ERP already tracks batches, I pull the batch number back onto the shipment when it is sent, which is the cleaner option. If you pack orders yourself, a small module lets the packer scan or type the batch per order line. Either way, a recall becomes a search: this batch, these orders, these customers. Short-dated stock can then go into its own category with a catalog price rule rather than being written off.
-
Samples, minis and gifts with purchase
Gift sets and holiday kits are bundle products, which Magento handles natively, including stock taken from each item inside. Cart price rules cover the usual offers: a percentage off, free shipping over an amount, coupon codes for creators. What plain Magento does not do is drop a free gift into the cart by itself, or let the customer pick two samples at checkout. That needs an extension or a small module, and I would rather pick one with you than promise it comes in the box.
-
Shipping rules for perfume, polish and aerosols
I add a dangerous goods flag to the products that need it, agreed with your carrier or 3PL. Magento Open Source cannot hide a shipping method per product by itself, so I add a small plugin that removes air and express international options when a flagged item is in the cart and leaves ground shipping available. The customer sees why at checkout, instead of finding out from a returned parcel three weeks later. Lithium-powered tools such as heated brushes get the same treatment.
-
Pro accounts and loyalty
Makeup artists and salons often get a pro discount. They go into their own customer group once you have checked their kit or portfolio, and a catalog price rule gives that group its price. Reward points are part of Adobe Commerce only. On Open Source they come from an extension or from a loyalty service you already use. Refill subscriptions for cleansers and removers are not built into Magento either, so those also run through an extension.
Three scenarios: pick the one that matches you
Honest take: not every beauty brand needs Magento. If you fit the middle column, stay on Shopify. If you fit the left column, Magento saves you 18 months of platform pain. Hybrid only when consumer + professional channels both matter.
-
When Magento makes sense
Pick Magento for cosmetics if
Pick Magento if…
- Catalog >200 SKUs with shade / size variants
- Subscription + loyalty layered on top of D2C
- Multi-region compliance (FDA + EU CPNP + India CDSCO)
- Influencer / affiliate program with tier rewards
- Want full data ownership over customer + skin profiles
- Need PIM-driven INCI / ingredient catalogue
- Multi-brand or multi-store on shared inventory
-
Stick with Shopify if
Stick with Shopify if…
- Catalog under 100 SKUs and mostly stable
- Simple D2C with no subscription program
- Single-region (US-only or EU-only) operations
- Low-volume influencer relationships (manual tracking OK)
- No tier-based loyalty needed yet
- Prefer hosted simplicity, no DevOps headache
- Ops team is 1-2 people, app-stack tax acceptable
-
Hybrid Shopify + Magento
Hybrid setup…
- Shopify for D2C marketing site / consumer drops
- Magento for B2B salon supply / professional accounts
- Works for hybrid beauty brands (consumer + pro channels)
- Shared INCI catalogue via Akeneo / Pimcore PIM
- Unified inventory via Shopify-Magento middleware
- Justified for brands selling retail + professional
- Operational complexity is real, pick deliberately
Five steps from audit to stable, personalised beauty store
No surprises. Each phase has a defined output, a written sign-off, and a clear handoff to the next. Most beauty builds take 8-14 weeks end-to-end.
-
01
Audit
Shade-matching state (current quiz / AR partner / coverage), subscription health (active subs, churn rate, sample-to-full conversion), loyalty effectiveness (% of revenue, redemption rate, tier distribution), compliance gaps per region (FDA / EU CPNP / India CDSCO). Influencer ROI by channel. 1 week.
Baseline + gaps -
02
Plan
Shade-matcher UX (quiz vs AR vs both, partner pick), subscription product mix (sample box vs replenishment vs hybrid), loyalty tier matrix (Bronze/Silver/Gold thresholds + reward catalogue), compliance per region (label templates, INCI source-of-truth, attribute mapping). Written spec + scope.
Locked scope -
03
Build
Shade matcher + AR integration / subscription product type + sample-then-buy flow / loyalty tier engine / compliance label templates / influencer attribution wiring. Built in 6-12 weeks depending on scope. Ingredient INCI catalogue migration is usually the longest single sub-task, budget for it.
Build + UAT -
04
Deploy
Soft-launch new programs to a 10% customer cohort first. A/B test shade matcher conversion (quiz vs AR vs hybrid). Pre-warm Hyvä cache + Cloudflare. Monitor subscription churn + loyalty enrollment in the first 30 days. Spreadsheet of every release gate + compliance check.
Live + verified -
05
Stabilise
Optimize subscription LTV (sample-to-full conversion rate, churn-prevention email cadence), loyalty tier upgrade rate (Bronze → Silver acceleration), influencer ROI by tier and channel. Quarterly INCI catalogue audit + compliance refresh. Optional retainer ($1.5k to $5k/mo) for continuous optimization.
Optimised + iterating
Free extensions that fit a cosmetics and beauty store
Open source under MIT. Hyvä and Luma, Magento 2.4.4 to 2.4.9.
-
Emails shoppers when a product they watch gets cheaper.Price Drop Notification Alerts for Magento 2
Free -
Low stock warnings and back in stock emails.Low Stock & Back-in-Stock Alerts for Magento 2
Free -
Badges such as New, Sale or Low stock on product cards.Smart Product Badges & Labels for Magento 2
Free -
Quick view and side by side product comparison.Quick View & Product Compare for Magento 2
Free
What clients say about working with me
Reviews are public on Upwork.
Magento work and feedback View Upwork profile
-
Sports footwear and hockey shop, Netherlands -
Photo printing supplies wholesaler, Netherlands -
Educational toys and books shop
-
Kishan has done an excellent job in a timely manner. He is very knowledgeable, has a very positive attitude, easy to communicate.
Z. K.Magento 2 client -
He is technically strong, approaches problems thoughtfully, and focuses on stable, long-term solutions.
E. H.Magento 2 client -
Kishan was a pleasure to work with! He is highly skilled, professional, and delivered outstanding results on time.
M.Magento 2 client
- Working with cosmetics and beauty brands in
- United States
- United Kingdom
- Canada
- Australia
- Germany
- France
- Netherlands
- India
Twelve questions beauty ecom leaders actually ask
Free 30-min cosmetics + beauty Magento consultation
Tell me your SKU count, subscription share, loyalty share, and main pain. I’ll send a written assessment within 24 hours and book a 30-min call if a deeper conversation helps.
Message me on WhatsApp
No form to fill. Send me a quick message. I reply during 10 AM to 7 PM IST, Monday to Saturday.
Helpful to mention
- Current platform
- Store URL
- Annual GMV (USD)
- SKU count (variants)
- Primary category
- Subscription share of revenue
These are already in the message for you. Just add your answers.
Message me on WhatsAppOr save my number: +91 84012 70422