Skip to content
5.0 Upwork, 100+ reviews Adobe Certified since 2021 New: become your own Magento developer Learn more →
Industry · Cosmetics + beauty + skincare

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
Adobe Certified Magento developer since 2021 Freelance: you deal with me directly, not an account manager
Why beauty catalogs get messy

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.

The setup

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.

  • Questions before you start?Read the answers →
Decision shortcuts

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.

  • 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
Delivery process

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.

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
Client reviews

What clients say about working with me

Reviews are public on Upwork.

Magento work and feedback View Upwork profile

  • Illustration of Magento 2 development work for a sports footwear and hockey shop
    Sports footwear and hockey shop, Netherlands
  • Illustration of Magento 2 development work for a photo printing supplies wholesaler
    Photo printing supplies wholesaler, Netherlands
  • Illustration of Magento 2 development work for an educational toys and books shop
    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
Read all reviews
FAQ

Twelve questions beauty ecom leaders actually ask

What shade-matching tools work with Magento, quiz-based vs AR (Modiface / YouCam)?

Three patterns work, in increasing complexity and cost:

  • Quiz-based shade finder, 5-7 questions on undertone, depth, finish, climate. Built natively in Magento with custom product attributes + a thin Alpine.js quiz UI on Hyvä. Conversion lift typically 0.8-1.4x baseline. Cost: ~$3k, $8k.
  • AR try-on (Modiface / YouCam Makeup / Perfect Corp), live camera overlay on PDP. Integration via REST + JS SDK. Conversion lift 1.4-2.8x on PDPs with AR. Cost: ~$8k, $20k integration + $1k, $5k/mo licence to the AR vendor depending on traffic.
  • Hybrid (quiz → AR confirm), quiz narrows to 3 shades, AR confirms the pick. Best conversion in my data.

For brands under ~$5M GMV, start quiz-only. AR pays for itself above ~$5M because the licence amortises across volume.

Subscription box on Magento, Recharge vs Bold vs native?

None of the “Shopify-native” subscription apps run on Magento directly. The viable options:

  • Recharge, offers a Magento integration via API, but it’s thinner than the Shopify version. Best for hybrid brands already running Recharge on a Shopify D2C site.
  • Bold Subscriptions, same caveat. API-level integration, not native admin.
  • Mageworx Subscriptions / Aheadworks Subscriptions / Amasty Subscriptions, Magento-native extensions. These are the recommended path for Magento-first brands. Native admin, native checkout, native customer account dashboard. Mageworx is the most feature-complete in 2026.
  • Custom build on Magento subscription product type, viable for $50M+ brands with unique flows (sample-then-buy + tier-locked products + skip-a-month + swap).

For most cosmetics + beauty Magento builds, Mageworx Subscriptions + a custom sample-then-buy flow on top is the right call.

Loyalty programs, Smile vs LoyaltyLion vs Magento native?

Beauty brands need tier-based loyalty (Sephora Beauty Insider model). Three credible paths:

  • Smile.io, integrates with Magento via API. Best UX, best onboarding flow, weakest customisation. Good for under $10M GMV.
  • LoyaltyLion, deeper feature set (referrals + reviews + tier-locked products + partner rewards). Stronger Magento-side admin. Best for $5M, $50M brands.
  • Mageworx Reward Points / Amasty Reward Points + custom tier engine, Magento-native, fully owned. Best for $20M+ brands wanting full data + flow control. We typically build the tier engine on top of Amasty.

If loyalty is >30% of your revenue today, lean toward Magento-native, the platform owns customer + order + spend data, so tier rules + earn / redeem + birthday rewards live where they belong instead of via a webhook round-trip.

FDA cosmetics labeling, can Magento auto-render the right PDP block?

Yes, with the right attribute model. Under MoCRA (Modernization of Cosmetics Regulation Act, 2022), US cosmetics need:

  • Facility registration with FDA (one-time, you handle directly)
  • Product listing per SKU (one-time per SKU, you submit to FDA via Cosmetics Direct portal)
  • Adverse-event reporting workflow (15-day SAE rule)
  • Ingredient list (INCI) on product label + PDP
  • “Professional use only” flag where applicable

Magento setup: each product gets fda_listed, inci, warnings, professional_use_only, net_quantity attributes. A small Hyvä component on the US storefront renders the FDA-compliant label block from those attributes. The PDF label generator (PrinceXML / Dompdf) consumes the same attributes for physical labels. One source of truth.

EU CPNP registration + INCI, what’s the workflow?

EU Cosmetic Products Notification Portal (CPNP) is required before any cosmetic product is placed on the EU market. The workflow:

  1. Responsible Person designated, an EU-based legal entity. Many brands appoint a third-party RP service (Obelis, Cosmetics Europe, etc.).
  2. Cosmetic Product Safety Report (CPSR), Part A (data) + Part B (assessor sign-off). Lives outside Magento.
  3. CPNP notification per SKU, SKU-level data submitted to CPNP. Confirmation reference number stored as a Magento product attribute (cpnp_ref).
  4. INCI list in EU local language(s), per-storefront translation in Magento. INCI names follow EU Cosmetic Ingredients (CosIng) database.
  5. Per-storefront PDP block, renders EU-compliant ingredient list, RP address, batch code, MoS / PAO icon.

I’ve done this for 4 EU beauty brands. Magento handles the storefront-rendering side cleanly; the regulatory workflow lives in your QA / RA tooling outside Magento.

India CDSCO compliance for cosmetics, what’s required?

Cosmetics in India fall under the Drugs and Cosmetics Act 1940 + Cosmetics Rules 2020 (replaced 1945 rules). Key requirements:

  • Form COS-1 Import Registration for any imported cosmetic (Schedule D-III). Issued by CDSCO; valid 3 years; SKU-level.
  • Manufacturing licence if produced in India (state-level Drug Controller).
  • Hindi-language ingredient list on label is encouraged (not strictly required for English-literate markets but required for retail in many states).
  • Net quantity in metric units (g / ml).
  • Manufacturer / importer name + address + batch + manufacturing date + best-before date on label.

Magento setup: India storefront gets a separate website / store-view with cdsco_reg, hindi_inci, importer attributes. Hyvä PDP block renders Hindi INCI alongside English. Currency in INR, GST tax class. Razorpay / PayU / Cashfree as primary gateways, Stripe doesn’t play well with INR + GST + UPI in 2026.

How do ingredient + allergen filters work on PLPs?

Magento layered nav handles this cleanly with the right attribute design:

  • Per-ingredient boolean attributes, contains_paraben, contains_sulfate, contains_fragrance, contains_gluten, contains_silicone, etc. Layered nav exposes “Free from” filters.
  • Positive flags, is_vegan, is_cruelty_free, is_reef_safe, is_pregnancy_safe, is_clean_beauty. These tend to outperform “free from” framing for SEO and conversion.
  • Customer profile allergens, logged-in customers save up to 5 allergens. Magento auto-warns on PDPs that contain them (red banner). Wishlist / cart adds blocked with a confirmation modal.
  • INCI catalogue as a structured attribute (one source of truth for ingredient list, allergen flags, regulatory fields).

Performance note: with 30+ filter attributes on a 5,000 SKU catalogue, you’ll need Elasticsearch / OpenSearch (not MySQL native search). Magento ships ES out of the box from 2.4.x.

Influencer + affiliate tracking, Refersion vs Aspire vs Impact?

Three credible paths for beauty brands:

  • Refersion, affiliate-first, mid-market. Magento integration via API / pixel. Tracks per-influencer sales by promo code or unique link. Best for under $10M GMV with tier rewards (1-5%, 5-10%, 10%+ commission brackets).
  • Aspire (formerly AspireIQ), influencer-first, full lifecycle (discovery + outreach + brief + approve + track + pay). Pricier but pays back fast for brands running 50+ influencer relationships. Magento integration via UTM + promo-code attribution.
  • Impact (impact.com), enterprise, mature partnership platform. Best for $20M+ brands with diverse partner mix (influencer + affiliate + B2B referrer + content site).
  • Magento Affiliate Pro / Mageworx Affiliate, Magento-native extension. Cheapest, weakest UX. OK as a starting point if you want full data ownership.

I usually recommend Refersion or Aspire for Magento-first beauty brands. UGC integration via Yotpo or Bazaarvoice runs alongside, influencer-driven UGC pulled into PDPs is a 12-18% conversion lift.

UGC reviews on PDP, Yotpo vs Bazaarvoice integration?

Both ship Magento extensions and both work cleanly. Decision criteria:

  • Yotpo, mid-market, $1M, $50M GMV sweet spot. Strong photo / video review collection (post-purchase email + SMS). Loyalty + referrals bundled. Good Magento extension, native admin. Cheaper than Bazaarvoice.
  • Bazaarvoice, enterprise, $50M+ GMV. Stronger syndication (push reviews to Walmart / Amazon / Sephora retailer channels). Better moderation tooling for high-volume brands. Pricier per-review.
  • Stamped.io / Trustpilot, budget alternatives. Stamped is fine; Trustpilot is too generic for beauty (no shade / skin-type filtering on reviews).

Beauty-specific feature to ask about: review filtering by skin tone / skin type / age range. Yotpo and Bazaarvoice both support it; Stamped doesn’t. This filter is a 8-15% conversion lift on foundation / serum PDPs because customers find reviews from people who match them.

Sample-then-buy flow, how is it implemented in Magento?

Three layers:

  1. Sample box product type, a Magento bundle product where the customer picks 4-6 sample-size variants from a curated pool. $10, $20 box price, free with subscription.
  2. Sample-to-full mapping, each sample SKU links to its full-size SKU via a Magento product attribute (full_size_sku). Drives the post-box email automation.
  3. Conversion automation, 14 days after the sample box ships, an email triggers per-sample “loved it? get the full size at 20% off” with a one-click upsell that drops the full-size SKU into the cart with the discount applied via Magento cart price rule.

Magento implementation: bundle + custom attribute + Klaviyo / Mailchimp transactional flow listening to a custom event from Magento on box-shipped. Sample-to-full conversion runs 22-38% in beauty data I’ve seen, which is wildly profitable because the sample box CAC is already paid down.

Magento vs Shopify for beauty specifically, when does each win?

Honest take. Shopify wins for beauty brands when: catalog is <100 SKUs, single region, no subscription program, no tier-based loyalty, low-volume influencer relationships, ops team is 1-2 people. The Shopify app ecosystem has the best beauty-native apps (Klaviyo, Recharge, Smile, Yotpo) wired together cleanly.

Magento wins when any of these are true: catalog >200 SKUs with shade variants, subscription + loyalty stacked on top of D2C, multi-region compliance (FDA + EU CPNP + India CDSCO), influencer programs with tier rewards, want full data ownership over customer + skin profiles, multi-brand or multi-store on shared inventory, B2B salon supply alongside D2C.

The crossover point I see in practice is around $5M, $10M GMV. Below that, Shopify pays for itself in ops simplicity. Above that, the Shopify app stack starts costing $5k, $15k/mo in app fees + the data-fragmentation tax bites, and Magento + Hyvä comes out cheaper at scale even with the higher dev cost.

Cost + timeline for a beauty Magento build?

Pricing is a fixed written quote for your scope. Send the details on WhatsApp and I reply within one working day.

Honest fixed-price tiers, no per-hour surprises. All three include pre-project audit, regression QA, blue-green deploy, Lighthouse 90+ guarantee, and 14 days of post-launch bug-fix coverage.

  • Beauty Express (6-8 weeks), Hyvä storefront + ingredient/allergen filters + quiz-based shade finder + Mageworx Subscriptions + Smile.io loyalty integration. Single region (US or EU or IN).
  • Beauty Standard (10-14 weeks), everything in Express + AR shade matcher (Modiface / YouCam) + tier-based loyalty (LoyaltyLion or custom Amasty) + Refersion influencer tracking + Yotpo UGC. Two regions (e.g. US + EU).
  • Beauty Enterprise (14-24 weeks), everything in Standard + multi-region compliance (FDA + EU CPNP + India CDSCO) + Akeneo PIM + B2B salon supply layer + Aspire / Impact partnership platform + custom loyalty engine. Three+ regions, multi-brand.

Hyvä licence (€1,000 one-time or €100/yr) is paid separately to Hyvä Themes. Subscription / loyalty / AR / PIM SaaS fees are passed through (no markup).

Free consultation

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 WhatsApp

Or save my number: +91 84012 70422

Built for your trade Share your store requirements Message me