Search for products, concerns and keywords.


Your Brand Consultant Agreement has been successfully renewed.
There was a problem processing your Brand Consultant Agreement renewal. Please try again.
There was a system error. Please try again.
There was an issue adding this product. Please refresh the page and try again
You're saving 10% on your entire order, including subscription orders and one-time purchases!

Be a product of the product! Schedule convenient, monthly deliveries of your favorite R+F products at the discounted Consultant price.

Join PC Perks for Free
  • Free gift ($50+ value) with 2nd qualifying order + exclusive offers
  • Fully flexible subscription: Choose delivery frequency and delay or cancel anytime before shipment
Item has been added to your bag.
This field is required.
Home | REDEFINE Daily Clay Cleanser
  • REDEFINE Daily Clay Cleanser

REDEFINE Daily Clay Cleanser

$45.00

This item is part of Redefine Regimen

Save 20% when you buy a regimen versus purchasing each product individually.

60 Day Money Back Guarantee

Don't love it? It's on us. Learn More

60 Day Money Back Guarantee

Don't love it? It's on us. Learn More

2-in-1! Our rich cleanser with Kaolin Clay doubles as a mask to gently exfoliate, purify + smooth skin plus visibly improve fine lines, wrinkles, tone + texture.

Recommended Usage: Twice daily, in the AM + PM as a cleanser or mask
Size: 125 mL / 4.2 Fl. Oz. U.S.

DETAILS

What it is: A gentle exfoliating cleanser + mask that removes daily impurities (including makeup) to unclog pores and combat signs of aging.

If you prefer a foaming cleanser, see our other cleanser option for customizing your Regimen.

Why you need it: Clean, unclogged pores appear smaller, making an effective cleanser an essential part of your anti-aging routine. Visibly purify the skin to reveal younger-looking, fresh-feeling skin.

For best results, use the full Redefine Regimen.

ITEM NUMBER: AAWA125

KEY CONCERNS

Fine Lines, Deep Wrinkles, Loss of Firmness, Pore Tightening, Lifting, Sculpting, Defining

SKIN TYPE

All skin types, best for combo-oily skin

KEY BENEFITS

Gently exfoliates, smooths + removes daily impurities like dirt, oil + makeup to reveal younger-looking skin

INGREDIENTS

Proprietary Technology + Key Ingredients
  • Kaolin

    Gently exfoliates + purifies for a softer, more even-looking skin texture
  • Natural Amino Acid + Sugar Derivatives

    Help reduce the look of lines + wrinkles and boosts visible firmness
View All Ingredients

RESULTS

  • 94%

    had softer, more supple skin*
  • 94%

    had smoother-feeling skin*
  • 91%

    noticed firmer skin*
  • 85%

    had plumper, fuller-looking skin*
View Full Study
New Customers Save 25%

REDEFINE 30-Day Regimen

Our best selling regimen now under $100 with code WELCOME25

$125.00

HOW TO USE

Use twice daily in the AM + PM, avoiding eye area.

 

As a Cleanser:
  1. Wet skin and gently massage evenly over face.
  2. Rinse well + pat dry.
As a Mask:
  1. Apply to dry skin.
  2. Allow to dry for 2 minutes.
  3. Rinse well + pat dry.
 

HOW TO USE

Use twice daily in the AM + PM, avoiding eye area.

 

As a Cleanser:
  1. Wet skin and gently massage evenly over face.
  2. Rinse well + pat dry.
As a Mask:
  1. Apply to dry skin.
  2. Allow to dry for 2 minutes.
  3. Rinse well + pat dry.
 

View Less View More

New Customers Save 25%

REDEFINE 30-Day Regimen

Our best selling regimen now under $100 with code WELCOME25

$125.00

Reviews

Common questions about the Rodan + Fields

REDEFINE Daily Clay Cleanser

How do I choose between REDEFINE Daily Clay Cleanser + REDEFINE Daily Foaming Cleanser?

Both the cleansers gently exfoliate and remove daily impurities and makeup from the skin. The Redefine Daily Foaming Cleanser chemically exfoliates with Alpha Hydroxy Acids (AHAs) that gently exfoliate the skin surface for a more even appearance in skin tone + texture, while the Redefine Daily Clay Cleanser has physical exfoliators + Kaolin (a type of clay that gently exfoliates + purifies for a softer more even-looking skin texture. Redefine Daily Clay Cleanser can be used as a mask by leaving it on for 2 minutes before removing. With longer contact time on the skin, Kaolin clay can draw out even more impurities trapped deep in the pores. Cleaner pores look visibly smaller + less noticeable.

While these cleansers differ in ingredients, both help to reduce the look of lines + deep wrinkles to improve the appearance in skin tone + texture. Each cleanser is suitable for all skin types but Redefine Daily Clay Cleanser is best for combination to oily skin while Redefine Daily Foaming Cleanser is best for normal to dry skin. Some may choose to use both cleansers at different times of the day. For example, use Redefine Daily Foaming Cleanser in the morning + Redefine Daily Clay Cleanser as a mask at the end of the day when there is more time, or vice versa.

What does a cleanser do for your face?

A cleanser like Redefine Daily Clay Cleanser removes the dirt, impurities and makeup, plus dead skin cells, providing a clean canvas to start your Regimen. It helps additional products, such as toner + cream or lotion to deliver potent ingredients more evenly.

How long does it take the REDEFINE Daily Clay Cleanser to work?

Redefine Daily Clay Cleanser works immediately to cleanse your face and remove daily impurities and make-up. It should be used as part of your morning and evening skincare routine and can also be used as a clay mask. When used over time as part of the REDEFINE Regimen, you will see over-time results in 1-2 months, such as younger-looking skin with less visible lines + deep wrinkles.

What are the skin benefits of kaolin clay in REDEFINE Daily Clay Cleanser?

Redefine Daily Clay Cleanser is a 2-in-1 cleanser + mask that gently exfoliates, smooths + removes daily impurities and makeup. Kaolin is a type of clay that purifies for a softer, more even-looking skin texture and draws out impurities from pores. Natural exfoliators renew the surface of the skin by removing dead skin cells. Plus, Natural Amino Acid + Sugar derivatives help to reduce the look of lines, wrinkles plus boost visible firmness.

Can a facial cleanser really get rid of wrinkles?

Cleaner, unclogged pores appear smaller, so a dermatologist-inspired cleanser is an essential part of your beauty routine for younger looking skin. Our Redefine Daily Clay Cleanser is the right first step toward helping to reduce the look of lines + deep wrinkles because it contains Kaolin, which is a type of clay that gently exfoliates + purifies the skin surface for a more even appearance in skin tone + texture, helping to reduce the look of lines + deep wrinkles. Plus, Natural Amino Acid (Ectoin) + Sugar derivatives (Glyceryl Glucoside) help reduce the look of lines + wrinkles and boost visible firmness. These ingredients clear the dry, outer layers, allowing moisturizer to penetrate the skin for the best youth-boosting effects.

Use the right ingredients, in the right formulas, applied in the right order + now customized to your skin's needs for better than ever results. This is advanced next-level Multi-Med Therapy specially designed to meet the needs of today's discerning consumer.

What's the difference between the REDEFINE Daily Clay Cleanser and the REDEFINE Rejuvenation Mask?

Redefine Daily Clay Cleanser can be used as part of your morning or evening skincare routine as a 2-minute clay mask. This clay-based cleansing mask uses gentle exfoliators that noticeably soften and smooth for younger-looking and feeling skin. Kaolin is a type of clay that purifies for a softer, more even skin texture and draws out impurities from pores. Natural exfoliators renew the surface of the skin by removing dead skin cells. Plus, Natural Amino Acid + Sugar derivatives help to reduce the look of lines, wrinkles plus boost visible firmness.

The Redefine Rejuvenation Mask is an easy way to refresh your skin in just 10 minutes. Plus, it hydrates tired, dry skin to smooth the look of fine lines and wrinkles over time. This bubbly blue mask contains our proprietary 3D3P Molecular Matrix with hydrating Hyaluronic Acid + Glycerin to draw moisture from the air and lock it onto skin for smoother, softer, more radiant-looking skin. Jojoba beads help exfoliate dead skin cells to remove dullness and reveal younger-looking skin. Use this intensive face mask if you're concerned about signs of aging or to boost the results of any Regimen.

Common questions about the Rodan + Fields

REDEFINE Daily Clay Cleanser

How do I choose between REDEFINE Daily Clay Cleanser + REDEFINE Daily Foaming Cleanser?

Both the cleansers gently exfoliate and remove daily impurities and makeup from the skin. The Redefine Daily Foaming Cleanser chemically exfoliates with Alpha Hydroxy Acids (AHAs) that gently exfoliate the skin surface for a more even appearance in skin tone + texture, while the Redefine Daily Clay Cleanser has physical exfoliators + Kaolin (a type of clay that gently exfoliates + purifies for a softer more even-looking skin texture. Redefine Daily Clay Cleanser can be used as a mask by leaving it on for 2 minutes before removing. With longer contact time on the skin, Kaolin clay can draw out even more impurities trapped deep in the pores. Cleaner pores look visibly smaller + less noticeable.

While these cleansers differ in ingredients, both help to reduce the look of lines + deep wrinkles to improve the appearance in skin tone + texture. Each cleanser is suitable for all skin types but Redefine Daily Clay Cleanser is best for combination to oily skin while Redefine Daily Foaming Cleanser is best for normal to dry skin. Some may choose to use both cleansers at different times of the day. For example, use Redefine Daily Foaming Cleanser in the morning + Redefine Daily Clay Cleanser as a mask at the end of the day when there is more time, or vice versa.

What does a cleanser do for your face?

A cleanser like Redefine Daily Clay Cleanser removes the dirt, impurities and makeup, plus dead skin cells, providing a clean canvas to start your Regimen. It helps additional products, such as toner + cream or lotion to deliver potent ingredients more evenly.

How long does it take the REDEFINE Daily Clay Cleanser to work?

Redefine Daily Clay Cleanser works immediately to cleanse your face and remove daily impurities and make-up. It should be used as part of your morning and evening skincare routine and can also be used as a clay mask. When used over time as part of the REDEFINE Regimen, you will see over-time results in 1-2 months, such as younger-looking skin with less visible lines + deep wrinkles.

What are the skin benefits of kaolin clay in REDEFINE Daily Clay Cleanser?

Redefine Daily Clay Cleanser is a 2-in-1 cleanser + mask that gently exfoliates, smooths + removes daily impurities and makeup. Kaolin is a type of clay that purifies for a softer, more even-looking skin texture and draws out impurities from pores. Natural exfoliators renew the surface of the skin by removing dead skin cells. Plus, Natural Amino Acid + Sugar derivatives help to reduce the look of lines, wrinkles plus boost visible firmness.

Can a facial cleanser really get rid of wrinkles?

Cleaner, unclogged pores appear smaller, so a dermatologist-inspired cleanser is an essential part of your beauty routine for younger looking skin. Our Redefine Daily Clay Cleanser is the right first step toward helping to reduce the look of lines + deep wrinkles because it contains Kaolin, which is a type of clay that gently exfoliates + purifies the skin surface for a more even appearance in skin tone + texture, helping to reduce the look of lines + deep wrinkles. Plus, Natural Amino Acid (Ectoin) + Sugar derivatives (Glyceryl Glucoside) help reduce the look of lines + wrinkles and boost visible firmness. These ingredients clear the dry, outer layers, allowing moisturizer to penetrate the skin for the best youth-boosting effects.

Use the right ingredients, in the right formulas, applied in the right order + now customized to your skin's needs for better than ever results. This is advanced next-level Multi-Med Therapy specially designed to meet the needs of today's discerning consumer.

What's the difference between the REDEFINE Daily Clay Cleanser and the REDEFINE Rejuvenation Mask?

Redefine Daily Clay Cleanser can be used as part of your morning or evening skincare routine as a 2-minute clay mask. This clay-based cleansing mask uses gentle exfoliators that noticeably soften and smooth for younger-looking and feeling skin. Kaolin is a type of clay that purifies for a softer, more even skin texture and draws out impurities from pores. Natural exfoliators renew the surface of the skin by removing dead skin cells. Plus, Natural Amino Acid + Sugar derivatives help to reduce the look of lines, wrinkles plus boost visible firmness.

The Redefine Rejuvenation Mask is an easy way to refresh your skin in just 10 minutes. Plus, it hydrates tired, dry skin to smooth the look of fine lines and wrinkles over time. This bubbly blue mask contains our proprietary 3D3P Molecular Matrix with hydrating Hyaluronic Acid + Glycerin to draw moisture from the air and lock it onto skin for smoother, softer, more radiant-looking skin. Jojoba beads help exfoliate dead skin cells to remove dullness and reveal younger-looking skin. Use this intensive face mask if you're concerned about signs of aging or to boost the results of any Regimen.

Is a cleanser the same as a face wash?

Yes, a cleanser is the same as a wash. Other products contain harsh detergents. Redefine cleansers gently cleanse and exfoliate to remove impurities with ingredients, such as Glycerin, to nourish the skin.

Can I use REDEFINE Daily Clay Cleanser as a mask?

Yes, Redefine Daily Clay Cleanser can be used as part of your morning or evening skincare routine as a clay mask. Apply to dry skin and allow to dry for 2 minutes. Rinse thoroughly with water and massage. Pat dry.

Does the REDEFINE Daily Clay Cleanser exfoliate dead skin?

Yes, Redefine Daily Clay Cleanser is a 2-in-1 cleanser + mask that gently exfoliates, smooths + removes daily impurities and makeup. It is one of two gently exfoliating cleanser options to be used as a first step in the customizable, new + improved REDEFINE Regimen.

Does REDEFINE Daily Clay Cleanser dry my skin?

No, Redefine Daily Clay Cleanser gently exfoliates, smooths + removes daily impurities and make-up. Other ingredients provide a synergistic moisturizing effect. When used with Redefine Toner and Triple Defense Cream or Lotion SPF 30your skin will be further nourished with Beet Extract to provide immediate and long-lasting moisturization to plump the skin and visibly smooth fine lines and wrinkles. If you are looking for more moisture, try Redefine Daily Foaming Cleanser, a creamy foaming cleanser that leaves skin soft and supple as it removes daily impurities and makeup.

If you are looking for additional hydration, consider adding the Enhancements Active Hydration Serum. Apply Active Hydration after you cleanse and tone your skin and before you apply the AM or PM moisturizer. Hydrated skin not only looks healthier but is also primed to more readily accept ingredients from products that are layered on top.

Can I use REDEFINE Daily Clay Cleanser every day?

Yes, use twice daily to remove impurities as part of the REDEFINE Regimen. The right ingredients, working together in the right formulations, in the right order and customized to your skin's needs. This is advanced next-level Multi-Med Therapy specially designed to meet the needs of today's discerning consumer.

What is the difference between the REDEFINE Daily Clay Cleanser and Enhancements microdermabrasion paste?

Redefine Daily Clay Cleanser is a 2-in-1 cleanser + mask that can be used as one of the two gently exfoliating cleanser options as a first step in the customizable, new + improved REDEFINE Regimen. It provides gentle exfoliation, soothes + removes daily impurities and makeup.

To address topical dryness and flaking we recommend greater exfoliation: Substitute the Enhancements Micro-Dermabrasion Paste two to three times a week to promote maximum gentle exfoliation. So, on those mornings your routine will be: Enhancements Micro-Dermabrasion Paste, Redefine Pore Refining Toner and Triple Defense Cream or Lotion SPF 30.

Can I multi-mask with a REDEFINE Daily Clay Cleanser?

Yes, multi-masking entails using more than one face mask at the same time on different parts of the face. The idea behind multi-masking is that instead of applying one face mask over the entirety of your face, you apply multiple face masks depending on your skin care concerns. For multi-masking, apply Redefine Rejuvenation Mask on your cheeks. Massage a generous layer on clean dry skin. Allow to dry for approximately 5 minutes without touching, until mask is foamy. Use Redefine Daily Clay Cleanser on T-Zone. Apply 3-8 minutes after other mask and wait 2 minutes. Rinse both masks thoroughly with warm water and pat dry.

If you are having breakouts, use UNBLEMISH Clarifying Mask in the T-Zone to help reduce oil, unclog pores and remove impurities from skin. Massage a generous layer of mask on clean, dry skin. Allow to dry for 5-10 minutes, and then rinse thoroughly with warm water, pat dry. You may want to consider REVERSE Radiance Mask or SOOTHE Rescue Mask for dullness or redness secondary concerns.

Should I wash my face before or after REDEFINE Daily Clay Cleanser?

No, you should incorporate Redefine Daily Clay Cleanser into your morning and evening routines to remove daily impurities. Redefine Daily Clay Cleanser should not be used in the eye area so use ESSENTIALS Complete Eye Makeup Remover to gently and completely erase eye makeup–even the most stubborn eye makeup including waterproof mascara. As a cleanser, wet skin and gently massage evenly over face, avoiding eye area. As a mask, apply to dry skin and allow to dry for 2 minutes. For both, massage + rinse thoroughly with water and pat dry.

(function() { 'use strict'; // ============================================ // CONFIGURATION - EDIT THESE VALUES // ============================================ const marketingCards = [ // ============================================ // MARKETING CARDS - EVERGREEN - "Lash Day Offer" // ============================================ { // URLS to match for immediate render urlMatches: ['beauty-enhancements','lash-serum-and-eyebrow-tint'], // PLACEMENT: Choose ONE method (comment out the others) insertAtPosition: 3, // Insert AFTER this position in the grid // insertAfterProductCode: 'HRVRGG01', // Insert AFTER this CAT ID // insertBeforeProductCode: 'HAAGR', // OR insert BEFORE this CAT ID // POSITION: 'Start' or 'End' (if not set, uses insertAtPosition. If insertAtPosition exceeds product count, defaults to 'End') // placement: 'End', // 'Start' or 'End' titleText: 'YOUR LASHES.
BUT BETTER.
', bodyText: 'Celebrate National Lash Day with a boost. Get 20% off Lash Boost + a FREE Mini Eye Cream, for a limited time.', ctaText: 'USE CODE LASHDAY', ctaHref: '/shop/r-f-lash-boost/p/ENHLSH01', cardHref: '/shop/r-f-lash-boost/p/ENHLSH01', disclaimerText: '', textShadowEnabled: false, // BACKGROUND: Image URL or null for solid color backgroundImage: 'https://www.rodanandfields.com/en-us/medias/LASH-DAY-marketing-module-horizontal-image.jpg?context=bWFzdGVyfGltYWdlc3wxMTMwOTh8aW1hZ2UvanBlZ3xhRGczTDJneFppOHlPRFExTVRReE1UY3lNakkzTUM5TVFWTklMVVJCV1MxdFlYSnJaWFJwYm1jdGJXOWtkV3hsWDJodmNtbDZiMjUwWVd4ZmFXMWhaMlV1YW5CbnxhNTZkMTEyODgxNzdhM2NkNGQxODNkYmRjNWRkNGUyZDVjYjNmYjRlYWQxZjc0NjRhMGJjMjZjZjI5N2Y2YTI0', backgroundColor: '#FFFFFF', // Used only if backgroundImage is null copyBackgroundColor: '#FFFFFF', splitImageHalf: true, // LAYOUT copyAlign: 'left' }, // ============================================ // MARKETING CARDS - EVERGREEN - "Pure C Promo MC" // ============================================ { // URLS to match for immediate render urlMatches: ['best-sellers','redefine','skin-care-regimens'], // PLACEMENT: Choose ONE method (comment out the others) insertAtPosition: 3, // Insert AFTER this position in the grid // insertAfterProductCode: 'HRVRGG01', // Insert AFTER this CAT ID // insertBeforeProductCode: 'HAAGR', // OR insert BEFORE this CAT ID // POSITION: 'Start' or 'End' (if not set, uses insertAtPosition. If insertAtPosition exceeds product count, defaults to 'End') // placement: 'End', // 'Start' or 'End' titleText: 'LIMITED-TIME: PURE C EXCLUSIVE OFFERS', bodyText: 'Pair with Active Hydration Serum and save $45 or buy Pure C, get a complimentary Hydra Mask ($54 Value)', ctaText: 'Shop Now', ctaHref: '/category/face-serums', cardHref: '/category/face-serums', disclaimerText: 'Valid thru 2/28/26. See Terms & Conditions', textShadowEnabled: false, // BACKGROUND: Image URL or null for solid color backgroundImage: 'https://www.rodanandfields.com/en-us/medias/Pure-C-Promo-Marketing-Module.jpg?context=bWFzdGVyfGltYWdlc3w2NTk0MHxpbWFnZS9qcGVnfGFESXdMMmhoWmk4eU9ETTVOems1TnpjeE9UVTRNaTlRZFhKbExVTXRVSEp2Ylc4dFRXRnlhMlYwYVc1bkxVMXZaSFZzWlM1cWNHY3xhNmFmZWY2YjU3MzM5ZWY2NWNlN2Q5Njk1MWFjYTY1MzE0MWI4NzQ3OWY1YWUyNTM0NDY4YzUwMzcyYzcwY2Mz', backgroundColor: '#FFFFFF', // Used only if backgroundImage is null copyBackgroundColor: '#FFFFFF', splitImageHalf: true, // LAYOUT copyAlign: 'left' }, // ============================================ // MARKETING CARDS - EVERGREEN - "Pure C Evergreen MC" // ============================================ { // URLS to match for immediate render urlMatches: ['face-serums','anti-aging-skin-care'], // PLACEMENT: Choose ONE method (comment out the others) insertAtPosition: 3, // Insert AFTER this position in the grid // insertAfterProductCode: 'HRVRGG01', // Insert AFTER this CAT ID // insertBeforeProductCode: 'HAAGR', // OR insert BEFORE this CAT ID // POSITION: 'Start' or 'End' (if not set, uses insertAtPosition. If insertAtPosition exceeds product count, defaults to 'End') // placement: 'End', // 'Start' or 'End' titleText: 'NEW PURE C SERUM', bodyText: 'Activate your skin’s longevity for firmer, smoother, brighter skin...now and for years to come', ctaText: 'Learn More', ctaHref: '/discover/purec', cardHref: '/discover/purec', disclaimerText: '', textShadowEnabled: false, // BACKGROUND: Image URL or null for solid color backgroundImage: 'https://www.rodanandfields.com/en-us/medias/Pure-C-Evergreen-Marketing-Module.jpg?context=bWFzdGVyfGltYWdlc3w5MjQxOXxpbWFnZS9qcGVnfGFEVXhMMmhoTlM4eU9ETTVOems1TnpRMU56UXpPQzlRZFhKbExVTXRSWFpsY21keVpXVnVMVTFoY210bGRHbHVaeTFOYjJSMWJHVXVhbkJufDNkZTgzNTUzYTFjY2QwMjY2OWVlZjljODYwZmNjYWY5YzRmNGFjNWE2Y2I3YjM4YjczNTdjODhmOTQzZDcwMDY', backgroundColor: '#FFFFFF', // Used only if backgroundImage is null copyBackgroundColor: '#FFFFFF', splitImageHalf: true, // LAYOUT copyAlign: 'left' }, // ============================================ // MARKETING CARDS - EVERGREEN - "Money Back Guarantee" // ============================================ { // URLS to match for immediate render urlMatches: ['exfoliants','eye-creams-and-treatments','neck-and-decollete','reverse','soothe','unblemish'], // PLACEMENT: Choose ONE method (comment out the others) insertAtPosition: 3, // Insert AFTER this position in the grid // insertAfterProductCode: 'HRVRGG01', // Insert AFTER this CAT ID // insertBeforeProductCode: 'HAAGR', // OR insert BEFORE this CAT ID // POSITION: 'Start' or 'End' (if not set, uses insertAtPosition. If insertAtPosition exceeds product count, defaults to 'End') // placement: 'End', // 'Start' or 'End' titleText: 'Love it or get your money back.', bodyText: 'We stand behind our science, formulas + results with a 60-Day Money Back Guarantee.', ctaText: 'Learn More', ctaHref: '/satisfaction-guarantee', cardHref: '/satisfaction-guarantee', disclaimerText: '', textShadowEnabled: false, // BACKGROUND: Image URL or null for solid color backgroundImage: 'https://www.rodanandfields.com/en-us/medias/60-day-Guarantee.jpg?context=bWFzdGVyfGltYWdlc3wyNDc0OTd8aW1hZ2UvanBlZ3xhREppTDJnek1TOHlPRE01TnprNU5qRTBOamN4T0M4Mk1DMWtZWGt0UjNWaGNtRnVkR1ZsTG1wd1p3fDM1ZDU3NGEwZDllNWMxZDUwYzk1NDJhZjMwNGZkM2Y5NGEwMmM3NTQ2MzhjYTI0ZDk2NWQ4ZjJlOTY2NTJmYWE', backgroundColor: '#F5F4F2', // Used only if backgroundImage is null copyBackgroundColor: '#F5F4F2', splitImageHalf: true, // LAYOUT copyAlign: 'left' }, // ============================================ // MARKETING CARDS - EVERGREEN - "#1 Female Dermatologist Founded Skincare Brand" // ============================================= { // URLS to match for immediate render urlMatches: ['acne-pores-blackheads-skin-care','dry-skin-care','skin-care-essentials','face-moisturizers','lip-care-and-color','sensitive-skin-care','sun-protection','toners','uneven-skin-tone-and-dark-marks-skin-care'], // PLACEMENT: Choose ONE method (comment out the others) insertAtPosition: 3, // Insert AFTER this position in the grid // insertAfterProductCode: 'HRVRGG01', // Insert AFTER this CAT ID // insertBeforeProductCode: 'HAAGR', // OR insert BEFORE this CAT ID // POSITION: 'Start' or 'End' (if not set, uses insertAtPosition. If insertAtPosition exceeds product count, defaults to 'End') // placement: 'End', // 'Start' or 'End' titleText: '#1 Female Dermatologist Founded Skincare Brand in the U.S.*', bodyText: '', ctaText: 'Learn More', ctaHref: '/nx/our-story', cardHref: '/nx/our-story', disclaimerText: '*Source Euromonitor Int’l Ltd. 2024; See rodanandfields.com for details.', textShadowEnabled: false, // BACKGROUND: Image URL or null for solid color backgroundImage: 'https://www.rodanandfields.com/en-us/medias/Female-Derm.jpg?context=bWFzdGVyfGltYWdlc3wyNDQ2MTR8aW1hZ2UvanBlZ3xhR1k1TDJnellTOHlPRE01TnprNU5qUXdPRGcyTWk5R1pXMWhiR1V0UkdWeWJTNXFjR2N8NDc0NTdhYzliNzNhMTA3ZGJkYzc5NzVmNjMzNzcyMGUwYzE5OGQzMDk3MDE3ZWRhNTk2NTM3ZjZlZGZhNjdjMQ', backgroundColor: '#F5F4F2', // Used only if backgroundImage is null copyBackgroundColor: '#F5F4F2', splitImageHalf: true, // LAYOUT copyAlign: 'left' }, // ============================================ // MARKETING CARDS - EVERGREEN - "Rodan + Fields is the #1 Premium Lash Serum" // ============================================= { // URLS to match for immediate render urlMatches: [], // PLACEMENT: Choose ONE method (comment out the others) insertAtPosition: 3, // Insert AFTER this position in the grid // insertAfterProductCode: 'HRVRGG01', // Insert AFTER this CAT ID // insertBeforeProductCode: 'HAAGR', // OR insert BEFORE this CAT ID // POSITION: 'Start' or 'End' (if not set, uses insertAtPosition. If insertAtPosition exceeds product count, defaults to 'End') // placement: 'End', // 'Start' or 'End' titleText: 'Rodan + Fields is the #1 Premium Lash Serum Brand in the US in 2024*', bodyText: '', ctaText: '', ctaHref: '', cardHref: '', disclaimerText: '*Source Euromonitor International Limited; Custom research conducted June-Aug 2025, retail value RSP terms; all channels; Lash Serum including Lash Serum products sold as part of Sets and Kits', textShadowEnabled: false, // BACKGROUND: Image URL or null for solid color backgroundImage: 'https://www.rodanandfields.com/en-us/medias/Lash-Boost-MC-Image.jpg?context=bWFzdGVyfGltYWdlc3wyMDE1Mjd8aW1hZ2UvanBlZ3xhRFJsTDJneU1DOHlPRE01TnprNU5UZzRORFUzTkM5TVlYTm9MVUp2YjNOMExVMURMVWx0WVdkbExtcHdad3w2MTVjMTdmN2Q2MDJlYmIzMzhmOWQ2OTg0MmRlNTFiODg5N2Q5OTBhNDFlODQwMmNjODliMzM3Yjk3NGJiNjIz', backgroundColor: '#F5F4F2', // Used only if backgroundImage is null copyBackgroundColor: '#F5F4F2', splitImageHalf: true, // LAYOUT copyAlign: 'left' }, // ============================================ // MARKETING CARDS - EVERGREEN - "Klarna" // ============================================= { // URLS to match for immediate render urlMatches: ['regimen-sets','rf-paired-multi-action-regimens','skin-care-tools-and-accessories'], // PLACEMENT: Choose ONE method (comment out the others) insertAtPosition: 3, // Insert AFTER this position in the grid // insertAfterProductCode: 'HRVRGG01', // Insert AFTER this CAT ID // insertBeforeProductCode: 'HAAGR', // OR insert BEFORE this CAT ID // POSITION: 'Start' or 'End' (if not set, uses insertAtPosition. If insertAtPosition exceeds product count, defaults to 'End') // placement: 'End', // 'Start' or 'End' titleText: 'Buy now. Pay later.', bodyText: 'Select Klarna at checkout to split your purchase into 4 interest-free payments.', ctaText: '', ctaHref: '', cardHref: '', disclaimerText: '', textShadowEnabled: false, // BACKGROUND: Image URL or null for solid color backgroundImage: 'https://www.rodanandfields.com/en-us/medias/Klarna.jpg?context=bWFzdGVyfGltYWdlc3wzMTE3NnxpbWFnZS9qcGVnfGFETmlMMmc1TVM4eU9ETTVOems1T1RFMk1UTTNOQzlMYkdGeWJtRXVhbkJufDUwMzJkNzBjNzRjZmMxYzc2MjE5NWEyNjIwOTJmYzg5ZDE1NjQ1Y2U4MDQ3ZTg2OTI3ZjIxMzE1OGU3OGE2NWI', backgroundColor: '#F5F4F2', // Used only if backgroundImage is null copyBackgroundColor: '#F5F4F2', splitImageHalf: true, // LAYOUT copyAlign: 'left' } ]; // ============================================ // MODULE HTML GENERATOR // ============================================ function generateModuleHTML(cfg) { const alignMap = { left: 'flex-start', center: 'center', right: 'flex-end' }; const safeAlign = ['left','center','right'].includes(cfg.copyAlign) ? cfg.copyAlign : 'center'; const bgStyle = cfg.backgroundImage ? `background: url('${cfg.backgroundImage}') center/cover no-repeat;` : `background: ${cfg.backgroundColor}`; const shadowStyle = cfg.textShadowEnabled ? 'text-shadow: 0 1px 2px rgba(0,0,0,0.6);' : ''; // Split Image Half Layout if (cfg.splitImageHalf) { const splitImageStyle = `${cfg.backgroundImage ? `--split-image-url: url('${cfg.backgroundImage}');` : ''}`; const cardAttr = cfg.cardHref ? `data-card-href="${cfg.cardHref}"` : ''; const cardClass = cfg.cardHref ? ' rf-card-clickable' : ''; return `

${cfg.titleText.replace(/\n/g, '
')}

${cfg.bodyText ? `

${cfg.bodyText}

` : ''} ${cfg.ctaText && cfg.ctaText.trim() ? `${cfg.ctaText}` : ''} ${cfg.disclaimerText ? `
${cfg.disclaimerText}
` : ''}
`; } // Default horizontal layout const cardAttr = cfg.cardHref ? `data-card-href="${cfg.cardHref}"` : ''; const cardClass = cfg.cardHref ? ' rf-card-clickable' : ''; return `

${cfg.titleText.replace(/\n/g, '
')}

${cfg.bodyText ? `

${cfg.bodyText}

` : ''} ${cfg.ctaText && cfg.ctaText.trim() ? `${cfg.ctaText}` : ''} ${cfg.disclaimerText ? `
${cfg.disclaimerText}
` : ''}
`; } // PDP detection helper function isPDP() { try { const path = (window.location && window.location.pathname) || ''; // PDP URLs include "/p/" followed by a code return path.includes('/p/'); } catch (e) { return false; } } // Return cards whose urlMatches match a full path segment (not substring) function getActiveCards() { const href = (window.location && window.location.href || '').toLowerCase(); const path = (window.location && window.location.pathname || '').toLowerCase(); const segments = path.split('/').filter(Boolean); // path parts without empty strings const matchesSegment = (needle) => { if (!needle) return false; const n = String(needle).toLowerCase(); // exact segment match, or common category patterns return segments.includes(n) || path.endsWith('/' + n) || path.includes('/shop/' + n + '/') || href.includes('cgid=' + encodeURIComponent(n)); }; return marketingCards.filter(card => Array.isArray(card.urlMatches) && card.urlMatches.some(matchesSegment)); } // ============================================ // PRODUCT DETECTION // ============================================ let injected = false; function filterProductElements(elements) { return elements.filter(el => { const tag = el.tagName ? el.tagName.toLowerCase() : ''; if (tag === 'button' || tag === 'a') return false; const role = (el.getAttribute && el.getAttribute('role')) || ''; if (role === 'button' || role === 'link') return false; if (el.hasAttribute && el.hasAttribute('data-copilot-module')) return false; if (el.closest && el.closest('.add-to-cart, .product-cta, .product-actions, .pdp-add-to-cart, .quickbuy')) return false; return true; }); } function findProducts() { const selectors = [ '[data-product-code]', '[data-product-id]', '.product-item', '.product-card', '.product-tile', '.product', '.js-product', 'article.product', '.product-grid-item', '.product-list-item' ]; for (let selector of selectors) { const elements = document.querySelectorAll(selector); if (elements.length > 0) { console.log(`Found ${elements.length} products using: ${selector}`); return filterProductElements(Array.from(elements)); } } console.warn('No products found'); return []; } function getProductCode(el) { return el.getAttribute('data-product-code') || el.getAttribute('data-product-id') || el.getAttribute('data-sku') || el.querySelector('[data-product-code]')?.getAttribute('data-product-code') || el.querySelector('[data-product-id]')?.getAttribute('data-product-id') || el.querySelector('a[href*="/shop/"]')?.href.split('/p/')[1]?.split('?')[0] || null; } // ============================================ // INJECTION LOGIC // ============================================ function injectModule() { if (injected) return; // Guard: never inject on PDPs if (isPDP()) { console.warn('PDP detected; skipping marketing card injection.'); return; } const cards = getActiveCards(); if (!cards || cards.length === 0) { console.warn('No marketing card configured for this URL'); return; } // Only consider products inside .mdc-layout-grid__inner if present let products = []; const gridInner = document.querySelector('.mdc-layout-grid__inner'); if (gridInner) { // Find all product elements inside the grid products = filterProductElements(Array.from(gridInner.querySelectorAll('[data-product-code], [data-product-id], .product-item, .product-card, .product-tile, .product, .js-product, article.product, .product-grid-item, .product-list-item'))); } else { products = findProducts(); } if (products.length === 0) return; console.log(`${cards.length} marketing card(s) matched this URL`); // Log all found product codes and positions for debugging console.log('Product codes and positions found:'); products.forEach((p, i) => { const pos = p.getAttribute('data-position'); const code = getProductCode(p); console.log(` Index ${i + 1} | Position: ${pos} | Code: ${code || 'N/A'}`); }); // Try to inject each matching card let anyInjected = false; cards.forEach(card => { let placed = false; // Placement logic if (!placed && card.placement) { if (card.placement.toLowerCase() === 'start' && products.length > 0) { console.log('Inserting module at START (before first product)'); insertModule(products[0], 'before', card); placed = true; } else if (card.placement.toLowerCase() === 'end' && products.length > 0) { console.log('Inserting module at END (after last product)'); insertModule(products[products.length - 1], 'after', card); placed = true; } } // Fallbacks: by product code or position if (!placed) { for (let i = 0; i < products.length; i++) { const code = getProductCode(products[i]); if (card.insertAfterProductCode && code === card.insertAfterProductCode) { console.log(`Inserting module AFTER product code: ${code}`); insertModule(products[i], 'after', card); placed = true; break; } if (card.insertBeforeProductCode && code === card.insertBeforeProductCode) { console.log(`Inserting module BEFORE product code: ${code}`); insertModule(products[i], 'before', card); placed = true; break; } } } if (!placed && card.insertAtPosition) { let targetProduct = null; // Try to find by data-position attribute first targetProduct = Array.from(products).find(p => parseInt(p.getAttribute('data-position')) === card.insertAtPosition ); // If not found, fallback to Nth product in the array (1-based) if (!targetProduct && products.length >= card.insertAtPosition) { targetProduct = products[card.insertAtPosition - 1]; } // If still not found, fallback to last product in gridInner if (!targetProduct && products.length > 0) { targetProduct = products[products.length - 1]; } if (targetProduct) { console.log(`Inserting module after product (insertAtPosition=${card.insertAtPosition})`); insertModule(targetProduct, 'after', card); placed = true; } } if (!placed) { console.warn(`Target not found for card. Check insertAfterProductCode, insertBeforeProductCode, or insertAtPosition configuration.`); } else { anyInjected = true; } }); if (anyInjected) { injected = true; // Ensure any end-placed cards are positioned after the latest product set repositionEndCards(); } } function insertModule(target, position, cardConfig) { const wrapper = document.createElement('div'); wrapper.innerHTML = generateModuleHTML(cardConfig).trim(); const base = target.closest && target.closest('[data-product-code], [data-product-id], .product-item, .product-card, .product-tile, .product, .js-product, article.product, .product-grid-item, .product-list-item') || target; const baseTag = (base.tagName || '').toLowerCase(); const safeTag = (baseTag === 'button' || baseTag === 'a') ? 'div' : (baseTag || 'div'); const classList = (base.className || '') .split(/\s+/) .filter(Boolean) .filter(c => !/(^|-)btn($|-)|button|cta|add-to-cart|purchase|subscribe|link/i.test(c)) .join(' '); const container = document.createElement(safeTag); if (classList) container.className = classList; container.setAttribute('data-copilot-module', 'true'); if (cardConfig && cardConfig.placement) { container.setAttribute('data-copilot-placement', String(cardConfig.placement).toLowerCase()); } container.appendChild(wrapper.firstElementChild); if (position === 'after') { base.parentNode.insertBefore(container, base.nextSibling); } else { base.parentNode.insertBefore(container, base); } // Make entire card clickable if data-card-href is present const clickable = container.querySelector('.rf-card-clickable[data-card-href]'); if (clickable) { const href = clickable.getAttribute('data-card-href'); clickable.setAttribute('role', 'link'); clickable.setAttribute('tabindex', '0'); const navigate = () => { try { window.location.assign(href); } catch(e) { window.location.href = href; } }; clickable.addEventListener('click', (e) => { const insideAnchor = e.target.closest('a'); if (insideAnchor) return; // allow inner links like CTA/disclaimer navigate(); }); clickable.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); navigate(); } }); } console.log('Marketing module injected successfully!'); } // Reposition any cards configured with placement: 'End' after dynamic loads function repositionEndCards() { const endCards = Array.from(document.querySelectorAll('[data-copilot-module="true"][data-copilot-placement="end"]')); if (endCards.length === 0) return; // Determine current product list inside grid const gridInner = document.querySelector('.mdc-layout-grid__inner'); const productSelector = '[data-product-code], [data-product-id], .product-item, .product-card, .product-tile, .product, .js-product, article.product, .product-grid-item, .product-list-item'; let products = []; if (gridInner) { products = Array.from(gridInner.querySelectorAll(productSelector)); } else { products = Array.from(document.querySelectorAll(productSelector)); } products = products.filter(el => !el.hasAttribute('data-copilot-module')); if (products.length === 0) return; const lastProduct = products[products.length - 1]; endCards.forEach(card => { if (lastProduct.nextSibling !== card) { try { lastProduct.parentNode.insertBefore(card, lastProduct.nextSibling); } catch (e) {} } }); } function isModulePresent() { return document.querySelector('[data-copilot-module="true"]') !== null; } // ============================================ // INITIALIZATION - IMMEDIATE LOAD // ============================================ function init() { injectModule(); // Quick retries for fast page load if (!injected) { setTimeout(injectModule, 100); setTimeout(injectModule, 300); setTimeout(injectModule, 500); setTimeout(injectModule, 1000); } } // Run immediately init(); // Also run on DOMContentLoaded as backup if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } // Watch for dynamically loaded products const observer = new MutationObserver(() => { clearTimeout(window.moduleInjectionTimeout); window.moduleInjectionTimeout = setTimeout(() => { if (!isModulePresent()) { injected = false; injectModule(); } repositionEndCards(); }, 120); }); // Start observing immediately const startObserver = () => { const container = document.querySelector('.product-grid, .product-list, .products, main, body'); if (container) { observer.observe(container, { childList: true, subtree: true }); } }; startObserver(); setTimeout(startObserver, 500); })();