1<!doctype html> 2 3<html lang="fr" dir="ltr"> 4 <head> 5 <meta charset="utf-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0, maximum-scale=5.0"><title>Votre panier</title><link rel="canonical" href="https://fr.melvita.com/cart"><link rel="shortcut icon" href="//fr.melvita.com/cdn/shop/files/Favicon_Melvita_2.jpg?v=1787671610&width=96"> 7 <link rel="apple-touch-icon" href="//fr.melvita.com/cdn/shop/files/Favicon_Melvita_2.jpg?v=1787671610&width=180"><link rel="preload" href="//fr.melvita.com/cdn/shop/t/4/assets/FreightNeoPro-Medium.woff2?v=114485382750243139801786368499" as="font" type="font/woff2" crossorigin> 8 <link rel="preload" href="//fr.melvita.com/cdn/shop/t/4/assets/FreightNeoPro-Book.woff2?v=111729217730457420941786368499" as="font" type="font/woff2" crossorigin><link rel="preload" href="//fr.melvita.com/cdn/fonts/manrope/manrope_n4.cd2363f838fb1ef03bdb07c829c7c992d417dd64.woff2" as="font" type="font/woff2" crossorigin><meta property="og:type" content="website"> 9 <meta property="og:title" content="Votre panier"><meta property="og:image" content="http://fr.melvita.com/cdn/shop/files/Logo_2_34eea43b-1181-4a27-9ef8-bb81be04fb94.png?v=1786019411&width=2048"> 10 <meta property="og:image:secure_url" content="https://fr.melvita.com/cdn/shop/files/Logo_2_34eea43b-1181-4a27-9ef8-bb81be04fb94.png?v=1786019411&width=2048"> 11 <meta property="og:image:width" content="441"> 12 <meta property="og:image:height" content="100"><meta property="og:url" content="https://fr.melvita.com/cart"> 13<meta property="og:site_name" content="Melvita"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="Votre panier"> 14 <meta name="twitter:description" content="Votre panier"><meta name="twitter:image" content="https://fr.melvita.com/cdn/shop/files/Logo_2_34eea43b-1181-4a27-9ef8-bb81be04fb94.png?crop=center&height=1200&v=1786019411&width=1200"> 15 <meta name="twitter:image:alt" content="">
15<script type="application/ld+json"> 16 { 17 "@context": "https://schema.org", 18 "@type": "BreadcrumbList", 19 "itemListElement": [{ 20 "@type": "ListItem", 21 "position": 1, 22 "name": "Accueil", 23 "item": "https://fr.melvita.com" 24 }] 25 } 26</script>
26<style>@font-face { 27 font-family: Manrope; 28 font-weight: 700; 29 font-style: normal; 30 font-display: fallback; 31 src: url("//fr.melvita.com/cdn/fonts/manrope/manrope_n7.f3a06f9634c15008fe4637ba89fefcc8a1b93fbd.woff2") format("woff2"), 32 url("//fr.melvita.com/cdn/fonts/manrope/manrope_n7.6dba97311355640bc9b07a590354f08bc8fcc79f.woff") format("woff"); 33} 34@font-face { 35 font-family: Manrope; 36 font-weight: 400; 37 font-style: normal; 38 font-display: fallback; 39 src: url("//fr.melvita.com/cdn/fonts/manrope/manrope_n4.cd2363f838fb1ef03bdb07c829c7c992d417dd64.woff2") format("woff2"), 40 url("//fr.melvita.com/cdn/fonts/manrope/manrope_n4.08b75e0e22a3f7267f64ccf115e9fb6d79fc1ce7.woff") format("woff"); 41} 42@font-face { 43 font-family: Manrope; 44 font-weight: 500; 45 font-style: normal; 46 font-display: fallback; 47 src: url("//fr.melvita.com/cdn/fonts/manrope/manrope_n5.8eac14e2b642faa6ca8f5a46c1b0b1ed4a42eee7.woff2") format("woff2"), 48 url("//fr.melvita.com/cdn/fonts/manrope/manrope_n5.ed324e5197c333656fb16f9a7e7ba4fa1168607c.woff") format("woff"); 49} 50@font-face { 51 font-family: Manrope; 52 font-weight: 700; 53 font-style: normal; 54 font-display: fallback; 55 src: url("//fr.melvita.com/cdn/fonts/manrope/manrope_n7.f3a06f9634c15008fe4637ba89fefcc8a1b93fbd.woff2") format("woff2"), 56 url("//fr.melvita.com/cdn/fonts/manrope/manrope_n7.6dba97311355640bc9b07a590354f08bc8fcc79f.woff") format("woff"); 57} 58@font-face { 59 font-family: Archivo; 60 font-weight: 700; 61 font-style: normal; 62 font-display: fallback; 63 src: url("//fr.melvita.com/cdn/fonts/archivo/archivo_n7.651b020b3543640c100112be6f1c1b8e816c7f13.woff2") format("woff2"), 64 url("//fr.melvita.com/cdn/fonts/archivo/archivo_n7.7e9106d320e6594976a7dcb57957f3e712e83c96.woff") format("woff"); 65} 66@font-face { 67 font-family: 'FreightNeo Pro'; 68 src: url('//fr.melvita.com/cdn/shop/t/4/assets/FreightNeoPro-Book.woff2?v=111729217730457420941786368499') format('woff2'); 69 font-weight: 400; 70 font-style: normal; 71 font-display: fallback; 72 } 73 74 @font-face { 75 font-family: 'FreightNeo Pro'; 76 src: url('//fr.melvita.com/cdn/shop/t/4/assets/FreightNeoPro-Medium.woff2?v=114485382750243139801786368499') format('woff2'); 77 font-weight: 500; 78 font-style: normal; 79 font-display: fallback; 80 } 81 82 :root { 83 /* Container */ 84 --container-max-width: 100%; 85 --container-gutter: 1.5rem; 86 87 /* Spacing (Figma: margin-sections 64px mobile / 104px desktop) */ 88 --section-vertical-spacing: 4rem; 89 --section-stack-row-gap: 2rem; 90 91 /* Form settings */ 92 --form-gap: 1rem; /* Gap between fieldset and submit button */ 93 --fieldset-gap: 0.5rem; /* Gap between each form input within a fieldset */ 94 --form-control-gap: 0.5rem; /* Gap between input and label (ignored for floating label) */ 95 --checkbox-control-gap: 0.75rem; /* Horizontal gap between checkbox and its associated label */ 96 --input-padding-block: 0.65rem; /* Vertical padding for input, textarea and native select */ 97 --input-padding-inline: 1rem; /* Horizontal padding for input, textarea and native select */ 98 --checkbox-size: 0.875rem; /* Size (width and height) for checkbox */ 99 100 /* Product listing gaps */ 101 --product-list-column-gap: 0.75rem; 102 --product-list-padding-inline: clamp(0px, var(--product-list-column-gap) , min(1.75rem, var(--product-list-column-gap)));--product-list-row-gap: 2.25rem;/* Other sizes */ 103 --header-group-height: calc(var(--announcement-bar-height, 0px) + var(--countdown-condensed-height, 0px) + var(--header-height, 0px)); 104 --sticky-area-height: calc(var(--announcement-bar-is-sticky, 0) * var(--announcement-bar-height, 0px) + var(--header-is-sticky, 0) * var(--header-height, 0px)); 105 --sticky-offset: calc(var(--announcement-bar-is-sticky, 0) * var(--announcement-bar-height, 0px) + var(--header-is-sticky, 0) * var(--header-is-visible, 1) * var(--header-height, 0px)); 106 107 /* RTL support */ 108 --transform-logical-flip: 1; 109 --transform-origin-start: left; 110 --transform-origin-end: right; 111 112 /** 113 * --------------------------------------------------------------------- 114 * TYPOGRAPHY 115 * --------------------------------------------------------------------- 116 */ 117 118 /* Font properties */ 119 --subheading-font-family: Manrope, sans-serif;
120 --subheading-font-weight: 700; 121 --subheading-font-style: normal; 122 --subheading-font-size: 0.625rem; 123 --subheading-text-transform: none; 124 --subheading-letter-spacing: 0.0em; 125 --heading-font-family: 'FreightNeo Pro', Georgia, serif; 126 --heading-font-weight: 400; 127 --heading-font-style: normal; 128 --heading-text-transform: uppercase; 129 --heading-letter-spacing: -0.02em; 130 --heading-line-height: 1; 131 --heading-italic-font-family: Helvetica, Arial, sans-serif; 132 --heading-italic-font-weight: 400; 133 --heading-italic-font-size-multiplier: 0%; 134 --text-font-family: Manrope, sans-serif; 135 --text-font-weight: 400; 136 --text-font-style: normal; 137 --text-transform: normal; 138 --text-letter-spacing: 0.0em; 139 --text-line-height: 1.4; 140 --text-font-medium-weight: 500; 141 --text-font-bold-weight: 700;--button-font: normal 700 var(--button-font-size) / normal Archivo, sans-serif; 142 --button-text-transform: none; 143 --button-letter-spacing: 0.0em; 144 145 /* Font sizes */--text-heading-size-factor: 1; 146 --text-display-xl: max(0.75rem, clamp(3rem, 1.5916rem + 6.0094vw, 7rem) * var(--text-heading-size-factor)); 147 --text-display-l: max(0.75rem, clamp(2.8125rem, 1.6901rem + 4.7887vw, 6rem) * var(--text-heading-size-factor)); 148 --text-display-m: max(0.75rem, clamp(2.75rem, 2.0458rem + 3.0047vw, 4.75rem) * var(--text-heading-size-factor)); 149 --text-h1: max(0.75rem, clamp(2.5rem, 1.9718rem + 2.2535vw, 4rem) * var(--text-heading-size-factor)); 150 --text-h2: max(0.75rem, 2rem * var(--text-heading-size-factor)); 151 --text-h3: max(0.75rem, clamp(1.5rem, 1.3239rem + 0.7512vw, 2rem) * var(--text-heading-size-factor)); 152 --text-h4: max(0.75rem, clamp(1.25rem, 1.162rem + 0.3756vw, 1.5rem) * var(--text-heading-size-factor)); 153 --text-h5: max(0.75rem, clamp(1.125rem, 1.081rem + 0.1878vw, 1.25rem) * var(--text-heading-size-factor)); 154 --text-h6: max(0.75rem, clamp(1rem, 0.956rem + 0.1878vw, 1.125rem) * var(--text-heading-size-factor)); 155 --text-h7: max(0.75rem, clamp(0.875rem, 0.831rem + 0.1878vw, 1rem) * var(--text-heading-size-factor)); 156 --text-xs: 0.625rem; 157 --text-sm: 0.75rem; 158 --text-base: 0.875rem; 159 --text-lg: 1.0625rem; 160 --button-font-size: 0.875rem; 161 162 /* Rounded variables (used for border radius) */ 163 --rounded-full: 9999px;--section-media-radius: 8px; 164 --subheading-border-radius: 0.0rem; 165 --button-border-radius: 0.5rem; 166 --input-border-radius: 0.5rem; 167 168 /* Packshot variables (global background behind product images, overridable per product) */ 169 --packshot-background: #f0f1f2; 170 171 /* Product card variables */ 172 --product-card-row-count: 2; 173 174 /** 175 * --------------------------------------------------------------------- 176 * OTHER 177 * --------------------------------------------------------------------- 178 */ 179 180 --icon-stroke-width: 1px; 181 --quotation-mark-svg: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" focusable="false" width="62" fill="none" viewBox="0 0 62 57"><path fill="%23000" d="M.79 31.904 11.924.816h12.296l-8.12 31.088h7.888V56.96H.79V31.904Zm37.351 0L49.277.816h12.064l-8.12 31.088h7.888V56.96H38.141V31.904Z" /></svg>'); 182 } 183 184 [dir="rtl"]:root { 185 /* RTL support */ 186 --transform-logical-flip: -1; 187 --transform-origin-start: right; 188 --transform-origin-end: left; 189 } 190 191 @media screen and (min-width: 700px) { 192 :root { 193 --text-xs: 0.75rem; 194 --text-sm: 0.875rem; 195 --text-base: 1.0rem; 196 --text-lg: 1.1875rem; 197 --subheading-font-size: 0.75rem; 198 --text-h2: max(0.75rem, 2.5rem * var(--text-heading-size-factor)); 199 200 /* Spacing */ 201 --container-gutter: 2rem; 202 203 /* Form settings */ 204 --form-gap: 1.25rem; /* Gap between fieldset and submit button */ 205 --fieldset-gap: 0.75rem; /* Gap between each form input within a fieldset */ 206 --input-padding-block: 0.75rem; /* Vertical padding for input, textarea and native select */ 207 208 /* Font sizes */ 209 --button-font-size: 0.875rem; 210 211 /* Product listing gaps */--product-list-column-gap: 3rem; 212 --product-list-row-gap: 4rem;} 213 } 214 215 @media screen and (min-width: 1000px) { 216 :root { 217 /* Spacing settings */ 218 --section-vertical-spacing: 5rem; 219 --section-stack-row-gap: 3rem; 220 } 221 } 222 223 @media screen and (min-width: 1399px) { 224 :root { 225 /* Spacing settings */ 226 --section-vertical-spacing: 6.5rem; 227 --container-gutter: 4rem; 228 } 229 } 230 231 /** 232 * --------------------------------------------------------------------- 233 * COLORS 234 * --------------------------------------------------------------------- 235 */ 236 237 :root {--page-overlay: 0 0 0 / 0.4; 238 --dialog-backdrop-blur: 12px; 239 240 /* Status colors */ 241 --success-background: 237 237 234; 242 --success-text: 102 106 83; 243 --warning-background: 253 241 224; 244 --warning-text: 237 138 0; 245 --error-background: 254 232 232; 246 --error-text: 250 63 63; 247 248 /* Product colors */ 249 --on-sale-text: 250 63 63; 250 --on-sale-badge-background: 250 63 63; 251 --on-sale-badge-text: 255 255 255; 252 --sold-out-badge-background: 17 13 14; 253 --sold-out-badge-text: 255 255 255; 254 --custom-badge-background: 255 255 255; 255 --custom-badge-text: 0 0 0; 256 --star-color: 0 0 0; 257 258 /* Default scheme */ 259 --default-color-scheme-background: 240 241 242; 260 --default-color-scheme-background-gradient: ; 261 --default-color-scheme-text-color: 17 13 14; 262 }.color-scheme--scheme-1 { 263 --accent: 107 0 0; 264 --background: 240 241 242; 265 --background-gradient: ; 266 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 267 --has-transparent-background: 0; 268 --has-filled-background: 1; 269 --text-color: 17 13 14;--border-color: 218 218 219;
269/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 270 --subheading-border: none; 271 --subheading-text-color: 17 13 14; 272 --subheading-has-padding: 0; 273 274 /* Heading highlight */ 275 --heading-highlight-accent-color: 107 0 0; 276 --heading-highlight-text-color: 255 255 255; 277 278 /* Button colors */ 279 --button-background-primary: 107 0 0; 280 --button-text-primary: 255 255 255;--button-dark: var(--button-background-primary); 281 --button-light: var(--button-text-primary);--button-outline-hover-text: var(--button-text-primary); 282 283 /* Form inputs */ 284 --input-background: 255 255 255; 285 --input-text-color: 17 13 14; 286 --input-text-transform: none; 287 }.shopify-section:has(> .color-scheme--scheme-1) + .shopify-section:has(> .color-scheme--scheme-1) { 288 --section-has-same-background-as-previous-section: 1; 289 }.color-scheme--scheme-2 { 290 --accent: 107 0 0; 291 --background: 255 255 255; 292 --background-gradient: ; 293 --background-secondary: 240 241 242;--background-secondary-text-color: 17 13 14; 294 --has-transparent-background: 0; 295 --has-filled-background: 1; 296 --text-color: 17 13 14;--border-color: 231 231 231;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 297 --subheading-border: none; 298 --subheading-text-color: 17 13 14; 299 --subheading-has-padding: 0; 300 301 /* Heading highlight */ 302 --heading-highlight-accent-color: 107 0 0; 303 --heading-highlight-text-color: 255 255 255; 304 305 /* Button colors */ 306 --button-background-primary: 107 0 0; 307 --button-text-primary: 255 255 255;--button-dark: var(--button-background-primary); 308 --button-light: var(--button-text-primary);--button-outline-hover-text: var(--button-text-primary); 309 310 /* Form inputs */ 311 --input-background: 255 255 255; 312 --input-text-color: 17 13 14; 313 --input-text-transform: none; 314 }.shopify-section:has(> .color-scheme--scheme-2) + .shopify-section:has(> .color-scheme--scheme-2) { 315 --section-has-same-background-as-previous-section: 1; 316 }.shopify-section:has(> .color-scheme--scheme-2) + .shopify-section:has(> .color-scheme--scheme-d51ac0b0-d414-4d17-9757-9f01d7f9c456) { 317 --section-has-same-background-as-previous-section: 1; 318 }.color-scheme--scheme-3 { 319 --accent: 255 255 255; 320 --background: 0 0 0 / 0; 321 --background-gradient: ; 322 --background-secondary: 240 241 242;--background-secondary-text-color: 17 13 14; 323 --has-transparent-background: 1; 324 --has-filled-background: 0; 325 --text-color: 255 255 255;--border-color: 255 255 255 / 0.6;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 326 --subheading-border: none; 327 --subheading-text-color: 255 255 255; 328 --subheading-has-padding: 0; 329 330 /* Heading highlight */ 331 --heading-highlight-accent-color: 255 255 255; 332 --heading-highlight-text-color: 107 0 0; 333 334 /* Button colors */ 335 --button-background-primary: 255 255 255; 336 --button-text-primary: 107 0 0;--button-dark: var(--button-text-primary); 337 --button-light: var(--button-background-primary);--button-outline-hover-text: var(--button-text-primary); 338 339 /* Form inputs */ 340 --input-background: 255 255 255; 341 --input-text-color: 17 13 14; 342 --input-text-transform: none; 343 }.shopify-section:has(> .color-scheme--scheme-3) + .shopify-section:has(> .color-scheme--scheme-3) { 344 --section-has-same-background-as-previous-section: 1; 345 }.shopify-section:has(> .color-scheme--scheme-3) + .shopify-section:has(> .color-scheme--scheme-12) { 346 --section-has-same-background-as-previous-section: 1; 347 }.color-scheme--scheme-4 { 348 --accent: 255 255 255; 349 --background: 17 13 14; 350 --background-gradient: ; 351 --background-secondary: 240 241 242;--background-secondary-text-color: 17 13 14; 352 --has-transparent-background: 0; 353 --has-filled-background: 1; 354 --text-color: 255 255 255;--border-color: 41 37 38;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 355 --subheading-border: none; 356 --subheading-text-color: 255 255 255; 357 --subheading-has-padding: 0; 358 359 /* Heading highlight */ 360 --heading-highlight-accent-color: 255 255 255; 361 --heading-highlight-text-color: 17 13 14; 362 363 /* Button colors */ 364 --button-background-primary: 255 255 255; 365 --button-text-primary: 107 0 0;--button-dark: var(--button-text-primary); 366 --button-light: var(--button-background-primary);--button-outline-hover-text: var(--button-text-primary); 367 368 /* Form inputs */ 369 --input-background: 17 13 14; 370 --input-text-color: 255 255 255; 371 --input-text-transform: none; 372 }.shopify-section:has(> .color-scheme--scheme-4) + .shopify-section:has(> .color-scheme--scheme-4) { 373 --section-has-same-background-as-previous-section: 1; 374 }.color-scheme--scheme-5 { 375 --accent: 255 255 255; 376 --background: 107 0 0; 377 --background-gradient: ; 378 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 379 --has-transparent-background: 0; 380 --has-filled-background: 1; 381 --text-color: 255 255 255;--border-color: 122 26 26;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 382 --subheading-border: none; 383 --subheading-text-color: 255 255 255; 384 --subheading-has-padding: 0; 385 386 /* Heading highlight */ 387 --heading-highlight-accent-color: 255 255 255; 388 --heading-highlight-text-color: 107 0 0; 389 390 /* Button colors */ 391 --button-background-primary: 255 255 255; 392 --button-text-primary: 107 0 0;--button-dark: var(--button-text-primary); 393 --button-light: var(--button-background-primary);--button-outline-hover-text: var(--button-text-primary); 394 395 /* Form inputs */ 396 --input-background: 255 255 255; 397 --input-text-color: 107 0 0; 398 --input-text-transform: none; 399 }.shopify-section:has(> .color-scheme--scheme-5) + .shopify-section:has(> .color-scheme--scheme-5) { 400 --section-has-same-background-as-previous-section: 1; 401 }.color-scheme--scheme-6 { 402 --accent: 255 255 255; 403 --background: 142 167 64; 404 --background-gradient: ; 405 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 406 --has-transparent-background: 0; 407 --has-filled-background: 1; 408 --text-color: 17 13 14;--border-color: 130 152 59;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 409 --subheading-border: none; 410 --subheading-text-color: 17 13 14; 411 --subheading-has-padding: 0; 412 413 /* Heading highlight */ 414 --heading-highlight-accent-color: 17 13 14; 415 --heading-highlight-text-color: 255 255 255; 416 417 /* Button colors */ 418 --button-background-primary: 255 255 255; 419 --button-text-primary: 107 0 0;--button-dark: var(--button-text-primary); 420 --button-light: var(--button-background-primary);--button-outline-hover-text: var(--button-text-primary); 421 422 /* Form inputs */ 423 --input-background: 255 255 255; 424 --input-text-color: 17 13 14; 425 --input-text-transform: none; 426 }.shopify-section:has(> .color-scheme--scheme-6) + .shopify-section:has(> .color-scheme--scheme-6) { 427 --section-has-same-background-as-previous-section: 1; 428 }.color-scheme--scheme-7 { 429 --accent: 255 255 255; 430 --background: 51 0 6; 431 --background-gradient: ; 432 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 433 --has-transparent-background: 0; 434 --has-filled-background: 1; 435 --text-color: 242 145 157;--border-color: 70 15 21;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 436 --subheading-border: none; 437 --subheading-text-color: 242 145 157; 438 --subheading-has-padding: 0; 439 440 /* Heading highlight */ 441 --heading-highlight-accent-color: 242 145 157; 442 --heading-highlight-text-color: 51 0 6; 443 444 /* Button colors */ 445 --button-background-primary: 255 255 255; 446 --button-text-primary: 107 0 0;--button-dark: var(--button-text-primary); 447 --button-light: var(--button-background-primary);--button-outline-hover-text: var(--button-text-primary); 448 449 /* Form inputs */ 450 --input-background: 255 255 255; 451 --input-text-color: 51 0 6; 452 --input-text-transform: none; 453 }.shopify-section:has(> .color-scheme--scheme-7) + .shopify-section:has(> .color-scheme--scheme-7) { 454 --section-has-same-background-as-previous-section: 1; 455 }.shopify-section:has(> .color-scheme--scheme-7) + .shopify-section:has(> .color-scheme--scheme-11) { 456 --section-has-same-background-as-previous-section: 1; 457 }.color-scheme--scheme-8 { 458 --accent: 107 0 0; 459 --background: 242 145 157; 460 --background-gradient: ; 461 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 462 --has-transparent-background: 0; 463 --has-filled-background: 1; 464 --text-color: 107 0 0;--border-color: 229 131 141;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 465 --subheading-border: none; 466 --subheading-text-color: 107 0 0; 467 --subheading-has-padding: 0; 468 469 /* Heading highlight */ 470 --heading-highlight-accent-color: 107 0 0; 471 --heading-highlight-text-color: 255 255 255; 472 473 /* Button colors */ 474 --button-background-primary: 107 0 0; 475 --button-text-primary: 255 255 255;--button-dark: var(--button-background-primary); 476 --button-light: var(--button-text-primary);--button-outline-hover-text: var(--button-text-primary); 477 478 /* Form inputs */ 479 --input-background: 255 255 255; 480 --input-text-color: 107 0 0; 481 --input-text-transform: none; 482 }.shopify-section:has(> .color-scheme--scheme-8) + .shopify-section:has(> .color-scheme--scheme-8) { 483 --section-has-same-background-as-previous-section: 1; 484 }.color-scheme--scheme-9 { 485 --accent: 107 0 0; 486 --background: 255 204 210; 487 --background-gradient: ; 488 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 489 --has-transparent-background: 0; 490 --has-filled-background: 1; 491 --text-color: 107 0 0;--border-color: 240 184 189;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 492 --subheading-border: none; 493 --subheading-text-color: 107 0 0; 494 --subheading-has-padding: 0; 495 496 /* Heading highlight */ 497 --heading-highlight-accent-color: 107 0 0; 498 --heading-highlight-text-color: 255 255 255; 499 500 /* Button colors */ 501 --button-background-primary: 107 0 0; 502 --button-text-primary: 255 255 255;--button-dark: var(--button-background-primary); 503 --button-light: var(--button-text-primary);--button-outline-hover-text: var(--button-text-primary); 504 505 /* Form inputs */ 506 --input-background: 255 255 255; 507 --input-text-color: 107 0 0; 508 --input-text-transform: none; 509 }.shopify-section:has(> .color-scheme--scheme-9) + .shopify-section:has(> .color-scheme--scheme-9) { 510 --section-has-same-background-as-previous-section: 1; 511 }.color-scheme--scheme-10 { 512 --accent: 107 0 0; 513 --background: 233 242 171; 514 --background-gradient: ; 515 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 516 --has-transparent-background: 0; 517 --has-filled-background: 1; 518 --text-color: 17 13 14;--border-color: 211 219 155;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 519 --subheading-border: none; 520 --subheading-text-color: 17 13 14; 521 --subheading-has-padding: 0; 522 523 /* Heading highlight */ 524 --heading-highlight-accent-color: 107 0 0; 525 --heading-highlight-text-color: 255 255 255; 526 527 /* Button colors */ 528 --button-background-primary: 107 0 0; 529 --button-text-primary: 255 255 255;--button-dark: var(--button-background-primary); 530 --button-light: var(--button-text-primary);--button-outline-hover-text: var(--button-text-primary); 531 532 /* Form inputs */ 533 --input-background: 255 255 255; 534 --input-text-color: 17 13 14; 535 --input-text-transform: none; 536 }.shopify-section:has(> .color-scheme--scheme-10) + .shopify-section:has(> .color-scheme--scheme-10) { 537 --section-has-same-background-as-previous-section: 1; 538 }.color-scheme--scheme-11 { 539 --accent: 255 255 255; 540 --background: 51 0 6; 541 --background-gradient: ; 542 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 543 --has-transparent-background: 0; 544 --has-filled-background: 1; 545 --text-color: 255 255 255;--border-color: 71 26 31;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 546 --subheading-border: none; 547 --subheading-text-color: 255 255 255; 548 --subheading-has-padding: 0; 549 550 /* Heading highlight */ 551 --heading-highlight-accent-color: 242 145 157; 552 --heading-highlight-text-color: 51 0 6; 553 554 /* Button colors */ 555 --button-background-primary: 255 255 255; 556 --button-text-primary: 107 0 0;--button-dark: var(--button-text-primary); 557 --button-light: var(--button-background-primary);--button-outline-hover-text: var(--button-text-primary); 558 559 /* Form inputs */ 560 --input-background: 255 255 255; 561 --input-text-color: 51 0 6; 562 --input-text-transform: none; 563 }.shopify-section:has(> .color-scheme--scheme-11) + .shopify-section:has(> .color-scheme--scheme-7) { 564 --section-has-same-background-as-previous-section: 1; 565 }.shopify-section:has(> .color-scheme--scheme-11) + .shopify-section:has(> .color-scheme--scheme-11) { 566 --section-has-same-background-as-previous-section: 1; 567 }.color-scheme--scheme-12 { 568 --accent: 107 0 0; 569 --background: 0 0 0 / 0; 570 --background-gradient: ; 571 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 572 --has-transparent-background: 1; 573 --has-filled-background: 0; 574 --text-color: 107 0 0;--border-color: 107 0 0 / 0.6;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 575 --subheading-border: none; 576 --subheading-text-color: 107 0 0; 577 --subheading-has-padding: 0; 578 579 /* Heading highlight */ 580 --heading-highlight-accent-color: 107 0 0; 581 --heading-highlight-text-color: 255 255 255; 582 583 /* Button colors */ 584 --button-background-primary: 107 0 0; 585 --button-text-primary: 255 255 255;--button-dark: var(--button-background-primary); 586 --button-light: var(--button-text-primary);--button-outline-hover-text: var(--button-text-primary); 587 588 /* Form inputs */ 589 --input-background: 255 255 255; 590 --input-text-color: 17 13 14; 591 --input-text-transform: none; 592 }.shopify-section:has(> .color-scheme--scheme-12) + .shopify-section:has(> .color-scheme--scheme-3) { 593 --section-has-same-background-as-previous-section: 1; 594 }.shopify-section:has(> .color-scheme--scheme-12) + .shopify-section:has(> .color-scheme--scheme-12) { 595 --section-has-same-background-as-previous-section: 1; 596 }.color-scheme--scheme-d51ac0b0-d414-4d17-9757-9f01d7f9c456 { 597 --accent: 107 0 0; 598 --background: 255 255 255; 599 --background-gradient: ; 600 --background-secondary: 255 255 255;--background-secondary-text-color: 17 13 14; 601 --has-transparent-background: 0; 602 --has-filled-background: 1; 603 --text-color: 77 77 77;--border-color: 237 237 237;/* Subheading colors */--subheading-background: 0 0 0 / 0.0; 604 --subheading-border: none; 605 --subheading-text-color: 17 13 14; 606 --subheading-has-padding: 0; 607 608 /* Heading highlight */ 609 --heading-highlight-accent-color: 107 0 0; 610 --heading-highlight-text-color: 255 255 255; 611 612 /* Button colors */ 613 --button-background-primary: 107 0 0; 614 --button-text-primary: 255 255 255;--button-dark: var(--button-background-primary); 615 --button-light: var(--button-text-primary);--button-outline-hover-text: var(--button-text-primary); 616 617 /* Form inputs */ 618 --input-background: 255 255 255; 619 --input-text-color: 17 13 14; 620 --input-text-transform: none; 621 }.shopify-section:has(> .color-scheme--scheme-d51ac0b0-d414-4d17-9757-9f01d7f9c456) + .shopify-section:has(> .color-sch
621eme--scheme-2) { 622 --section-has-same-background-as-previous-section: 1; 623 }.shopify-section:has(> .color-scheme--scheme-d51ac0b0-d414-4d17-9757-9f01d7f9c456) + .shopify-section:has(> .color-scheme--scheme-d51ac0b0-d414-4d17-9757-9f01d7f9c456) { 624 --section-has-same-background-as-previous-section: 1; 625 }@view-transition { 626 navigation: auto; 627 }</style>
628<script> 629 // This allows to expose several variables to the global scope, to be used in scripts 630 window.themeVariables = { 631 settings: { 632 pageType: "cart", 633 moneyFormat: "{{amount_with_comma_separator}} â¬", 634 moneyWithCurrencyFormat: "â¬{{amount_with_comma_separator}} EUR", 635 currencyCodeEnabled: false, 636 cartType: "drawer", 637 showHeadingEffectAnimation: true, 638 staggerProducts: true 639 }, 640 641 strings: { 642 addedToCart: "{{product_title}} a été ajouté au panier", 643 closeGallery: "Fermer la galerie", 644 zoomGallery: "Zoomer sur l\u0026#39;image", 645 errorGallery: "L\u0026#39;image ne peut pas etre chargée", 646 shippingEstimatorNoResults: "Nous ne livrons pas à votre adresse.", 647 shippingEstimatorOneResult: "Il y a un résultat pour votre adresse :", 648 shippingEstimatorMultipleResults: "Il y a plusieurs résultats pour votre adresse :", 649 shippingEstimatorError: "Impossible d\u0026#39;estimer les frais de livraison :", 650 next: "Suivant", 651 previous: "Précédent" 652 }, 653 654 mediaQueries: { 655 'sm': 'screen and (min-width: 700px)', 656 'md': 'screen and (min-width: 1000px)', 657 'lg': 'screen and (min-width: 1150px)', 658 'xl': 'screen and (min-width: 1400px)', 659 '2xl': 'screen and (min-width: 1600px)', 660 'sm-max': 'screen and (max-width: 699px)', 661 'md-max': 'screen and (max-width: 999px)', 662 'lg-max': 'screen and (max-width: 1149px)', 663 'xl-max': 'screen and (max-width: 1399px)', 664 '2xl-max': 'screen and (max-width: 1599px)', 665 'motion-safe': '(prefers-reduced-motion: no-preference)', 666 'motion-reduce': '(prefers-reduced-motion: reduce)', 667 'supports-hover': 'screen and (pointer: fine)', 668 'supports-touch': 'screen and (pointer: coarse)' 669 } 670 };</script>
670<script async crossorigin fetchpriority="high" src="/cdn/shopifycloud/importmap-polyfill/es-modules-shim.2.4.0.js"></script>
vendor: 1 bytes, line 670
670
671<script type="importmap">{ 672 "imports": { 673 "vendor": "//fr.melvita.com/cdn/shop/t/4/assets/vendor.min.js?v=115152861726854754811781165056", 674 "theme": "//fr.melvita.com/cdn/shop/t/4/assets/theme.js?v=33174130759666119641788273087", 675 "photoswipe": "//fr.melvita.com/cdn/shop/t/4/assets/photoswipe.min.js?v=13374349288281597431781165053" 676 } 677 } 678 </script>
678<script src="//fr.melvita.com/cdn/shop/t/4/assets/ax-cart-return.js?v=108670334683347548871787909367" data-cart-page="true"></script>
678 679 680
680<script type="module" src="//fr.melvita.com/cdn/shop/t/4/assets/vendor.min.js?v=115152861726854754811781165056"></script>
680 681
681<script type="module" src="//fr.melvita.com/cdn/shop/t/4/assets/theme.js?v=33174130759666119641788273087"></script>
681 682 683
683<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
683<meta name="google-site-verification" content="UNnDNVrq-HoV3nuK60R8Z0CYN3jANLrmhoXJqgtWlYs"> 684<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/107173183826/digital_wallets/dialog"> 685<meta id="in-context-paypal-metadata" data-shop-id="107173183826" data-venmo-supported="false" data-environment="production" data-locale="fr_FR" data-paypal-v4="true" data-currency="EUR"> 686<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
686<script async="async" src="/checkouts/internal/preloads.js?locale=fr-FR&default_configuration_id=8405188946"></script>
686 687<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
688<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=fr-FR&default_configuration_id=8405188946&shop_id=107173183826" crossorigin="anonymous"></script>
vendor: 1 bytes, line 688
688
689<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":107173183826,"countryCode":"FR","currencyCode":"EUR","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/107173183826","merchantName":"Melvita","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","maestro"],"total":{"type":"pending","label":"Melvita","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 689
689
690<script id="shopify-features" type="application/json">{"accessToken":"175bb8ecbf2f11fe23eb9a6df696cf5e","betas":["rich-media-storefront-analytics"],"domain":"fr.melvita.com","predictiveSearch":true,"shopId":107173183826,"locale":"fr"}</script>
vendor: 1 bytes, line 690
690
691<script>var Shopify = Shopify || {}; 692Shopify.shop = "melvita2026.myshopify.com"; 693Shopify.locale = "fr"; 694Shopify.currency = {"active":"EUR","rate":"1.0"}; 695Shopify.country = "FR"; 696Shopify.theme = {"name":"[PROD] Melvita - Axome","id":202104996178,"schema_name":"Axome - Melvita","schema_version":"1.0.0","theme_store_id":null,"role":"main"}; 697Shopify.theme.handle = "null"; 698Shopify.theme.style = {"id":null,"handle":null}; 699Shopify.cdnHost = "fr.melvita.com/cdn"; 700Shopify.routes = Shopify.routes || {}; 701Shopify.routes.root = "/"; 702Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 703Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 704Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 705Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 705
705
706<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 706
706
707<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 707
707
708<script> 709 window.ShopifyPay = window.ShopifyPay || {}; 710 window.ShopifyPay.apiHost = "shop.app\/pay"; 711 window.ShopifyPay.redirectState = null; 712</script>
vendor: 1 bytes, line 712
712
713<script> 714 window.Shopify = window.Shopify || {}; 715 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 716 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 717 window.Shopify.SignInWithShop.eligible = true; 718</script>
vendor: 1 bytes, line 718
718
719<script id="shop-js-analytics" type="application/json">{"pageType":"cart"}</script>
vendor: 1 bytes, line 719
719
720<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.fr.esm.js"></script>
vendor: 1 bytes, line 720
720
721<script type="module"> 722 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.fr.esm.js"); 723 724 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 725 726</script>
vendor: 1 bytes, line 726
726
727<script> 728 window.Shopify = window.Shopify || {}; 729 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 730 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.fr.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.fr.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.fr.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.fr.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.fr.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.fr.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.fr.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.fr.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.fr.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.fr.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.fr.esm.js"],"listener":["modules/v2/loader.listener.fr.esm.js"],"pay-button":["modules/v2/loader.pay-button.fr.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.fr.esm.js"],"shop-button":["modules/v2/loader.shop-button.fr.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.fr.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.fr.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.fr.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.fr.esm.js"],"shop-login":["modules/v2/loader.shop-login.fr.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.fr.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.fr.esm.js"]}; 731</script>
vendor: 1 bytes, line 731
731
732<script>(function() { 733 var isLoaded = false; 734 function asyncLoad() { 735 if (isLoaded) return; 736 isLoaded = true; 737 var urls = ["https:\/\/redirectify.app\/script_tags\/tracking.js?shop=melvita2026.myshopify.com"]; 738 for (var i = 0; i < urls.length; i++) { 739 var s = document.createElement('script'); 740 s.type = 'text/javascript'; 741 s.async = true; 742 s.src = urls[i]; 743 var x = document.getElementsByTagName('script')[0]; 744 x.parentNode.insertBefore(s, x); 745 } 746 }; 747 if(window.attachEvent) { 748 window.attachEvent('onload', asyncLoad); 749 } else { 750 window.addEventListener('load', asyncLoad, false); 751 } 752})();</script>
vendor: 1 bytes, line 752
752
753<script id="__st">var __st={"a":107173183826,"offset":7200,"reqid":"7587a61f-692a-4d96-9e6c-8cb2495e6e5f-1790362383","pageurl":"fr.melvita.com\/cart","u":"7753c5c8c253","p":"cart"};</script>
vendor: 1 bytes, line 753
753
754<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 754
754
755<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protégé par hCaptcha',privacyText:'Confidentialité',termsText:'Conditions'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 755
755
756<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//fr.melvita.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 756
756
757<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//fr.melvita.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
757<script crossorigin="anonymous" defer="defer" src="//fr.melvita.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 757
757
758<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 758
758
759<script> 760 window.Shopify = window.Shopify || {}; 761 window.Shopify.MCP = window.Shopify.MCP || {}; 762 window.Shopify.MCP.enabled = true; 763 window.Shopify.MCP.shop = "melvita2026.myshopify.com"; 764 window.Shopify.MCP.mcpEndpoint = "https:\/\/fr.melvita.com\/api\/mcp"; 765 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 766</script>
vendor: 1 bytes, line 766
766
767<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/fr.melvita.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 768</script>
vendor: 1 bytes, line 768
768
769<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://fr.melvita.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.fr.js",t.type="module",document.head.appendChild(t)}}; 770</script>
vendor: 1 bytes, line 770
770
771<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 772 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 773</script>
vendor: 1 bytes, line 773
773
774<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 775</script>
775 776<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://fr.melvita.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 777<style id="shopify-accelerated-checkout-cart"> 778 #shopify-buyer-consent { 779 margin-top: 1em; 780 display: inline-block; 781 width: 100%; 782} 783 784#shopify-buyer-consent.hidden { 785 display: none; 786} 787 788#shopify-subscription-policy-button { 789 background: none; 790 border: none; 791 padding: 0; 792 text-decoration: underline; 793 font-size: inherit; 794 cursor: pointer; 795} 796 797#shopify-subscription-policy-button::before { 798 box-shadow: none; 799} 800 801 </style> 802
803<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
803 804 805 806 807<!-- Début de la mention OneTrust de consentement aux cookies pour le domaine fr.melvita.com -->
807<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="2f186e1c-05ac-4625-975b-7963117343ff"></script>
vendor: 1 bytes, line 807
807
808<script type="text/javascript"> 809 (function () { 810 // Correspondance groupes OneTrust â signaux de consentement Shopify. 811 var GROUP_MAP = { 812 analytics: ['C0002'], 813 preferences: ['C0003'], 814 marketing: ['C0004', 'C0005'], 815 sale_of_data: ['C0004'] 816 }; 817 818 var apiReady = false; 819 var pending = null; 820 var lastSent = ''; 821 822 function log() { 823 if (!window.OT_SHOPIFY_DEBUG || !window.console) return; 824 console.log.apply(console, ['[OneTrustâShopify]'].concat([].slice.call(arguments))); 825 } 826 827 function activeGroups() { 828 var raw = window.OnetrustActiveGroups || window.OptanonActiveGroups || ''; 829 return String(raw).split(',').filter(Boolean); 830 } 831 832 // Ne rien pousser avant un choix explicite : sans appel, Shopify considère 833 // qu'aucune décision n'a été prise et applique son comportement par défaut. 834 function decisionMade() { 835 try { 836 if (window.OneTrust && typeof window.OneTrust.IsAlertBoxClosed === 'function') { 837 return window.OneTrust.IsAlertBoxClosed(); 838 } 839 } catch (e) {} 840 return document.cookie.indexOf('OptanonAlertBoxClosed=') !== -1; 841 } 842 843 function buildConsent() { 844 var groups = activeGroups(); 845 var consent = {}; 846 847 Object.keys(GROUP_MAP).forEach(function (signal) { 848 consent[signal] = GROUP_MAP[signal].some(function (group) { 849 return groups.indexOf(group) !== -1; 850 }); 851 }); 852 853 return consent; 854 } 855 856 function flush() { 857 if (!apiReady || !pending) return; 858 859 var fingerprint = JSON.stringify(pending); 860 if (fingerprint === lastSent) return; 861 862 var payload = pending; 863 864 try { 865 window.Shopify.customerPrivacy.setTrackingConsent(payload, function (result) { 866 if (result && result.error) { 867 log('setTrackingConsent en erreur', result.error); 868 return; 869 } 870 871 lastSent = fingerprint; 872 log('consentement appliqué', payload); 873 document.dispatchEvent(new CustomEvent('onetrust:consent-applied', { detail: payload })); 874 }); 875 } catch (e) { 876 log('setTrackingConsent a échoué', e); 877 } 878 } 879 880 function sync() { 881 if (!decisionMade()) { 882 log('aucune décision utilisateur pour le moment'); 883 return; 884 } 885 886 pending = buildConsent(); 887 flush(); 888 } 889 890 // OptanonWrapper : appelé par OneTrust à l'init de la bannière puis à chaque 891 // enregistrement. OneTrustGroupsUpdated couvre les changements ultérieurs 892 // (centre de préférences, lien « Cookies » du footer). 893 window.OptanonWrapper = function () { 894 sync(); 895 }; 896 897 window.addEventListener('OneTrustGroupsUpdated', sync); 898 899 // Shopify.loadFeatures est injecté par content_for_header : on tolère un retard. 900 function loadApi(attempt) { 901 if (window.Shopify && typeof window.Shopify.loadFeatures === 'function') { 902 window.Shopify.loadFeatures([{ name: 'consent-tracking-api', version: '0.1' }], function (error) { 903 if (error) { 904 log('chargement de consent-tracking-api impossible', error); 905 return; 906 } 907 908 apiReady = true; 909 log('API Customer Privacy prête'); 910 flush(); 911 }); 912 return; 913 } 914 915 if (attempt < 50) { 916 setTimeout(function () { loadApi(attempt + 1); }, 100); 917 return; 918 } 919 920 log('window.Shopify.loadFeatures introuvable'); 921 } 922 923 loadApi(0); 924 925 // OneTrust injecte des h2/h3/h4 qui polluent la hiérarchie de titres de la page. 926 function demoteHeadings(root) { 927 root.querySelectorAll('h1, h2, h3, h4, h5, h6').forEach(function (heading) { 928 var div = document.createElement('div'); 929 for (var i = 0; i < heading.attributes.length; i++) { 930 div.setAttribute(heading.attributes[i].name, heading.attributes[i].value); 931 } 932 div.className = heading.className; 933 div.innerHTML = heading.innerHTML; 934 heading.parentNode.replaceChild(div, heading); 935 }); 936 } 937 938 new MutationObserver(function () { 939 ['onetrust-consent-sdk', 'onetrust-pc-sdk', 'ot-sdk-cookie-policy'].forEach(function (id) { 940 var root = document.getElementById(id); 941 if (root) demoteHeadings(root); 942 }); 943 }).observe(document.documentElement, { childList: true, subtree: true }); 944 })(); 945</script>
945 946<!-- Fin de la mention OneTrust de consentement aux cookies pour le domaine fr.melvita.com --> 947 948<link href="//fr.melvita.com/cdn/shop/t/4/assets/theme.css?v=158163033534490993411789656534" rel="stylesheet" type="text/css" media="all" /><link href="//fr.melvita.com/cdn/shop/t/4/assets/ax-typography.css?v=182365509266313969341787908793" rel="stylesheet" type="text/css" media="all" /><link href="//fr.melvita.com/cdn/shop/t/4/assets/ax-badges.css?v=33586028472518224671788863846" rel="stylesheet" type="text/css" media="all" /><link href="//fr.melvita.com/cdn/shop/t/4/assets/ax-product-variations.css?v=46475551306836448481787911533" rel="stylesheet" type="text/css" media="all" /><link href="//fr.melvita.com/cdn/shop/t/4/assets/ax-carousel-arrows.css?v=116941441801558068081787908792" rel="stylesheet" type="text/css" media="all" /><link href="//fr.melvita.com/cdn/shop/t/4/assets/ax-collection-toolbar.css?v=183180576473984108121788183088" rel="stylesheet" type="text/css" media="all" /><!-- BEGIN app block: shopify://apps/regios-discounts/blocks/regios_discounts_embed/dc1514bb-4830-4102-bffa-e8b300bac5bd --> 949
950<script id="regios-dopp-config" type="application/json"> 951{ 952 "discountConfigs": {"1898210165074":"null","1898227859794":"null","1898289201490":"null","1905427972434":"null","1906147262802":"null","1906154668370":"null","1906156372306":"null","1906156601682":"null","1906158928210":"null","1906159747410":"null","1906160238930":"null","1906160828754":"null","1906161451346":"null","1906644123986":"null","1910377906514":"null","1910573629778":"null","1911809573202":"null","1912379277650":"null","1918336434514":"null","1918341546322":"null","1918341710162":"null","1918342005074":"null","1918343610706":"null","1918345019730":"null","1918358421842":"null","1918845419858":"null","1918846566738":"null","1919076139346":"null","1919127355730":"null"}, 953 "calculateDiscountBasedOnQuantity": false, 954 "countryCode": "FR", 955 "currencyCode": "EUR", 956 "currencySymbol": "â¬", 957 958 "customer": null, 959 960 "customerMetafieldsToCheck": "", 961 962 "moneyFormat": "0,00 â¬", 963 "moneyFormatString": "{{amount_with_comma_separator}} â¬", 964 965 "themeType": "auto_detect", 966 "badgeTemplate": "[discount_percentage] OFF", 967 "badgeCss": "", 968 "descriptionTemplate": "[discount_message]", 969 "descriptionCss": "", 970 "priceOnSaleClass": "", 971 "delay": 0, 972 "logLevel": "error", 973 "regularPriceTemplate": "[regular_price]", 974 "salePriceTemplate": "[sale_price]", 975 "regiosDiscountsAppProxyUrl": "\/apps\/regios-discounts", 976 "useAppProxyForManualCodeStrikethrough": false, 977 "cart": { 978 "attributes": {}, 979 "discountCodes": [], 980 "items": [ 981 982 ] 983 }, 984 "featureFlags": "", 985 "designMode": false, 986 987 "marketId": 116017496402, 988 989 990 "doppV3Fallbacks": { 991 992 "product": null, 993 994 "keep-this-last": "" 995 } 996 997} 998</script>
998 999
1000<script id="regios-dopp-script"> 1001 var configScript = document.getElementById('regios-dopp-config'); 1002 1003 if (!configScript) { 1004 throw new Error('[Regios Discounts] Critical error: Configuration script not found.'); 1005 } 1006 1007 var config = JSON.parse(configScript.textContent); 1008 window.RegiosDOPP = Object.assign(window.RegiosDOPP || {}, config); 1009</script>
1009 1010 1011 1012<!-- END app block --><!-- BEGIN app block: shopify://apps/addingwell/blocks/aw-gtm/c8ed21e7-0ac8-4249-8c91-cbdde850b5b8 -->
1012<script 1013 type="module" 1014> 1015 setTimeout(async function () { 1016 const keySessionStorage = 'aw_settings'; 1017 let __AW__settings = JSON.parse(sessionStorage.getItem(keySessionStorage)); 1018 if(!__AW__settings) { 1019 const awSettings = await fetch( 1020 "/apps/addingwell-proxy", 1021 { 1022 method: "GET", 1023 redirect: "follow", 1024 headers: {'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'} 1025 } 1026 ); 1027 if (awSettings.ok) { 1028 __AW__settings = await awSettings.json(); 1029 sessionStorage.setItem(keySessionStorage, JSON.stringify(__AW__settings)); 1030 } else { 1031 console.error('Addingwell - Loading proxy error', awSettings.status); 1032 return; 1033 } 1034 } 1035 1036 if(__AW__settings.insertGtmTag && __AW__settings.gtmId) { 1037 let __AW__gtmUrl = 'https://www.googletagmanager.com/gtm.js'; 1038 let __AW__isAddingwellCdn = false; 1039 if(__AW__settings.insertGtmUrl && __AW__settings.gtmUrl) { 1040 __AW__gtmUrl = __AW__settings.gtmUrl; 1041 __AW__isAddingwellCdn = __AW__settings.isAddingwellCdn; 1042 } 1043 1044 (function(w,d,s,l,i){ 1045 w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'}); 1046 var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:''; 1047 j.async=true; 1048 j.src=`${__AW__gtmUrl}?${__AW__isAddingwellCdn ? 'awl' : 'id'}=`+(__AW__isAddingwellCdn ? i.replace(/^GTM-/, '') : i)+dl;f.parentNode.insertBefore(j,f); 1049 })(window,document,'script',`${__AW__settings.dataLayerVariableName}`,`${__AW__settings.gtmId}`); 1050 } 1051 1052 const __AW__getEventNameWithSuffix = (eventName) => { 1053 return eventName + (__AW__settings.dataLayerEventSuffix ? "_" + __AW__settings.dataLayerEventSuffix : ""); 1054 } 1055 1056 function __AW__waitForShopifyYCookie(maxAttempts, intervalMs) { 1057 return new Promise(function(resolve) { 1058 let attempts = 0; 1059 maxAttempts = maxAttempts || 5; 1060 intervalMs = intervalMs || 200; 1061 function check() { 1062 const match = document.cookie.match(/(?:^|;\s*)_shopify_y=([^;]*)/); 1063 if (match) { 1064 resolve(match[1]); 1065 } else if (attempts < maxAttempts) { 1066 attempts++; 1067 setTimeout(check, intervalMs); 1068 } else { 1069 console.warn('[AW] _shopify_y cookie not found after consent'); 1070 resolve(null); 1071 } 1072 } 1073 check(); 1074 }); 1075 } 1076 1077 const __AW__CONSENT_KEY = 'aw_consent_state'; 1078 1079 function __AW__getConsentState() { 1080 try { 1081 if (window.Shopify?.customerPrivacy?.currentVisitorConsent) { 1082 return JSON.stringify(window.Shopify.customerPrivacy.currentVisitorConsent()); 1083 } 1084 } catch(e) {} 1085 return null; 1086 } 1087 1088 function __AW__isEmptyConsent(stateStr) { 1089 try { 1090 return Object.values(JSON.parse(stateStr)).every(v => v === ''); 1091 } catch(e) {} 1092 return true; 1093 } 1094 1095 let __AW__prevConsentState = __AW__getConsentState() ?? localStorage.getItem(__AW__CONSENT_KEY); 1096 1097 document.addEventListener('visitorConsentCollected', async function(event) { 1098 const currentConsentState = __AW__getConsentState(); 1099 1100 if (currentConsentState !== null && currentConsentState === __AW__prevConsentState) { 1101 return; 1102 } 1103 1104 __AW__prevConsentState = currentConsentState; 1105 1106 if (currentConsentState !== null) { 1107 if (__AW__isEmptyConsent(currentConsentState)) { 1108 localStorage.removeItem(__AW__CONSENT_KEY); 1109 } else { 1110 localStorage.setItem(__AW__CONSENT_KEY, currentConsentState); 1111 } 1112 } 1113 1114 window.Shopify.analytics.publish('addingwell:shopify_update_consent', {visitorConsentCollected: true}); 1115 1116 const shopifyY = await __AW__waitForShopifyYCookie(); 1117 if (!shopifyY) return; 1118 1119 window[__AW__settings.dataLayerVariableName] = window[__AW__settings.dataLayerVariableName] || []; 1120 window[__AW__settings.dataLayerVariableName].push({ 1121 event: __AW__getEventNameWithSuffix('shopify_consent_updated'), 1122 }); 1123 }); 1124 1125 if(__AW__settings.enableDataLayer) { 1126 const MAX_ITEMS_BATCH = 10; 1127 const sendBatchEvents = (items, eventName, eventObject) => { 1128 let batch = []; 1129 for(let i = 0; i < items.length; i++) { 1130 batch.push(items[i]); 1131 if(batch.length === MAX_ITEMS_BATCH || i === items.length - 1) { 1132 const eventClone = { 1133 ...eventObject, 1134 ecommerce: { 1135 ...eventObject.ecommerce, 1136 items: [...batch] 1137 } 1138 }; 1139 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 1140 window[__AW__settings.dataLayerVariableName].push({ 1141 ...{'event': __AW__getEventNameWithSuffix(eventName)}, 1142 ...eventClone 1143 }); 1144 1145 batch = []; 1146 } 1147 } 1148 } 1149 1150 function __AW__filterNullOrEmpty(obj) { 1151 let filteredObj = {}; 1152 1153 for (let key in obj) { 1154 if (obj.hasOwnProperty(key)) { 1155 let value = obj[key]; 1156 1157 // If value is an object (and not null), recursively filter sub-elements 1158 if (typeof value === "object" && value !== null && value !== undefined) { 1159 let filteredSubObject = __AW__filterNullOrEmpty(value); 1160 1161 // Add the filtered sub-object only if it's not empty 1162 if (Object.keys(filteredSubObject).length > 0) { 1163 filteredObj[key] = filteredSubObject; 1164 } 1165 } else { 1166 // Add the value only if it's neither null nor an empty string 1167 if (value !== null && value !== "" && value !== undefined) { 1168 filteredObj[key] = value; 1169 } 1170 } 1171 } 1172 } 1173 return filteredObj; 1174 } 1175 1176 function getPageType(value) { 1177 const pageTypeMapping = { 1178 404: '404', 1179 article: 'article', 1180 blog: 'blog', 1181 cart: 'cart', 1182 collection: 'collection', 1183 gift_card: 'gift_card', 1184 index: 'homepage', 1185 product: 'product', 1186 search: 'searchresults', 1187 'customers/login': 'login', 1188 'customers/register': 'sign_up' 1189 }; 1190 return pageTypeMapping[value] || 'other'; 1191 } 1192 let __AW__cartReady = false;
1193 1194 function pushDataLayerEvents() { 1195 initCart(); 1196 window[__AW__settings.dataLayerVariableName] = window[__AW__settings.dataLayerVariableName] || []; // init data layer if doesn't already exist 1197 const templateName = "cart"; 1198 1199 const getFormattedPrice = (priceInCents) => priceInCents/100; 1200 /********************** 1201 * DATALAYER SECTIONS 1202 ***********************/ 1203 /** 1204 * DATALAYER: User Data 1205 * Build user_data properties. 1206 */ 1207 let newCustomer = true; 1208 window.__AW__CommonData = { 1209 user_data: { 1210 new_customer: newCustomer, 1211 } 1212 }; 1213 1214 1215 1216 window.__AW__CommonData.country = "FR" 1217 window.__AW__CommonData.market = "fr" 1218 window.__AW__CommonData.marketId = 116017496402 1219 1220 1221 window.__AW__CommonData.language = "fr-FR"; 1222 1223 window.__AW__CommonData = __AW__filterNullOrEmpty(window.__AW__CommonData); 1224 1225 // Ajout du hash SHA256 des champs sensibles de user_data (version robuste) 1226 async function sha256(str) { 1227 if (!str) return undefined; 1228 if (!(window.crypto && window.crypto.subtle)) { 1229 console.error('Crypto.subtle non supporté, hash impossible pour :', str); 1230 return undefined; 1231 } 1232 try { 1233 const buf = await window.crypto.subtle.digest('SHA-256', new TextEncoder().encode(str)); 1234 return Array.from(new Uint8Array(buf)).map(x => x.toString(16).padStart(2, '0')).join(''); 1235 } catch (e) { 1236 console.error('Erreur lors du hash SHA256 pour', str, e); 1237 return undefined; 1238 } 1239 } 1240 async function getUserDataHash(user_data) { 1241 const hashObj = {}; 1242 if (!user_data) return hashObj; 1243 try { 1244 if (user_data.email_address) hashObj.email_address = await sha256(user_data.email_address); 1245 if (user_data.phone_number) hashObj.phone_number = await sha256(user_data.phone_number); 1246 if (user_data.address && typeof user_data.address === 'object') { 1247 hashObj.address = {}; 1248 if (user_data.address.first_name) hashObj.address.first_name = await sha256(user_data.address.first_name); 1249 if (user_data.address.last_name) hashObj.address.last_name = await sha256(user_data.address.last_name); 1250 if (user_data.address.street) hashObj.address.street = await sha256(user_data.address.street); 1251 if (user_data.address.city) hashObj.address.city = await sha256(user_data.address.city); 1252 if (user_data.address.region) hashObj.address.region = await sha256(user_data.address.region); 1253 if (user_data.address.postal_code) hashObj.address.postal_code = await sha256(user_data.address.postal_code); 1254 if (user_data.address.country) hashObj.address.country = await sha256(user_data.address.country); 1255 } 1256 } catch (e) { 1257 console.error('Erreur lors du hash user_data_hashed', e); 1258 } 1259 return __AW__filterNullOrEmpty(hashObj); 1260 } 1261 (async function() { 1262 if (window.__AW__CommonData && window.__AW__CommonData.user_data) { 1263 window.__AW__CommonData.user_data_hashed = await getUserDataHash(window.__AW__CommonData.user_data); 1264 } 1265 })(); 1266 1267 window.__AW__CommonData["page_type"] = getPageType(templateName); 1268 window.__AW__CommonData["theme"] = window?.Shopify?.theme; 1269 window[__AW__settings.dataLayerVariableName].push(window.__AW__CommonData); 1270 1271 window[__AW__settings.dataLayerVariableName].push({"event": __AW__getEventNameWithSuffix("page_view")}); 1272 1273 /** DATALAYER: select_item handoff */ 1274 const pendingSelectItemName = "aw_pending_select_item"; 1275 1276 const __AW__pushSelectItem = (payload) => { 1277 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 1278 window[__AW__settings.dataLayerVariableName].push(payload); 1279 }; 1280 1281 const __AW__flushPendingSelectItem = () => { 1282 let pending = null; 1283 try { 1284 pending = sessionStorage.getItem(pendingSelectItemName); 1285 sessionStorage.removeItem(pendingSelectItemName); 1286 } catch (e) { 1287 return; 1288 } 1289 if (!pending) return; 1290 try { 1291 __AW__pushSelectItem(JSON.parse(pending)); 1292 } catch (e) { 1293 console.warn('[AW] pending select_item error', e); 1294 } 1295 }; 1296 1297 __AW__flushPendingSelectItem(); 1298 1299 1300 /** 1301 * DATALAYER: 404 Pages 1302 * Fire on 404 Pages */ 1303 1304 1305 1306 /** 1307 * DATALAYER: Blog Articles 1308 * Fire on Blog Article Pages */ 1309 1310 1311 1312 1313 1314 1315 /** DATALAYER: Product List Page (Collections, Category) 1316 * Fire on all product listing pages. */ 1317 1318 const __AW__transformNumberToString = (value) => { 1319 if (value !== null && value !== undefined && typeof value === 'number') { 1320 return value.toString(); 1321 } 1322 /** By Default return the current value */ 1323 return value; 1324 }; 1325 1326 let discountPrice = 0.00; 1327 1328 1329 /** DATALAYER: Product Page 1330 * Fire on all Product View pages. */ 1331 1332 1333 /** DATALAYER: Cart View 1334 * Fire anytime a user views their cart (non-dynamic) */ 1335 1336 const awEcommerceCart = { 1337 ecommerce: { 1338 currency: "EUR", 1339 value: getFormattedPrice(0), 1340 items:[ 1341 1342 ], 1343 } 1344 }; 1345 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 1346 window[__AW__settings.dataLayerVariableName].push({ 1347 ...{'event': __AW__getEventNameWithSuffix('view_cart')}, 1348 ...awEcommerceCart 1349 }); 1350 1351 1352 let drawerCartAlreadyOpened = false;
1353 let pendingViewCartTimeout = null; 1354 1355 let stateObserver = null; 1356 let domObserver = null; 1357 1358 function initCart() { 1359 fetch(`${window.Shopify?.routes?.root || "/"}cart.js?adw=1&init=1`, { 1360 credentials: 'same-origin', 1361 headers: { 'Accept': 'application/json' } 1362 }).then(r => r.ok ? r.json() : null) 1363 .then(freshCart => { 1364 if (freshCart) { 1365 window.__AW__slaveShopifyCart = freshCart; 1366 } else { 1367 window.__AW__slaveShopifyCart = { items: [] }; 1368 } 1369 __AW__cartReady = true; 1370 }) 1371 .catch(e => { 1372 console.warn('[AW] Cart hydration failed', e); 1373 window.__AW__slaveShopifyCart = { items: [] }; 1374 __AW__cartReady = true; 1375 }); 1376 } 1377 1378 function fireViewCartOncePerOpen() { 1379 if (pendingViewCartTimeout) return; 1380 1381 drawerCartAlreadyOpened = true; 1382 1383 pendingViewCartTimeout = setTimeout(() => { 1384 pendingViewCartTimeout = null; 1385 if (!__AW__cartReady) return; 1386 const ecommerceDataLayer = { 1387 ecommerce: { 1388 currency: window.__AW__slaveShopifyCart.currency, 1389 value: window.__AW__slaveShopifyCart.total_price / 100, 1390 items: window.__AW__slaveShopifyCart.items.map(item => { 1391 const price = (item.discounted_price ?? item.price) / 100; 1392 const discount = (item.price - (item.discounted_price ?? 0)) / 100; 1393 1394 let coupon = ""; 1395 if (Array.isArray(item?.discounts)) { 1396 coupon = item.discounts 1397 .filter(d => typeof d?.title === "string") 1398 .map(d => d.title) 1399 .join(", "); 1400 } 1401 1402 return { 1403 item_id: __AW__transformNumberToString(item.product_id), 1404 item_variant: item.variant_title, 1405 item_variant_title: item.variant_title, 1406 item_variant_id: __AW__transformNumberToString(item.variant_id), 1407 item_product_id: __AW__transformNumberToString(item.product_id), 1408 item_product_title: item.product_title, 1409 item_name: item.product_title, 1410 price, 1411 discount, 1412 item_brand: item.vendor, 1413 item_category: item.product_type, 1414 item_list_name: item.collection || "", 1415 item_list_id: "", 1416 quantity: item.quantity, 1417 sku: __AW__transformNumberToString(item.sku), 1418 coupon, 1419 url: item.url, 1420 selling_plan_id : item?.selling_plan_allocation?.selling_plan?.id, 1421 selling_plan_name : item?.selling_plan_allocation?.selling_plan?.name 1422 1423 }; 1424 }) 1425 } 1426 }; 1427 1428 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 1429 window[__AW__settings.dataLayerVariableName].push({ 1430 event: __AW__getEventNameWithSuffix("view_cart"), 1431 ...ecommerceDataLayer 1432 }); 1433 }, 1000); 1434 } 1435 1436 function resetOnClose() { 1437 drawerCartAlreadyOpened = false; 1438 if (pendingViewCartTimeout) { 1439 clearTimeout(pendingViewCartTimeout); 1440 pendingViewCartTimeout = null; 1441 } 1442 } 1443 1444 function getTargets() { 1445 const cartDrawer = document.querySelector("cart-drawer"); 1446 const dialog = 1447 document.querySelector("cart-drawer dialog") || 1448 document.querySelector("cart-drawer-component dialog") || 1449 document.querySelector("cart-drawer-component dialog[ref='dialog']"); 1450 1451 return { cartDrawer, dialog }; 1452 } 1453 1454 function isCartOpen({ cartDrawer, dialog }) { 1455 const openByDialog = !!dialog && (dialog.open || dialog.hasAttribute("open")); 1456 const openByClass = !!cartDrawer && cartDrawer.classList.contains("active"); 1457 const openByAttr = !!cartDrawer && cartDrawer.hasAttribute("open"); 1458 return openByDialog || openByClass || openByAttr; 1459 } 1460 1461 function attachStateObserver() { 1462 const { cartDrawer, dialog } = getTargets(); 1463 1464 if (stateObserver) stateObserver.disconnect(); 1465 1466 stateObserver = new MutationObserver(() => { 1467 const openNow = isCartOpen(getTargets()); 1468 1469 if (openNow) { 1470 if (!drawerCartAlreadyOpened) fireViewCartOncePerOpen(); 1471 } else { 1472 resetOnClose(); 1473 } 1474 }); 1475 1476 if (cartDrawer) { 1477 stateObserver.observe(cartDrawer, { 1478 attributes: true, 1479 attributeFilter: ["class", "open"] 1480 }); 1481 } 1482 1483 if (dialog) { 1484 stateObserver.observe(dialog, { 1485 attributes: true, 1486 attributeFilter: ["open"] 1487 }); 1488 } 1489 1490 const openNow = isCartOpen(getTargets()); 1491 if (openNow) { 1492 if (!drawerCartAlreadyOpened) fireViewCartOncePerOpen(); 1493 } else { 1494 resetOnClose(); 1495 } 1496 } 1497 1498 function observeCartDrawerOpen() { 1499 attachStateObserver(); 1500 1501 if (domObserver) domObserver.disconnect(); 1502 1503 domObserver = new MutationObserver(() => { 1504 attachStateObserver(); 1505 }); 1506 1507 domObserver.observe(document.documentElement, { 1508 childList: true, 1509 subtree: true 1510 }); 1511 } 1512 1513 observeCartDrawerOpen(); 1514 1515 1516 /** DATALAYER: Search Results */ 1517 var searchPage = new RegExp("search", "g"); 1518 if(document.location.pathname.match(searchPage)){ 1519 var __AW__items = []; 1520 1521 1522 const awEcommerceSearch = { 1523 search_term: null, 1524 results_count: null, 1525 ecommerce: { 1526 currency: "EUR", 1527 items : [] 1528 } 1529 }; 1530 sendBatchEvents(__AW__items, "search", awEcommerceSearch); 1531 } 1532 1533 1534 const cartRegex = /\/cart\/(add|change|update)(\.js|\.json)?(\?.*)?$/; 1535 const pendingCartEventName = "aw_pending_cart_event"; 1536 let awCartQueue = Promise.resolve(); 1537 1538 if(sessionStorage.getItem(pendingCartEventName)) { 1539 scheduleCartSync(); 1540 } 1541 1542 document.addEventListener('click', async function(e) { 1543 const btn = e.target.closest('[href*="/cart/add"], [action*="/cart/add"], button[name="add"]'); 1544 if (!btn || !__AW__cartReady) return; 1545 snapshotCart(); 1546 }, true); 1547 1548 patchFetch(); 1549 patchXhr(); 1550 1551 function snapshotCart() { 1552 try { 1553 sessionStorage.setItem( 1554 pendingCartEventName, 1555 JSON.stringify(window.__AW__slaveShopifyCart ?? { items: [] }) 1556 ); 1557 } catch (e) { 1558 console.warn('[AW] snapshot error', e); 1559 } 1560 } 1561 1562 function patchXhr() { 1563 const nativeSend = typeof XMLHttpRequest === 'function' ? XMLHttpRequest.prototype?.send : null; 1564 if (typeof nativeSend !== 'function' || nativeSend.__AW__patched) return; 1565 1566 XMLHttpRequest.prototype.send = function(body) { 1567 this.addEventListener('load', () => { 1568 try { 1569 const abs = this.responseURL || ''; 1570 const u = new URL(abs, location.origin); 1571 const mt = u.pathname + (u.search || ''); 1572 if (this.status === 200 && cartRegex.test(mt)) { 1573 scheduleCartSync(); 1574 } 1575 } catch (e) { 1576 console.error('[AW] XHR handler error', e); 1577 } 1578 }); 1579 return nativeSend.apply(this, arguments); 1580 }; 1581 1582 XMLHttpRequest.prototype.send.__AW__patched = true; 1583 } 1584 1585 function patchFetch() { 1586 const previousFetch = window.fetch; 1587 if (typeof previousFetch !== 'function' || previousFetch.__AW__patched) return; 1588 1589 window.fetch = async function (...args) { 1590 const resource = args[0]; 1591 try { 1592 1593 const url = resource instanceof Request ? resource.url : resource instanceof URL ? resource.href : String(resource); 1594 if (cartRegex.test(url)) { 1595 const response = await previousFetch.apply(this, args); 1596 if (response.ok) { 1597 scheduleCartSync(); 1598 } else { 1599 console.warn(`Fetch for ${url} failed with status: ${response.status}`); 1600 } 1601 return response; 1602 } 1603 } catch (error) { 1604 console.error('[AW] Fetch Wrapper Error:', error); 1605 } 1606 1607 return previousFetch.apply(this, args); 1608 }; 1609 1610 window.fetch.__AW__patched = true; 1611 } 1612 1613 function scheduleCartSync() { 1614 if (!__AW__cartReady) return; 1615 awCartQueue = awCartQueue 1616 .then(() => { 1617 if (!sessionStorage.getItem(pendingCartEventName)) snapshotCart(); 1618 return runCartSyncOnce(); 1619 }).catch(e => { 1620 console.error('[AW] scheduleCartSync error', e); 1621 }); 1622 } 1623 1624 async function runCartSyncOnce() { 1625 try { 1626 const response = await fetch(`${window.Shopify.routes.root || "/"}cart.js?adw=1`, { 1627 credentials: 'same-origin', 1628 headers: { 'Accept': 'application/json' } 1629 }); 1630 if (!response.ok) throw new Error('HTTP ' + response.status); 1631 const newCart = await response.json(); 1632 await compareCartData(newCart); 1633 } catch (error) { 1634 console.error('[AW] Error fetching /cart.js (singleton):', error); 1635 } 1636 } 1637 1638 function compareCartData(newCartData) { 1639 return new Promise((resolve) => { 1640 setTimeout(() => { 1641 try { 1642 const oldCartData = sessionStorage.getItem(pendingCartEventName) ? JSON.parse(sessionStorage.getItem(pendingCartEventName)) : {items: []}; 1643 newCartData = newCartData || {items: []}; 1644 const cartItemKey = item => `${item.variant_id ?? item.id}:${item.selling_plan_allocation?.selling_plan?.id ?? ''}`; 1645 const oldItems = new Map(oldCartData.items.map(item => [cartItemKey(item), item])); 1646 const newItems = new Map(newCartData.items.map(item => [cartItemKey(item), item])); 1647
1648 newItems.forEach((newItem, key) => { 1649 const oldItem = oldItems.get(key); 1650 const eventName = "add_to_cart"; 1651 if (!oldItem) { 1652 handleCartDataLayer(eventName, newItem.quantity, newItem); 1653 } else if (newItem.quantity > oldItem.quantity) { 1654 handleCartDataLayer(eventName, newItem.quantity - oldItem.quantity, newItem); 1655 } 1656 }); 1657 1658 oldItems.forEach((oldItem, key) => { 1659 const newItem = newItems.get(key); 1660 const eventName = "remove_from_cart"; 1661 if (!newItem) { 1662 handleCartDataLayer(eventName, oldItem.quantity, oldItem); 1663 } else if (oldItem.quantity > newItem.quantity) { 1664 handleCartDataLayer(eventName, oldItem.quantity - newItem.quantity, newItem); 1665 } 1666 }); 1667 1668 sessionStorage.removeItem(pendingCartEventName); 1669 window.__AW__slaveShopifyCart = newCartData; 1670 } catch(e) { 1671 console.error('[AW] compareCartData error', e); 1672 sessionStorage.removeItem(pendingCartEventName); 1673 } finally { 1674 resolve(); 1675 } 1676 }, 500); 1677 }); 1678 } 1679 1680 function handleCartDataLayer(eventName, quantity, item) { 1681 const price = (item.discounted_price ?? item.price) / 100; 1682 const discount = (item.price - (item.discounted_price ?? 0)) / 100; 1683 const totalValue = price * quantity; 1684 let coupon = ""; 1685 if(Array.isArray(item?.discounts)) { 1686 coupon = item.discounts 1687 .filter(discount => typeof discount?.title === 'string') 1688 .map(discount => discount.title) 1689 .join(', '); 1690 } 1691 1692 const ecommerceCart = { 1693 ecommerce: { 1694 currency: "EUR", 1695 value: totalValue, 1696 items: [{ 1697 item_id: __AW__transformNumberToString(item.product_id), 1698 item_variant: item.variant_title || "Default Variant", 1699 item_variant_id: __AW__transformNumberToString(item.variant_id), 1700 item_variant_title: item.variant_title || "Default Variant", 1701 item_name: item.product_title, 1702 item_product_id: __AW__transformNumberToString(item.product_id), 1703 item_product_title: item.product_title, 1704 sku: __AW__transformNumberToString(item.sku), 1705 discount: discount, 1706 price: price, 1707 item_brand: item.vendor, 1708 item_category: item.product_type, 1709 quantity: quantity, 1710 coupon: coupon, 1711 url: item?.url, 1712 selling_plan_id : item?.selling_plan_allocation?.selling_plan?.id, 1713 selling_plan_name : item?.selling_plan_allocation?.selling_plan?.name 1714 }] 1715 } 1716 }; 1717 1718 window[__AW__settings.dataLayerVariableName].push({ ecommerce: null }); 1719 window[__AW__settings.dataLayerVariableName].push({ 1720 ...{ 'event': __AW__getEventNameWithSuffix(eventName) }, 1721 ...ecommerceCart 1722 }); 1723 1724 } 1725 } 1726 1727 if (document.readyState === 'loading') { 1728 // document still loading... 1729 document.addEventListener('DOMContentLoaded', () => { 1730 pushDataLayerEvents(); 1731 }); 1732 } else { 1733 // already loaded, chocs away! 1734 pushDataLayerEvents(); 1735 } 1736 } 1737 }, 0); 1738</script>
1738 1739 1740 1741<!-- END app block --><!-- BEGIN app block: shopify://apps/regios-discounts/blocks/regios_add_to_cart_embed/dc1514bb-4830-4102-bffa-e8b300bac5bd -->
1741<script> 1742 window.RegiosDOPP_AddToCart = window.RegiosDOPP_AddToCart || { 1743 reloadInUnsupportedThemes: true, 1744 maxRetries: null, 1745 reAddAfterManualRemoval: false, 1746 }; 1747</script>
1747 1748 1749 1750 1751<!-- END app block --><!-- BEGIN app block: shopify://apps/yotpo-product-reviews/blocks/settings/eb7dfd7d-db44-4334-bc49-c893b51b36cf --> 1752 1753 1754
1754<script type="text/javascript" src="https://cdn-widgetsrepository.yotpo.com/v1/loader/gLTEH61CavIahnKMBUMow8H10Up5GsgD5uocpXc1?languageCode=fr" async></script>
1754 1755 1756 1757 1758 1759<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772
1772<script async src="https://static.klaviyo.com/onsite/js/VVuEpA/klaviyo.js?company_id=VVuEpA"></script>
1772 1773
1773<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
1773 1774 1775 1776 1777 1778 1779 1780
1780<script> 1781 window.klaviyoReviewsProductDesignMode = false 1782 </script>
1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792<!-- END app block --><!-- BEGIN app block: shopify://apps/iadvize-ai-shopping-assistant/blocks/iadvize-tag/97672039-3647-476c-9ad9-4f6daaa2d3e4 --><!-- START IADVIZE LIVECHAT --> 1793
1794<script> 1795 1796function loadIAdvize() { 1797 if (window.__idzLoaded) return; 1798 window.__idzLoaded = true; 1799 1800 function fromShopifyToIAdvizePageType(shopifyPageType) { 1801 if (!shopifyPageType) { 1802 return 'OTHER_PAGE'; 1803 } 1804 1805 switch (shopifyPageType.toLowerCase()) { 1806 case 'index': 1807 case 'home': 1808 return 'HOME_PAGE'; 1809 case 'collection': 1810 return 'CATEGORY_PAGE'; 1811 case 'product': 1812 return 'PRODUCT_DETAIL_PAGE'; 1813 case 'cart': 1814 return 'CART_PAGE'; 1815 case 'checkout': 1816 return 'CHECKOUT_PAGE'; 1817 case 'account': 1818 return 'ACCOUNT_PAGE'; 1819 case 'search': 1820 return 'SEARCH_PAGE'; 1821 case 'signup': 1822 return 'SIGNUP_PAGE'; 1823 case 'page': 1824 return 'CONTENT_PAGE'; 1825 case 'info': 1826 return 'INFO_PAGE'; 1827 default: 1828 return 'OTHER_PAGE'; 1829 } 1830 } 1831 1832 window.iAdvizeInterface = window.iAdvizeInterface || []; 1833 window.iAdvizeInterface.config = { 1834 sid: 9464 1835 }; 1836 1837 // Implement Add-to-Cart callback for iAdvize 1838 window.iAdvizeInterface.push(function(iAdvize) { 1839 const iadvizePageType = fromShopifyToIAdvizePageType(ShopifyAnalytics.meta.page.pageType); 1840 const productId = null ; 1841 const customData = {}; 1842 1843 if (iadvizePageType === 'PRODUCT_DETAIL_PAGE') { 1844 customData.page_type = 'product'; 1845 } 1846 1847 if (iadvizePageType) { 1848 customData.iadvize_page_type = iadvizePageType; 1849 } 1850 1851 if (productId) { 1852 customData.product_id = productId; 1853 } 1854 1855 if (Object.keys(customData).length > 0) { 1856 iAdvize.set('customData', customData); 1857 } 1858 1859 // Listen for navigation events and update variant 1860 iAdvize.on('tag:eventsChange', function(events) { 1861 try { 1862 if (Array.isArray(events)) { 1863 events.forEach(function(event) { 1864 if (event.type === 'data-pipeline' && event.event === 'visitor.navigate') { 1865 // Visitor navigated, update variant 1866 setTimeout(function() { 1867 const form = document.querySelector('form[id*="product"], [data-product-form]'); 1868 const variantInput = form?.querySelector('input[name="id"][type="hidden"]'); 1869 const currentVariant = variantInput?.value; 1870 1871 if (currentVariant) { 1872 const existingCustomData = iAdvize.get('customData') || {}; 1873 iAdvize.set('customData', { 1874 ...existingCustomData, 1875 product_id: currentVariant, 1876 iadvize_page_type: 'PRODUCT_DETAIL_PAGE' 1877 }); 1878 } 1879 }, 100); 1880 } 1881 }); 1882 } 1883 } catch (e) { 1884 // Ignore errors 1885 } 1886 }); 1887 1888 // register product id watcher, to react to variant changes 1889 (function initVariantObserver(){ 1890 try { 1891 if (window.__idzVariantObserverStarted) return; // avoid duplicates 1892 window.__idzVariantObserverStarted = true; 1893 1894 let lastVariantId = null; 1895 const getVariantId = function() { 1896 try { 1897 const variantParam = document.location.search.replace('?', '').split('&').map((param) => param.split('=')).find(([key, value]) => { 1898 return (key === 'variant' && value) 1899 }); 1900 1901 return (variantParam && variantParam[1]) || null; 1902 } catch (e) { 1903 return null; 1904 } 1905 }; 1906 1907 const onChange = function(newId) { 1908 // Update iAdvize custom data with the new product/variant id 1909 iAdvize.set('customData', { product_id: newId }); 1910 }; 1911 1912 setInterval(function(){ 1913 const current = getVariantId(); 1914 if (current !== lastVariantId && current != null) { 1915 lastVariantId = current; 1916 onChange(current); 1917 } 1918 }, 250); 1919 1920 // Trigger immediately if value already present 1921 const initial = getVariantId(); 1922 if (initial != null) {
1923 lastVariantId = initial; 1924 onChange(initial); 1925 } 1926 1927 } catch (e) { 1928 // fail-safe: do nothing if observer setup fails 1929 } 1930 })(); 1931 1932 1933 // Register the callback for Add-to-Cart events 1934 iAdvize.labs().onAddToCart((itemId) => { 1935 return new Promise((resolve, reject) => { 1936 // From here, the loading state is automatically enabled 1937 1938 // Use Shopify's Ajax API to add the item to cart 1939 fetch('/cart/add.js', { 1940 method: 'POST', 1941 headers: { 1942 'Content-Type': 'application/json', 1943 }, 1944 body: JSON.stringify({ 1945 id: itemId, 1946 quantity: 1 1947 }) 1948 }) 1949 .then(response => { 1950 if (response.ok) { 1951 return response.json(); 1952 } 1953 throw new Error('Network response was not ok'); 1954 }) 1955 .then(data => { 1956 // Successfully added to cart 1957 resolve(true); 1958 }) 1959 .catch(error => { 1960 console.error('Error adding product to cart:', error); 1961 resolve(false); 1962 }); 1963 }); 1964 }); 1965 }); 1966 const script = document.createElement("script"); 1967 1968 script.src = "//halc.iadvize.com/iadvize.js"; 1969 1970 (function() { 1971 if (document.body) { 1972 document.body.append(script); 1973 return; 1974 } 1975 const deadline = Date.now() + 10000; 1976 const intervalId = setInterval(function() { 1977 if (document.body) { 1978 clearInterval(intervalId); 1979 document.body.append(script); 1980 } else if (Date.now() >= deadline) { 1981 clearInterval(intervalId); 1982 } 1983 }, 250); 1984 })(); 1985 } 1986 1987 (function() { 1988 const region = 'FR'; 1989 const consentMode = 'always'; 1990 const hasConsentApi = !!(window.Shopify && window.Shopify.loadFeatures); 1991 const POLL_INTERVAL_MS = 250; 1992 const POLL_MAX_MS = 10000; 1993 1994 function checkConsent() { 1995 const cp = window.Shopify && window.Shopify.customerPrivacy; 1996 return cp && cp.preferencesProcessingAllowed() && cp.analyticsProcessingAllowed(); 1997 } 1998 1999 let pollIntervalId = null; 2000 function stopPolling() { 2001 if (pollIntervalId !== null) { 2002 clearInterval(pollIntervalId); 2003 pollIntervalId = null; 2004 } 2005 } 2006 2007 function grantAndLoad() { 2008 stopPolling(); 2009 document.removeEventListener('visitorConsentCollected', onConsentCollected); 2010 loadIAdvize(); 2011 } 2012 2013 // Registered upfront â catches CMP events even if loadFeatures callback fires 2014 // late or not at all (known Shopify issue on some shops). 2015 function onConsentCollected(event) { 2016 if (event.detail.analyticsAllowed && event.detail.preferencesAllowed) { 2017 grantAndLoad(); 2018 } 2019 } 2020 document.addEventListener('visitorConsentCollected', onConsentCollected); 2021 2022 // 'never': embed stays inert. iAdvize is loaded outside Shopify (CMP / tag 2023 // manager), which is the source of truth. Do nothing. 2024 if (consentMode === 'never') { 2025 stopPolling(); 2026 document.removeEventListener('visitorConsentCollected', onConsentCollected); 2027 return; 2028 } 2029 2030 // 'always': load immediately, never gate on Shopify consent. 2031 if (consentMode === 'always') { 2032 grantAndLoad(); 2033 return; 2034 } 2035 2036 // 'auto' (legacy default): US loads immediately; fail-open when the consent 2037 // API is unavailable. Other regions fall through to the consent-required path. 2038 if (consentMode === 'auto' && (region === 'US' || !hasConsentApi)) { 2039 grantAndLoad(); 2040 return; 2041 } 2042 2043 // 'sync', or non-US 'auto': require Shopify consent. Load now if already 2044 // granted, otherwise rely on the upfront listener + poll + loadFeatures 2045 // fallback below. 'sync' is fail-closed: if consent is never granted (or the 2046 // API is absent) the tag does not fire â clients whose CMP doesn't sync with 2047 // Shopify should use 'always' or 'never' instead. 2048 if (checkConsent()) { 2049 grantAndLoad(); 2050 return; 2051 } 2052 2053 // Without Shopify's consent API there is nothing to poll or load. We reach 2054 // here only in 'sync' mode (non-US 'auto' with no API loaded immediately 2055 // above), so stay fail-closed: the tag does not fire. The upfront listener 2056 // remains registered in case the CMP populates consent later. 2057 if (!hasConsentApi) { 2058 return; 2059 } 2060 2061 // Poll customerPrivacy for late population (some CMPs write async without 2062 // firing visitorConsentCollected, and Shopify.loadFeatures callback may 2063 // never fire on affected shops). Listener stay active past deadline. 2064 const deadline = Date.now() + POLL_MAX_MS; 2065 pollIntervalId = setInterval(function() { 2066 if (checkConsent()) { 2067 grantAndLoad(); 2068 return; 2069 } 2070 if (Date.now() >= deadline) { 2071 stopPolling(); 2072 } 2073 }, POLL_INTERVAL_MS); 2074 2075 window.Shopify.loadFeatures( 2076 [{ name: 'consent-tracking-api', version: '0.1' }], 2077 function(error) { 2078 if (error) { 2079 // Fail open for legacy 'auto' (preserve prior behavior); stay 2080 // fail-closed for 'sync'. 2081 if (consentMode === 'auto') { 2082 grantAndLoad(); 2083 } 2084 } else if (checkConsent()) { 2085 grantAndLoad(); 2086 } 2087 } 2088 ); 2089 })(); 2090</script>
2090 2091 2092<!-- END IADVIZE LIVECHAT --> 2093 2094 2095<!-- END app block -->
2095<script src="https://cdn.shopify.com/extensions/01a0d067-22bb-70e7-ab2c-d9c2f3a42271/regios-automatic-discounts-1510/assets/regios_discounts_embed.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 2095
2095
2096<script src="https://cdn.shopify.com/extensions/01a0d067-22bb-70e7-ab2c-d9c2f3a42271/regios-automatic-discounts-1510/assets/regios_add_to_cart_embed.js" type="text/javascript" defer="defer"></script>
2096 2097<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
2098<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 107173183826,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "cart"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 2098
2098
2099<script> 2100 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 2101</script>
vendor: 1 bytes, line 2101
2101
2102<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
2102).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 107173183826,storefrontBaseUrl: "https://fr.melvita.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://fr.melvita.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["16072cab","8450a54b"],webPixelsConfigList: [{"id":"5821694290","configuration":"{\"cart_viewed\":\"true\",\"checkout_address_info_submitted\":\"true\",\"checkout_completed\":\"true\",\"checkout_contact_info_submitted\":\"true\",\"checkout_shipping_info_submitted\":\"true\",\"checkout_started\":\"true\",\"collection_viewed\":\"true\",\"page_viewed\":\"true\",\"payment_info_submitted\":\"true\",\"product_added_to_cart\":\"true\",\"product_removed_from_cart\":\"true\",\"product_viewed\":\"true\",\"search_submitted\":\"true\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"4b912d4db8d67578541bfae8b70a40a9","type":"APP","apiClientId":100317265921,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]}
2102,"dataSharingState":"unrestricted"},{"id":"5821661522","configuration":"{\"joinDomain\":\"melvita\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"aba44f25bef6b6f9c5cce3989ad88990","type":"APP","apiClientId":111364603905,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"5761958226","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-E3KFRWX15F\\\",\\\"GT-W6VNBNKS\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-E3KFRWX15F\\\"},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-E3KFRWX15F\\\"},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-E3KFRWX15F\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-E3KFRWX15F\\\",\\\"MC-2N5E5MQZ09\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-E3KFRWX15F\\\",\\\"MC-2N5E5MQZ09\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-E3KFRWX15F\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-E3KFRWX15F\\\",\\\"MC-2N5E5MQZ09\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-E3KFRWX15F\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-E3KFRWX15F\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-E3KFRWX15F\\\"},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-E3KFRWX15F\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"5741314386","configuration":"{\"pixel_id\":\"2201243340146442\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"5554143570","configuration":"{\"projectId\":\"9464\", \"platform\": \"ha\", \"transactionEndpoint\": \"https:\/\/api.iadvize.com\/engagement\/short-conversions?platform=ha\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"02fbb4bc7ea3748896c6dc59ec131b8a","type":"APP","apiClientId":86693281793,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"5134877010","configuration":"{\"accountID\":\"VVuEpA\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"351895890","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"Pixel Addingwell"},{"id":"355369298","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"10","type":"CUSTOM","privacyPurposes":[],"name":"Affilae - Purchase"},{"id":"366477650","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"Kolsquare"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Melvita","paymentSettings":{"currencyCode":"EUR"},"myshopifyDomain":"melvita2026.myshopify.com","countryCode":"FR","storefrontUrl":"https:\/\/fr.melvita.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"
210210926775075154","handle":"eau-extraordinaire-source-de-roses","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53940039090514","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://fr.melvita.com/cdn","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"202104996178","themePublished":"true","eventMetadataId":"5ef70ba6-82a8-4687-ab51-5fe0d64dcd7c","pageType":"cart","shopId":"107173183826","storefrontBaseUrl":"https:\/\/fr.melvita.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
2102<script> 2103 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 2104 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 2105 window.ShopifyAnalytics.meta.currency = 'EUR'; 2106 var meta = {"page":{"pageType":"cart","requestId":"7587a61f-692a-4d96-9e6c-8cb2495e6e5f-1790362383"}}; 2107 for (var attr in meta) { 2108 window.ShopifyAnalytics.meta[attr] = meta[attr]; 2109 } 2110</script>
vendor: 1 bytes, line 2110
2110
2111<script class="analytics"> 2112 (function () { 2113 var customDocumentWrite = function(content) { 2114 var jquery = null; 2115 2116 if (window.jQuery) { 2117 jquery = window.jQuery; 2118 } else if (window.Checkout && window.Checkout.$) { 2119 jquery = window.Checkout.$; 2120 } 2121 2122 if (jquery) { 2123 jquery('body').append(content); 2124 } 2125 }; 2126 2127 var hasLoggedConversion = function(token) { 2128 if (token) { 2129 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 2130 } 2131 return false; 2132 } 2133 2134 var setCookieIfConversion = function(token) { 2135 if (token) { 2136 var twoMonthsFromNow = new Date(Date.now()); 2137 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 2138 2139 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 2140 } 2141 } 2142 2143 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 2144 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 2145 if (trekkie.integrations) { 2146 return; 2147 } 2148 trekkie.methods = [ 2149 'identify', 2150 'page', 2151 'ready', 2152 'track', 2153 'trackForm', 2154 'trackLink' 2155 ]; 2156 trekkie.factory = function(method) { 2157 return function() { 2158 var args = Array.prototype.slice.call(arguments); 2159 args.unshift(method); 2160 trekkie.push(args); 2161 if (method == 'track' || method == 'page') { 2162 var pageUrl; 2163 try { 2164 pageUrl = window.location.href; 2165 } catch (e) {} 2166 var pageReferrer; 2167 try { 2168 pageReferrer = document.referrer; 2169 } catch (e) {} 2170 try { 2171 if (window.__TREKKIE_SHIM_QUEUE == null) { 2172 window.__TREKKIE_SHIM_QUEUE = []; 2173 } 2174 window.__TREKKIE_SHIM_QUEUE.push({ 2175 from: 'trekkie-stub', 2176 method: method, 2177 args: args.slice(1), 2178 pageContext: { 2179 url: pageUrl, 2180 referrer: pageReferrer 2181 } 2182 }); 2183 } catch (e) { 2184 // no-op 2185 } 2186 } 2187 return trekkie; 2188 }; 2189 }; 2190 for (var i = 0; i < trekkie.methods.length; i++) { 2191 var key = trekkie.methods[i]; 2192 trekkie[key] = trekkie.factory(key); 2193 } 2194 trekkie.load = function(config) { 2195 trekkie.config = config || {}; 2196 trekkie.config.initialDocumentCookie = document.cookie; 2197 var first = document.getElementsByTagName('script')[0]; 2198var script = document.createElement('script'); 2199script.type = 'text/javascript'; 2200script.onerror = function(e) { 2201 var scriptFallback = document.createElement('script'); 2202 scriptFallback.type = 'text/javascript'; 2203 scriptFallback.onerror = function(error) { 2204 var Monorail = { 2205 produce: function produce(monorailDomain, schemaId, payload) { 2206 var currentMs = new Date().getTime(); 2207 var event = { 2208 schema_id: schemaId, 2209 payload: payload, 2210 metadata: { 2211 event_created_at_ms: currentMs, 2212 event_sent_at_ms: currentMs 2213 } 2214 }; 2215 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 2216 }, 2217 sendRequest: function sendRequest(endpointUrl, payload) { 2218 // Try the sendBeacon API 2219 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 2220 var blobData = new window.Blob([payload], { 2221 type: 'text/plain' 2222 }); 2223 2224 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 2225 return true; 2226 } // sendBeacon was not successful 2227 2228 } // XHR beacon 2229 2230 var xhr = new XMLHttpRequest(); 2231 2232 try { 2233 xhr.open('POST', endpointUrl); 2234 xhr.setRequestHeader('Content-Type', 'text/plain'); 2235 xhr.send(payload); 2236 } catch (e) { 2237 console.log(e); 2238 } 2239 2240 return false; 2241 }, 2242 isIos12: function isIos12() { 2243 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 2244 } 2245 }; 2246 Monorail.produce('monorail-edge.shopifysvc.com', 2247 'trekkie_storefront_load_errors/1.1', 2248 {shop_id: 107173183826, 2249 theme_id: 202104996178, 2250 app_name: "storefront", 2251 context_url: window.location.href, 2252 source_url: "//fr.melvita.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"}); 2253 2254 }; 2255 scriptFallback.async = true; 2256 scriptFallback.src = '//fr.melvita.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 2257 first.parentNode.insertBefore(scriptFallback, first); 2258}; 2259script.async = true; 2260script.src = '//fr.melvita.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 2261first.parentNode.insertBefore(script, first); 2262 2263 }; 2264 trekkie.load( 2265 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":107173183826,"isMerchantRequest":null,"themeId":202104996178,"themeCityHash":"9498158764090115809","contentLanguage":"fr","currency":"EUR","eventMetadataId":"5ef70ba6-82a8-4687-ab51-5fe0d64dcd7c"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 2266 ); 2267 2268 var loaded = false;
2269 trekkie.ready(function() { 2270 if (loaded) return; 2271 loaded = true; 2272 2273 window.ShopifyAnalytics.lib = window.trekkie; 2274 2275 var originalDocumentWrite = document.write; 2276 document.write = customDocumentWrite; 2277 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 2278 document.write = originalDocumentWrite; 2279 2280 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 2281 var token = match? match[1]: undefined; 2282 if (!hasLoggedConversion(token)) { 2283 setCookieIfConversion(token); 2284 2285 } 2286 }); 2287 2288 window.ShopifyAnalytics.lib.page(null,{"pageType":"cart","requestId":"7587a61f-692a-4d96-9e6c-8cb2495e6e5f-1790362383","shopifyEmitted":true}); 2289 2290 var eventsListenerScript = document.createElement('script'); 2291 eventsListenerScript.async = true; 2292 eventsListenerScript.src = "//fr.melvita.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 2293 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 2294})();</script>
vendor: 1 bytes, line 2294
2294
2295<script 2296 defer 2297 src="https://fr.melvita.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 2298 data-application="storefront-renderer" 2299 data-shop-id="107173183826" 2300 data-render-region="gcp-us-west1" 2301 data-page-type="cart" 2302 data-theme-instance-id="202104996178" 2303 data-theme-name="Axome - Melvita" 2304 data-theme-version="1.0.0" 2305 data-monorail-region="shop_domain" 2306 data-resource-timing-sampling-rate="10" 2307 data-shs="true" 2308 data-shs-beacon="true" 2309 data-shs-export-with-fetch="true" 2310 data-shs-logs-sample-rate="1" 2311 data-shs-beacon-endpoint="https://fr.melvita.com/api/collect" 2312></script>
vendor: 1 bytes, line 2312
2312
2313<script src="https://cdn.shopify.com/storefront/web-components/account.js" type="module" crossorigin fetchpriority="low" async></script>
2313<script id="shopify-customer-account-data" type="application/json">{"customer":null,"shop":{"id":"107173183826","customerAccountTranslations":[{"key":"account_menu.signed_out_state.sheet_title","value":"Se connecter ou créer un compte"},{"key":"account_menu.signed_out_state.section_divider","value":"Autres moyens de connexion"},{"key":"account_menu.signed_out_state.alternate_divider","value":"OR"},{"key":"account_menu.signed_out_state.email_field_label","value":"E-mail"},{"key":"account_menu.signed_out_state.orders_button","value":"Commandes"},{"key":"account_menu.signed_out_state.profile_button","value":"Profil"},{"key":"account_menu.signed_out_state.shop_login_button","value":"Se connecter avec Shop"},{"key":"account_menu.signed_out_state.continue_with_google","value":"Continuer avec Google"},{"key":"account_menu.signed_out_state.continue_with_facebook","value":"Continuer avec Facebook"},{"key":"account_menu.signed_out_state.marketing_consent_label","value":"Envoyez-moi des nouvelles et des offres par e-mail"},{"key":"account_menu.signed_in_state.greeting_with_name","value":"Bonjour, {{first_name}}"},{"key":"account_menu.signed_in_state.greeting_without_name","value":"Compte"},{"key":"account_menu.signed_in_state.orders_button","value":"Commandes"},{"key":"account_menu.signed_in_state.profile_button","value":"Profil"},{"key":"account_menu.location_picker.sheet_title","value":"Emplacements"},{"key":"account_menu.location_picker.search_field_placeholder","value":"Rechercher"},{"key":"account_menu.aria_labels.close_menu","value":"Fermer le menu"},{"key":"account_menu.aria_labels.back_to_main_menu","value":"Retour au menu principal depuis {{title}}"},{"key":"account_menu.aria_labels.open_submenu","value":"{{title}}, ouvre le sous-menu"},{"key":"account_menu.aria_labels.loading_menu","value":"Chargement du menu"},{"key":"account_menu.aria_labels.account","value":"Compte"},{"key":"account_menu.aria_labels.sign_in_with_email","value":"Se connecter avec e-mail"},{"key":"account_menu.aria_labels.sign_in","value":"Se connecter"}],"socialLoginProviders":[{"handle":"Shop"}],"legacyCustomerAccounts":false,"signInLinksVisible":true,"b2bEnabled":false,"marketingConsentSigninEnabled":true,"marketingConsentPreselected":false},"visitor":{"country":"FR","language":"fr"}}</script>
2313 2314<meta name="shopify-y" content="f063604a-0d46-4fa7-b973-615eb27a3ca9" data-expiration="1821919983000"><meta name="shopify-s" content="72853eb4-fe78-4791-805b-498882869189" data-expiration="1790364183000"><meta name="new-cookie-storage-activated" content="t"> 2315</head> 2316 2317 2318 2319 <body class="features--zoom-image "><template id="drawer-default-template"> 2320 <div part="base"> 2321 <div part="overlay"></div> 2322 2323 <div part="content"> 2324 <header part="header"> 2325 <dialog-close-button style="display: contents"> 2326 <button type="button" part="close-button"> 2327 <span class="sr-only" part="sr-only">Fermer</span><svg aria-hidden="true" focusable="false" width="10" class="icon icon-close" part="icon" fill="none" viewBox="0 0 10 10"> 2328 <path stroke="currentColor" d="m1 1 8 8m0-8L1 9" /> 2329 </svg></button> 2330 </dialog-close-button> 2331 2332 <slot name="header"></slot> 2333 </header> 2334 2335 <div part="body"> 2336 <slot></slot> 2337 </div> 2338 2339 <footer part="footer"> 2340 <slot name="footer"></slot> 2341 </footer> 2342 </div> 2343 </div> 2344</template><template id="drawer-popover-default-template"> 2345 <div part="base"> 2346 <div part="overlay"></div> 2347 2348 <div part="content"> 2349 <header part="header"> 2350 <dialog-close-button style="display: contents"> 2351 <button type="button" part="close-button"> 2352 <span class="sr-only" part="sr-only">Fermer</span><svg aria-hidden="true" focusable="false" width="10" class="icon icon-close" part="icon" fill="none" viewBox="0 0 10 10"> 2353 <path stroke="currentColor" d="m1 1 8 8m0-8L1 9" /> 2354 </svg></button> 2355 </dialog-close-button> 2356 2357 <slot name="header"></slot> 2358 </header> 2359 2360 <div part="body"> 2361 <slot></slot> 2362 </div> 2363 </div> 2364 </div> 2365</template><template id="modal-default-template"> 2366 <div part="base"> 2367 <div part="overlay"></div> 2368 2369 <div part="content"> 2370 <slot name="image"></slot> 2371 2372 <div part="body"> 2373 <dialog-close-button style="display: contents"> 2374 <button type="button" part="close-button"> 2375 <span class="sr-only" part="sr-only">Fermer</span><svg aria-hidden="true" focusable="false" width="10" class="icon icon-close" part="icon" fill="none" viewBox="0 0 10 10"> 2376 <path stroke="currentColor" d="m1 1 8 8m0-8L1 9" /> 2377 </svg></button> 2378 </dialog-close-button> 2379 2380 <slot></slot> 2381 </div> 2382 </div> 2383 </div> 2384</template><template id="popover-default-template"> 2385 <div part="base"> 2386 <div part="overlay"></div> 2387 2388 <div part="content"> 2389 <header part="header"> 2390 <slot name="header"></slot> 2391 2392 <dialog-close-button style="display: contents"> 2393 <button type="button" part="close-button"> 2394 <span class="sr-only" part="sr-only">Fermer</span><svg aria-hidden="true" focusable="false" width="10" class="icon icon-close" part="icon" fill="none" viewBox="0 0 10 10"> 2395 <path stroke="currentColor" d="m1 1 8 8m0-8L1 9" /> 2396 </svg></button> 2397 </dialog-close-button> 2398 </header> 2399 2400 <div part="body"> 2401 <slot></slot> 2402 </div> 2403 </div> 2404 </div> 2405</template><template id="simple-popover-default-template"> 2406 <div part="base"> 2407 <div part="overlay"></div> 2408 2409 <div part="content"> 2410 <dialog-close-button style="display: contents"> 2411 <button type="button" part="close-button overlaid-close-button"> 2412 <span class="sr-only" part="sr-only">Fermer</span><svg aria-hidden="true" focusable="false" width="10" class="icon icon-close" part="icon" fill="none" viewBox="0 0 10 10"> 2413 <path stroke="currentColor" d="m1 1 8 8m0-8L1 9" /> 2414 </svg></button> 2415 </dialog-close-button> 2416 2417 <div part="body"> 2418 <slot></slot> 2419 </div> 2420 </div> 2421 </div> 2422</template><template id="video-media-default-template"> 2423 <slot></slot> 2424 2425 <div part="play-button"><svg aria-hidden="true" focusable="false" width="12" class="icon icon-play-triangle" part="icon" fill="none" viewBox="0 0 12 17"> 2426 <path fill="#ffffff" d="M1.783 15.889A1 1 0 0 1 .2 15.076V1.148A1 1 0 0 1 1.783.335l9.71 6.964a1 1 0 0 1 0 1.626l-9.71 6.964Z"/> 2427 </svg></div> 2428</template><loading-bar class="loading-bar" aria-hidden="true"></loading-bar> 2429 2430 <a href="#main" allow-hash-change class="skip-to-content sr-only">Passer au contenu</a>
2430<div class="sr-only" role="status" aria-live="polite" aria-atomic="true"> 2431 <span id="status-announcement"></span> 2432 </div> 2433 2434 <div class="sr-only" role="alert" aria-live="assertive" aria-atomic="true"> 2435 <span id="error-announcement"></span> 2436 </div> 2437 2438 <span id="header-scroll-tracker" style="position: absolute; width: 1px; height: 1px; top: 200px; left: 0;"></span><!-- BEGIN sections: header-group --> 2439<aside id="shopify-section-sections--30543191376210__announcement-bar" class="shopify-section shopify-section-group-header-group shopify-section--announcement-bar"><style> 2440 :root { 2441 --announcement-bar-is-sticky: 0; 2442 }</style> 2443 2444 <div class="color-scheme color-scheme--scheme-5"> 2445 <height-observer variable="announcement-bar"><announcement-bar id="carousel-sections--30543191376210__announcement-bar" allow-swipe cell-selector=".announcement-bar__message-list > *" autoplay="5" class="announcement-bar"><carousel-prev-button aria-controls="carousel-sections--30543191376210__announcement-bar"> 2446 <button type="button" class="tap-area"> 2447 <span class="sr-only">Précédent</span> 2448 <svg xmlns="http://www.w3.org/2000/svg" width="13" height="11" viewB
2448ox="0 0 11 8" fill="none"> 2449 <path d="M3.82703 6.59355L0.707031 3.47355L3.82703 0.353546" stroke="currentColor" stroke-miterlimit="10"/> 2450 <path d="M0.707031 3.4736H10.707" stroke="currentColor" stroke-miterlimit="10"/> 2451 </svg> 2452 </button> 2453 </carousel-prev-button><div class="announcement-bar__message-list"><div class="is-selected prose prose-justify-center" > 2454 <p class="text-xs">Faites-vous plaisir : -20% sur tout le site* | Code FRENCHDAYS</p> 2455 </div><div class=" prose prose-justify-center" > 2456 <p class="text-xs">Livraison offerte dès 49⬠d'achat</p> 2457 </div><div class=" prose prose-justify-center" > 2458 <p class="text-xs">Votre programme de fidélité revient bientôt</p> 2459 </div></div><carousel-next-button aria-controls="carousel-sections--30543191376210__announcement-bar"> 2460 <button type="button" class="tap-area"> 2461 <span class="sr-only">Suivant</span> 2462 <svg xmlns="http://www.w3.org/2000/svg" width="13" height="11" viewB
2462ox="0 0 11 8" fill="none"> 2463 <path d="M7.17297 6.59355L10.293 3.47355L7.17297 0.353546" stroke="currentColor" stroke-miterlimit="10"/> 2464 <path d="M10.293 3.4736H0.292969" stroke="currentColor" stroke-miterlimit="10"/> 2465 </svg> 2466 </button> 2467 </carousel-next-button></announcement-bar> 2468 </height-observer> 2469 </div> 2470 2471
2471<script> 2472 document.documentElement.style.setProperty('--announcement-bar-height', `${Math.round(document.getElementById('shopify-section-sections--30543191376210__announcement-bar').clientHeight)}px`); 2473 </script>
2473 2474</aside><header id="shopify-section-sections--30543191376210__header" class="shopify-section shopify-section-group-header-group shopify-section--header"><style> 2475 :root { 2476 --header-is-sticky: 1; 2477 --header-is-visible: 1; 2478 } 2479 2480 #shopify-section-sections--30543191376210__header {--header-grid: "primary-nav logo secondary-nav" "search search search" / minmax(0, 1fr) auto minmax(0, 1fr);--header-transparent-header-text-color: 255 255 255; 2481 --header-non-transparent-text-color: 17 13 14; 2482 } 2483 2484 @media screen and (min-width: 1000px) { 2485 #shopify-section-sections--30543191376210__header {--header-grid: "logo primary-nav secondary-nav" / auto minmax(0, 1fr) auto;} 2486 }#shopify-section-sections--30543191376210__header { 2487 position: sticky; 2488 top: 0; 2489 } 2490 2491 .shopify-section--announcement-bar ~ #shopify-section-sections--30543191376210__header { 2492 top: calc(var(--announcement-bar-is-sticky, 0) * var(--announcement-bar-height, 0px)); 2493 }#shopify-section-sections--30543191376210__header { 2494 --header-logo-width: 95px; 2495 } 2496 2497 @media screen and (min-width: 700px) { 2498 #shopify-section-sections--30543191376210__header { 2499 --header-logo-width: 110px; 2500 } 2501 }#shopify-section-sections--30543191376210__header .header { 2502 --highlight-link-background: #f0f1f2; 2503 --highlight-link-text-color: #110d0e; 2504 --highlight-link-background-hover: #6b0000; 2505 --highlight-link-text-color-hover: #ffffff; 2506 } 2507 2508 :root:has(.shopify-section:first-child [allow-transparent-header]):not(:has(.shopify-section--header ~ .shopify-section-group-header-group)) #shopify-section-sections--30543191376210__header .header:not(.is-solid, :has([open])) { 2509 --highlight-link-background: #6b0000; 2510 --highlight-link-text-color: #ffffff; 2511 --highlight-link-background-hover: #f0f1f2; 2512 --highlight-link-text-color-hover: #110d0e; 2513 }.header__primary-nav > ul > li > :is(a, span, button) { 2514 font: var(--button-font); 2515 letter-spacing: var(--button-letter-spacing); 2516 text-transform: var(--button-text-transform); 2517 }.header__dropdown-menu :is(span, button) { 2518 display: grid; 2519 grid-auto-flow: column; 2520 justify-content: space-between; 2521 align-items: center; 2522 padding: .4rem 1.75rem; 2523 text-align: start; 2524 } 2525 2526 .header__dropdown-menu:has(.header__dropdown-menu) :is(span, button) { 2527 grid-template-columns: minmax(0, 1fr) 1.5rem; 2528 } 2529 2530 .header__dropdown-menu .header__dropdown-menu :is(span, button) { 2531 grid-template-columns: auto; 2532 } 2533 2534 .header__dropdown-menu :is(span, button):where(:hover, :has(~ [open])) .icon-chevron-right { 2535 transform: translateX(4px); 2536 }.menu-link-static { 2537 cursor: default; 2538 } 2539 2540 .menu-link-static:is(.link, .link-reversed):hover { 2541 background-size: 0 1px; 2542 } 2543 2544 .menu-link-static.link-faded:hover { 2545 color: rgb(var(--text-color) / .6); 2546 } 2547 2548 .menu-link-static.link-faded-reverse:hover { 2549 color: rgb(var(--text-color)); 2550 } 2551 2552 .menu-link-static.header__nav-highlight:hover { 2553 background-color: var(--highlight-link-background); 2554 color: var(--highlight-link-text-color); 2555 } 2556 2557 .header__nav-highlight { 2558 background-color: var(--highlight-link-background); 2559 color: var(--highlight-link-text-color); 2560 border-radius: 4px; 2561 padding: .25rem .5rem; 2562 margin-block: -.375rem; 2563 transition: background-color .2s ease-in-out, color .2s ease-in-out; 2564 } 2565 2566 .header__nav-highlight:hover { 2567 background-color: var(--highlight-link-background-hover); 2568 color: var(--highlight-link-text-color-hover); 2569 } 2570 2571 .menu-drawer__link-highlight { 2572 background-color: #6b0000; 2573 color: #ffffff; 2574 border-radius: 6px; 2575 padding: .375rem .75rem; 2576 display: inline-block; 2577 }.header__search-field { 2578 align-items: center; 2579 justify-content: space-between; 2580 gap: 1.5rem; 2581 min-width: 14rem; 2582 font-size: var(--text-sm); 2583 font-weight: 400; 2584 border: 1px solid rgb(var(--text-color) / .2); 2585 border-radius: 8px; 2586 padding: .625rem 1rem; 2587 transition: border-color .2s ease-in-out; 2588 display: flex; 2589 } 2590 2591 @media screen and (min-width: 1200px) { 2592 .header__search-field { 2593 min-width: 16.375rem; 2594 } 2595 } 2596 2597 .header__search-field:hover { 2598 border-color: rgb(var(--text-color) / .5); 2599 } 2600 2601 .header__search-bar { 2602 grid-area: search; 2603 margin-block-start: .75rem; 2604 }@media screen and (min-width: 1000px) { 2605 .header__search-bar { 2606 display: none; 2607 } 2608 } 2609</style> 2610 2611<height-observer variable="header"> 2612 <x-header class="header color-scheme color-scheme--scheme-2" ><a href="/" class="header__logo"><span class="sr-only">Melvita</span><img src="//fr.melvita.com/cdn/shop/files/logo-melvita-dark.svg?v=1788265829&width=112" alt="Melvita" srcset="//fr.melvita.com/cdn/shop/files/logo-melvita-dark.svg?v=1788265829&width=112 112w, //fr.melvita.com/cdn/shop/files/logo-melvita-dark.svg?v=1788265829&width=112 112w" width="112" height="26" sizes="110px" class="header__logo-image"><img src="//fr.melvita.com/cdn/shop/files/Logo.png?v=1781171577&width=112" alt="" srcset="//fr.melvita.com/cdn/shop/files/Logo.png?v=1781171577&width=112 112w, //fr.melvita.com/cdn/shop/files/Logo.png?v=1781171577&width=112 112w" width="112" height="26" sizes="110px" class="header__logo-image header__logo-image--transparent"></a><nav class="header__primary-nav " aria-label="Navigation principale"> 2613 <button type="button" aria-controls="menu-drawer" class="tap-area md:hidden">
2614 <span class="sr-only">Menu</span> 2615 2616 <div class="h-stack gap-3" aria-hidden="true"> 2617 <svg aria-hidden="true" focusable="false" width="16" height="13" viewBox="0 0 16 13" fill="none" xmlns="http://www.w3.org/2000/svg"> 2618 <path d="M16 0.5H0" stroke="currentColor" stroke-linejoin="round"/> 2619 <path d="M12 6.5H0" stroke="currentColor" stroke-linejoin="round"/> 2620 <path d="M16 12.5H0" stroke="currentColor" stroke-linejoin="round"/> 2621 </svg> 2622 2623 <span class="subheading md-max:hidden">Menu</span> 2624 </div> 2625 </button><a href="/pages/nos-boutiques" class="header__store-locator-link tap-area md:hidden"> 2626 <span class="sr-only">Trouver un magasin</span> 2627 <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> 2628 <path d="M13.6179 4.45024C11.0709 1.84992 6.94854 1.84992 4.40932 4.45024C1.86226 7.05057 1.86226 11.2591 4.40932 13.8514L9.01754 18.5L13.6258 13.8514C16.1728 11.2511 16.1728 7.04257 13.6258 4.45024H13.6179Z" stroke="currentColor" stroke-linecap="round"/> 2629 <circle cx="9.01855" cy="8" r="1.5" stroke="currentColor"/> 2630 </svg> 2631 </a><ul class="contents unstyled-list md-max:hidden"> 2632 2633 <li><a href="/collections/tous-les-produits" class="block text-sm bold" aria-expanded="false" aria-controls="header-menu-dropdown-1" data-open-on-hover>Produits</a><header-mega-menu id="header-menu-dropdown-1" class="mega-menu justify-between mega-menu--categories color-scheme color-scheme--scheme-2" style="--mega-menu-columns: 4; --mega-menu-category-count: 3;" ><div class="mega-menu__aside v-stack"> 2634 <ul class="mega-menu__linklist mega-menu__linklist--aside unstyled-list"><li><a href="/collections/french-days" class="mega-menu__title link-reversed" >French Days</a></li><li><a href="/collections/best-sellers" class="mega-menu__title link-reversed" >Best-sellers</a></li><li><a href="/collections/cadeaux" class="mega-menu__title link-reversed" >Cadeaux</a></li></ul> 2635 </div><div class="mega-menu__navigation"><div class="mega-menu__column v-stack gap-4"><span class="mega-menu__title link-reversed menu-link-static">Soins visage</span><ul class="mega-menu__linklist unstyled-list"><li><a href="/collections/serum-visage" class="link-reversed" >Essence et sérum visage</a></li><li><a href="/collections/creme-visage" class="link-reversed" >Crème visage </a></li><li><a href="/collections/nettoyant-demaquillant" class="link-reversed" >Nettoyant et démaquillant </a></li><li><a href="/collections/exfoliant-visage" class="link-reversed" >Exfoliant et masque visage </a></li><li><a href="/collections/soin-contour-des-yeux" class="link-reversed" >Soin contour des yeux </a></li><li><a href="/collections/eaux-florales" class="link-reversed" >Eau florale</a></li><li><a href="/collections/huile-visage" class="link-reversed" >Huile visage </a></li><li><a href="/collections/bb-creme" class="link-reversed" >BB crème</a></li><li><a href="/collections/baume-a-levres" class="link-reversed" >Baume à lèvres </a></li><li><a href="/collections/tous-les-soins-visage" class="link-reversed" >Tous les soins visage </a></li></ul> 2636 </div><div class="mega-menu__column v-stack gap-4"><span class="mega-menu__title link-reversed menu-link-static">Soins corps </span><ul class="mega-menu__linklist unstyled-list"><li><a href="/collections/serum-corps" class="link-reversed" >Sérum corps</a></li><li><a href="/collections/huile-corps" class="link-reversed" >Huile corps</a></li><li><a href="/collections/creme-corps" class="link-reversed" >Crème corps</a></li><li><a href="/collections/gel-douche-savon" class="link-reversed" >Gel douche et savon</a></li><li><a href="/collections/gommage-corps" class="link-reversed" >Gommage corps</a></li><li><a href="/collections/hygiene" class="link-reversed" >Hygiène quotidienne</a></li><li><a href="/collections/creme-mains" class="link-reversed" >Crème mains</a></li><li><a href="/collections/soin-cheveux" class="link-reversed" >Soin cheveux</a></li><li><a href="/collections/tous-les-soins-corps" class="link-reversed" >Tous les soins corps</a></li></ul> 2637 </div><div class="mega-menu__column v-stack gap-4"><span class="mega-menu__title link-reversed menu-link-static">Préoccupations</span><ul class="mega-menu__linklist unstyled-list"><li><a href="/collections/soin-visage-hydratant" class="link-reversed" >Manque d'hydratation</a></li><li><a href="/collections/soin-visage-eclat" class="link-reversed" >Manque d'éclat</a></li><li><a href="/collections/soin-rides-et-ridules" class="link-reversed" >Rides et ridules</a></li><li><a href="/collections/peau-seche-inconfortable" class="link-reversed" >Peau sèche et inconfortable</a></li><li><a href="/collections/soin-visage-fermete" class="link-reversed" >Manque de fermeté</a></li><li><a href="/collections/soin-visage-taches" class="link-reversed" >Taches pigmentaires</a></li><li><a href="/collections/soin-visage-rougeurs" class="link-reversed" >Peau sensible et rougeurs</a></li><li><a href="/collections/soin-visage-imperfections" class="link-reversed" >Peau à imperfections</a></li></ul> 2638 </div></div>
2638<script src="//fr.melvita.com/cdn/shop/t/4/assets/ax-menu-promo.js?v=174421363216936711411789037182" defer="defer"></script>
2638<style> 2639 #promo-block-list-mega_menu_qQWnVzmega-menu { 2640 --menu-promo-block-column-gap: 12px; 2641 --menu-promo-blocks-count: 1; 2642 } 2643 </style> 2644 2645 <div id="promo-block-list-mega_menu_qQWnVzmega-menu" class="menu-promo menu-promo--without-spacing"> 2646 <scroll-carousel id="promo-block-list-mega_menu_qQWnVzmega-menu-carousel" class="menu-promo__carousel scroll-area" allow-drag> 2647 2648 2649 2650 2651 2652 2653 <a href="/products/eau-extraordinaire-source-de-roses" class="menu-promo__item @container/content-box group"><div class="content-box overflow-hidden h-full" style="--text-color: 255 255 255; color: rgb(var(--text-color));--border-color: var(--text-color) / 0.15;"><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/TEX-SDR-EAU_EXTRA_1200x1200_1ceaa359-0990-4cc2-8ffb-c00a2bfabf53.png?v=1787301174&width=1200" alt="" srcset="//fr.melvita.com/cdn/shop/files/TEX-SDR-EAU_EXTRA_1200x1200_1ceaa359-0990-4cc2-8ffb-c00a2bfabf53.png?v=1787301174&width=420 420w, //fr.melvita.com/cdn/shop/files/TEX-SDR-EAU_EXTRA_1200x1200_1ceaa359-0990-4cc2-8ffb-c00a2bfabf53.png?v=1787301174&width=840 840w" width="1200" height="1200" loading="lazy" sizes="420px" class="zoom-image group-hover:zoom"></div><div class="place-self-end-start text-start"><div class="v-stack text-start gap-1"><p class="subheading">Lâefficacité par le plaisir</p> 2654 2655</div></div></div></a></scroll-carousel> 2656 </div></header-mega-menu> 2657</li> 2658 2659 <li><a href="/pages/marque" class="block text-sm bold" aria-expanded="false" aria-controls="header-menu-dropdown-2" data-open-on-hover>Marque </a><header-mega-menu id="header-menu-dropdown-2" class="mega-menu justify-between color-scheme color-scheme--scheme-2" >
2659<script src="//fr.melvita.com/cdn/shop/t/4/assets/ax-menu-promo.js?v=174421363216936711411789037182" defer="defer"></script>
2659<style> 2660 #promo-block-list-mega_menu_N3Ed7Cmega-menu { 2661 --menu-promo-block-column-gap: 12px; 2662 --menu-promo-blocks-count: 3; 2663 } 2664 </style> 2665 2666 <div id="promo-block-list-mega_menu_N3Ed7Cmega-menu" class="menu-promo menu-promo--without-spacing"> 2667 <scroll-carousel id="promo-block-list-mega_menu_N3Ed7Cmega-menu-carousel" class="menu-promo__carousel scroll-area" allow-drag> 2668 2669 <a href="/pages/notre-histoire" class="menu-promo__item @container/content-box group"><div class="content-box overflow-hidden h-full" style="--text-color: 255 255 255; color: rgb(var(--text-color));--border-color: var(--text-color) / 0.15;"><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/VISUEL-HISTOIRE-MENU.jpg?v=1787925243&width=840" alt="" srcset="//fr.melvita.com/cdn/shop/files/VISUEL-HISTOIRE-MENU.jpg?v=1787925243&width=420 420w, //fr.melvita.com/cdn/shop/files/VISUEL-HISTOIRE-MENU.jpg?v=1787925243&width=840 840w" width="840" height="680" loading="lazy" sizes="420px" class="zoom-image group-hover:zoom"></div><div class="place-self-end-start text-start"><div class="v-stack text-start gap-1"><p class="subheading">NOTRE HISTOIRE</p> 2670 2671</div></div></div></a> 2672 2673 <a href="/pages/notre-expertise" class="menu-promo__item @container/content-box group"><div class="content-box overflow-hidden h-full" style="--text-color: 255 255 255; color: rgb(var(--text-color));--border-color: var(--text-color) / 0.15;"><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/TEX-HAIRCARE-SERUM_840x680_21c44065-4b15-4e12-b18f-4c6e6f3daead.jpg?v=1788189419&width=840" alt="" srcset="//fr.melvita.com/cdn/shop/files/TEX-HAIRCARE-SERUM_840x680_21c44065-4b15-4e12-b18f-4c6e6f3daead.jpg?v=1788189419&width=420 420w, //fr.melvita.com/cdn/shop/files/TEX-HAIRCARE-SERUM_840x680_21c44065-4b15-4e12-b18f-4c6e6f3daead.jpg?v=1788189419&width=840 840w" width="840" height="680" loading="lazy" sizes="420px" class="zoom-image group-hover:zoom"></div><div class="place-self-end-start text-start"><div class="v-stack text-start gap-1"><p class="subheading">NOTRE EXPERTISE</p> 2674 2675</div></div></div></a> 2676 2677 <a href="/pages/nos-engagements" class="menu-promo__item @container/content-box group"><div class="content-box overflow-hidden h-full" style="--text-color: 255 255 255; color: rgb(var(--text-color));--border-color: var(--text-color) / 0.15;"><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/VISUEL-ENGAGEMENT.jpg?v=1787925182&width=840" alt="" srcset="//fr.melvita.com/cdn/shop/files/VISUEL-ENGAGEMENT.jpg?v=1787925182&width=420 420w, //fr.melvita.com/cdn/shop/files/VISUEL-ENGAGEMENT.jpg?v=1787925182&width=840 840w" width="840" height="680" loading="lazy" sizes="420px" class="zoom-image group-hover:zoom"></div><div class="place-self-end-start text-start"><div class="v-stack text-start gap-1"><p class="subheading">NOS ENGAGEMENTS</p> 2678 2679</div></div></div></a> 2680 2681 2682</scroll-carousel> 2683 </div></header-mega-menu> 2684</li></ul></nav><nav class="header__secondary-nav" aria-label="Navigation secondaire"> 2685 <ul class="contents unstyled-list"><li class="header__news-link" hidden> 2686 <news-modal-button class="contents"> 2687 <button class="tap-area" aria-controls="news-modal" aria-expanded="false"> 2688 <span class="sr-only">Modale des actualités</span><svg aria-hidden="true" focusable="false" width="16" fill="none" class="icon icon-bell" style="--icon-mobile-max-width: 16px; --icon-max-width: 20px" part="icon" viewBox="0 0 16 16"> 2689 <path stroke-width="1" stroke="currentColor" d="M3.333 7v3.333L2 12.5h12l-1.333-2.167V7A4.665 4.665 0 0 0 4.7 3.7 4.667 4.667 0 0 0 3.333 7ZM6.5 15.5h3" /> 2690 </svg></button> 2691 </news-modal-button> 2692 </li> 2693 2694 <li class="header__search-link md-max:hidden"> 2695 <a href="/search" class="header__search-field" aria-controls="search-drawer"> 2696 <span>Que recherchez-vous ?</span><svg aria-hidden="true" focusable="false" width="24" fill="none" class="icon icon-search" part="icon" viewB
2696ox="0 0 16 16"> 2697 <path stroke-width="1" stroke="currentColor" d="M1.333 7.333a6 6 0 1 0 12 0 6 6 0 0 0-12 0ZM11.575 11.576l3.09 3.09" /> 2698 </svg></a> 2699 </li><li class="md-max:hidden"> 2700 <hr class="header__secondary-nav-separator" /> 2701 </li><li class="header__store-locator-link md-max:hidden"> 2702 <a href="/pages/nos-boutiques" class="block tap-area"> 2703 <span class="sr-only">Trouver un magasin</span> 2704 <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> 2705 <path d="M13.6179 4.45024C11.0709 1.84992 6.94854 1.84992 4.40932 4.45024C1.86226 7.05057 1.86226 11.2591 4.40932 13.8514L9.01754 18.5L13.6258 13.8514C16.1728 11.2511 16.1728 7.04257 13.6258 4.45024H13.6179Z" stroke="currentColor" stroke-linecap="round"/> 2706 <circle cx="9.01855" cy="8" r="1.5" stroke="currentColor"/> 2707 </svg> 2708 </a> 2709 </li><li class="header__account-link"> 2710 <shopify-store store-domain="https://fr.melvita.com" country="FR" language="fr"></shopify-store> 2711<shopify-account menu="customer-account-main-menu"> 2712 <div slot="signed-out-avatar" class="tap-area"> 2713 <span class="sr-only">Connexion</span> 2714 <svg aria-hidden="true" focusable="false" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 2715 <circle cx="10" cy="5.94336" r="1.5" stroke="currentColor"/> 2716 <path d="M3.88672 16.0566C3.88672 12.6827 6.62136 9.94336 10 9.94336C13.3786 9.94336 16.1133 12.678 16.1133 16.0566" stroke="currentColor" stroke-linejoin="round"/> 2717 </svg> 2718 </div> 2719 </shopify-account> 2720 </li><li class="header__cart-link relative"> 2721 <a href="/cart" class="block tap-area" data-no-instant> 2722 <span class="sr-only">Panier</span> 2723 <svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="14" height="15" viewBox="0 0 14 15" fill="none"> 2724 <path d="M10.2196 3.16578V5.31865C10.2196 7.11693 8.75689 8.57962 6.95861 8.57962C5.16033 8.57962 3.69764 7.11693 3.69764 5.31865V3.16578M0.5 0.5H13.4236V14.5H0.5V0.5Z" stroke="currentColor"/> 2725 </svg> 2726 </a> 2727 2728 <cart-count class="header__active-dot"hidden> 2729 <span class="sr-only">0 article</span> 2730 </cart-count> 2731 </li></ul> 2732 </nav><a href="/search" class="header__search-field header__search-bar md:hidden" aria-controls="search-drawer"> 2733 <span>Que recherchez-vous ?</span><svg aria-hidden="true" focusable="false" width="24" fill="none" class="icon icon-search" part="icon" viewBox="0 0 16 16"> 2734 <path stroke-width="1" stroke="currentColor" d="M1.333 7.333a6 6 0 1 0 12 0 6 6 0 0 0-12 0ZM11.575 11.576l3.09 3.09" /> 2735 </svg></a><link href="//fr.melvita.com/cdn/shop/t/4/assets/ax-menu-drawer.css?v=20666038638637104561787828863" rel="stylesheet" type="text/css" media="all" /> 2736 2737<header-menu-drawer id="menu-drawer" class="menu-drawer color-scheme color-scheme--scheme-2"> 2738 <template> 2739 <div part="overlay"></div> 2740 2741 <div part="content"> 2742 <slot></slot> 2743 </div> 2744 </template><header-menu-drawer-panel id="menu-drawer-panel-main" data-main-panel class="menu-drawer__panel"> 2745 <div class="menu-drawer__panel-body"> 2746 <div class="menu-drawer__sections"><div class="menu-drawer__cards scroll-area"><a href="/collections/french-days" class="menu-drawer__card content-box" ><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/OFFRES_1200x1200_4aeb87f3-932c-40b2-8a49-fb8d87e4fbc5.png?v=1787854405&width=1200" alt="" srcset="//fr.melvita.com/cdn/shop/files/OFFRES_1200x1200_4aeb87f3-932c-40b2-8a49-fb8d87e4fbc5.png?v=1787854405&width=142 142w, //fr.melvita.com/cdn/shop/files/OFFRES_1200x1200_4aeb87f3-932c-40b2-8a49-fb8d87e4fbc5.png?v=1787854405&width=284 284w, //fr.melvita.com/cdn/shop/files/OFFRES_1200x1200_4aeb87f3-932c-40b2-8a49-fb8d87e4fbc5.png?v=1787854405&width=426 426w" width="1200" height="1200" loading="lazy" sizes="142px"></div><span class="menu-drawer__card-title h5">French Days</span></a><a href="/collections/best-sellers" class="menu-drawer__card content-box" ><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/Large-2026_SDR_-_GLOW_GEL_CREAM_-_2IN1_MASK_-_GLOW_GEL_CREAM.jpg?v=1787300178&width=1200" alt="" srcset="//fr.melvita.com/cdn/shop/files/Large-2026_SDR_-_GLOW_GEL_CREAM_-_2IN1_MASK_-_GLOW_GEL_CREAM.jpg?v=1787300178&width=142 142w, //fr.melvita.com/cdn/shop/files/Large-2026_SDR_-_GLOW_GEL_CREAM_-_2IN1_MASK_-_GLOW_GEL_CREAM.jpg?v=1787300178&width=284 284w, //fr.melvita.com/cdn/shop/files/Large-2026_SDR_-_GLOW_GEL_CREAM_-_2IN1_MASK_-_GLOW_GEL_CREAM.jpg?v=1787300178&width=426 426w" width="1200" height="1200" loading="lazy" sizes="142px"></div><span class="menu-drawer__card-title h5">Best-sellers</span></a><a href="/collections/cadeaux" class="menu-drawer__card content-box" ><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/ING-ROSE2_1200x1200_c4171a2c-3cf0-4fb9-9891-29a87c77d7f1.png?v=1787300780&width=1200" alt="" srcset="//fr.melvita.com/cdn/shop/files/ING-ROSE2_1200x1200_c4171a2c-3cf0-4fb9-9891-29a87c77d7f1.png?v=1787300780&width=142 142w, //fr.melvita.com/cdn/shop/files/ING-ROSE2_1200x1200_c4171a2c-3cf0-4fb9-9891-29a87c77d7f1.png?v=1787300780&width=284 284w, //fr.melvita.com/cdn/shop/files/ING-ROSE2_1200x1200_c4171a2c-3cf0-4fb9-9891-29a87c77d7f1.png?v=1787300780&width=426 426w" width="1200" height="1200" loading="lazy" sizes="142px"></div><span class="menu-drawer__card-title h5">Cadeaux</span></a></div><ul class="menu-drawer__nav faded-linklist unstyled-list"><li><button type="button" class="menu-drawer__link" data-panel-toggle aria-controls="menu-drawer-panel-primary-1"><span>Soins visage</span><svg aria-hidden="true" focusable="false" width="10" class="menu-drawer__link-chevron icon icon-chevron-right" part="icon" viewB
2746ox="0 0 9 10"> 2747 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 2748 </svg></button></li><li><button type="button" class="menu-drawer__link" data-panel-toggle aria-controls="menu-drawer-panel-primary-2"><span>Soins corps</span><svg aria-hidden="true" focusable="false" width="10" class="menu-drawer__link-chevron icon icon-chevron-right" part="icon" viewBox="0 0 9 10"> 2749 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 2750 </svg></button></li><li><button type="button" class="menu-drawer__link" data-panel-toggle aria-controls="menu-drawer-panel-primary-3"><span>Préoccupations</span><svg aria-hidden="true" focusable="false" width="10" class="menu-drawer__link-chevron icon icon-chevron-right" part="icon" viewBox="0 0 9 10"> 2751 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 2752 </svg></button></li><li><button type="button" class="menu-drawer__link" data-panel-toggle aria-controls="menu-drawer-panel-primary-4"><span>Marque </span><svg aria-hidden="true" focusable="false" width="10" class="menu-drawer__link-chevron icon icon-chevron-right" part="icon" viewBox="0 0 9 10"> 2753 <path fill="none" stroke="currentColor" stroke-width="1.5" d="m2.5 9 4-4-4-4"/> 2754 </svg></button></li></ul><a href="/products/eau-extraordinaire-source-de-roses" class="menu-drawer__push content-box"><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/TEXT-SDR-EAU-EXTRA_981x558_9107dab0-51a9-4c3b-a17a-ff352015bb2c.png?v=1787316353&width=837" alt="" srcset="//fr.melvita.com/cdn/shop/files/TEXT-SDR-EAU-EXTRA_981x558_9107dab0-51a9-4c3b-a17a-ff352015bb2c.png?v=1787316353&width=400 400w, //fr.melvita.com/cdn/shop/files/TEXT-SDR-EAU-EXTRA_981x558_9107dab0-51a9-4c3b-a17a-ff352015bb2c.png?v=1787316353&width=600 600w, //fr.melvita.com/cdn/shop/files/TEXT-SDR-EAU-EXTRA_981x558_9107dab0-51a9-4c3b-a17a-ff352015bb2c.png?v=1787316353&width=800 800w" width="837" height="558" loading="lazy" sizes="(max-width: 480px) 100vw, 432px"></div><span class="menu-drawer__push-heading h2">Un soin pour hydrater</span></a></div> 2755 </div></header-menu-drawer-panel><header-menu-drawer-panel id="menu-drawer-panel-primary-1" class="menu-drawer__panel color-scheme color-scheme--scheme-2"> 2756 <div class="menu-drawer__panel-body"> 2757 <div class="menu-drawer__sections menu-drawer__sections--panel"> 2758 <button type="button" class="menu-drawer__back" data-panel-toggle aria-controls="menu-drawer-panel-main">Retour</button> 2759 2760 <div class="menu-drawer__sections"><ul class="menu-drawer__nav unstyled-list"><li><a href="/collections/serum-visage" class="menu-drawer__panel-link link-reversed" >Essence et sérum visage</a></li><li><a href="/collections/creme-visage" class="menu-drawer__panel-link link-reversed" >Crème visage</a></li><li><a href="/collections/nettoyant-demaquillant" class="menu-drawer__panel-link link-reversed" >Nettoyant et démaquillant</a></li><li><a href="/collections/exfoliant-visage" class="menu-drawer__panel-link link-reversed" >Exfoliant et masque visage</a></li><li><a href="/collections/soin-contour-des-yeux" class="menu-drawer__panel-link link-reversed" >Soin contour des yeux</a></li><li><a href="/collections/eaux-florales" class="menu-drawer__panel-link link-reversed" >Eau florale</a></li><li><a href="/collections/huile-visage" class="menu-drawer__panel-link link-reversed" >Huile visage</a></li><li><a href="/collections/bb-creme" class="menu-drawer__panel-link link-reversed" >BB crème</a></li><li><a href="/collections/baume-a-levres" class="menu-drawer__panel-link link-reversed" >Baume à lèvres</a></li><li><a href="/collections/tous-les-soins-visage" class="menu-drawer__panel-link link-reversed" >Tous les soins visage</a></li></ul></div> 2761 </div> 2762 </div> 2763</header-menu-drawer-panel> 2764<header-menu-drawer-panel id="menu-drawer-panel-primary-2" class="menu-drawer__panel color-scheme color-scheme--scheme-2"> 2765 <div class="menu-drawer__panel-body"> 2766 <div class="menu-drawer__sections menu-drawer__sections--panel"> 2767 <button type="button" class="menu-drawer__back" data-panel-toggle aria-controls="menu-drawer-panel-main">Retour</button> 2768 2769 <div class="menu-drawer__sections"><ul class="menu-drawer__nav unstyled-list"><li><a href="/collections/serum-corps" class="menu-drawer__panel-link link-reversed" >Sérum corps</a></li><li><a href="/collections/huile-corps" class="menu-drawer__panel-link link-reversed" >Huile corps</a></li><li><a href="/collections/creme-corps" class="menu-drawer__panel-link link-reversed" >Crème corps</a></li><li><a href="/collections/gel-douche-savon" class="menu-drawer__panel-link link-reversed" >Gel douche et savon</a></li><li><a href="/collections/gommage-corps" class="menu-drawer__panel-link link-reversed" >Gommage corps</a></li><li><a href="/collections/hygiene" class="menu-drawer__panel-link link-reversed" >Hygiène quotidienne</a></li><li><a href="/collections/creme-mains" class="menu-drawer__panel-link link-reversed" >Crème mains</a></li><li><a href="/collections/soin-cheveux" class="menu-drawer__panel-link link-reversed" >Soin cheveux</a></li><li><a href="/collections/tous-les-soins-corps" class="menu-drawer__panel-link link-reversed" >Tous les soins corps</a></li></ul></div> 2770 </div> 2771 </div> 2772</header-menu-drawer-panel> 2773<header-menu-drawer-panel id="menu-drawer-panel-primary-3" class="menu-drawer__panel color-scheme color-scheme--scheme-2"> 2774 <div class="menu-drawer__panel-body"> 2775 <div class="menu-drawer__sections menu-drawer__sections--panel"> 2776 <button type="button" class="menu-drawer__back" data-panel-toggle aria-controls="menu-drawer-panel-main">Retour</button> 2777 2778 <div class="menu-drawer__sections"><ul class="menu-drawer__nav unstyled-list"><li><a href="/collections/soin-visage-hydratant" class="menu-drawer__panel-link link-reversed" >Manque d'hydratation</a></li><li><a href="/collections/soin-visage-eclat" class="menu-drawer__panel-link link-reversed" >Manque d'éclat</a></li><li><a href="/collections/soin-rides-et-ridules" class="menu-drawer__panel-link link-reversed" >Rides et ridules</a></li><li><a href="/collections/peau-seche-inconfortable" class="menu-drawer__panel-link link-reversed" >Peau sèche et inconfortable</a></li><li><a href="/collections/soin-visage-fermete" class="menu-drawer__panel-link link-reversed" >Manque de fermeté</a></li><li><a href="/collections/soin-visage-taches" class="menu-drawer__panel-link link-reversed" >Tâches pigmentaires</a></li><li><a href="/collections/soin-visage-rougeurs" class="menu-drawer__panel-link link-reversed" >Peau sensible et rougeurs</a></li><li><a href="/collections/soin-visage-imperfections" class="menu-drawer__panel-link link-reversed" >Peau à imperfections</a></li></ul></div> 2779 </div> 2780 </div> 2781</header-menu-drawer-panel> 2782<header-menu-drawer-panel id="menu-drawer-panel-primary-4" class="menu-drawer__panel color-scheme color-scheme--scheme-2"> 2783 <div class="menu-drawer__panel-body"> 2784 <div class="menu-drawer__sections menu-drawer__sections--panel"> 2785 <button type="button" class="menu-drawer__back" data-panel-toggle aria-controls="menu-drawer-panel-main">Retour</button> 2786 2787 <div class="menu-drawer__sections">
2787<script src="//fr.melvita.com/cdn/shop/t/4/assets/ax-menu-promo.js?v=174421363216936711411789037182" defer="defer"></script>
2787<style> 2788 #promo-block-list-mega_menu_N3Ed7Cmenu-drawer-panel-primary-4 { 2789 --menu-promo-block-column-gap: 12px; 2790 --menu-promo-blocks-count: 3; 2791 } 2792 </style> 2793 2794 <div id="promo-block-list-mega_menu_N3Ed7Cmenu-drawer-panel-primary-4" class="menu-promo menu-promo--without-spacing"> 2795 <scroll-carousel id="promo-block-list-mega_menu_N3Ed7Cmenu-drawer-panel-primary-4-carousel" class="menu-promo__carousel scroll-area" allow-drag> 2796 2797 <a href="/pages/notre-histoire" class="menu-promo__item @container/content-box group"><div class="content-box overflow-hidden h-full" style="--text-color: 255 255 255; color: rgb(var(--text-color));--border-color: var(--text-color) / 0.15;"><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/VISUEL-HISTOIRE-MENU.jpg?v=1787925243&width=840" alt="" srcset="//fr.melvita.com/cdn/shop/files/VISUEL-HISTOIRE-MENU.jpg?v=1787925243&width=420 420w, //fr.melvita.com/cdn/shop/files/VISUEL-HISTOIRE-MENU.jpg?v=1787925243&width=840 840w" width="840" height="680" loading="lazy" sizes="420px" class="zoom-image group-hover:zoom"></div><div class="place-self-end-start text-start"><div class="v-stack text-start gap-1"><p class="subheading">NOTRE HISTOIRE</p> 2798 2799</div></div></div></a> 2800 2801 <a href="/pages/notre-expertise" class="menu-promo__item @container/content-box group"><div class="content-box overflow-hidden h-full" style="--text-color: 255 255 255; color: rgb(var(--text-color));--border-color: var(--text-color) / 0.15;"><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/TEX-HAIRCARE-SERUM_840x680_21c44065-4b15-4e12-b18f-4c6e6f3daead.jpg?v=1788189419&width=840" alt="" srcset="//fr.melvita.com/cdn/shop/files/TEX-HAIRCARE-SERUM_840x680_21c44065-4b15-4e12-b18f-4c6e6f3daead.jpg?v=1788189419&width=420 420w, //fr.melvita.com/cdn/shop/files/TEX-HAIRCARE-SERUM_840x680_21c44065-4b15-4e12-b18f-4c6e6f3daead.jpg?v=1788189419&width=840 840w" width="840" height="680" loading="lazy" sizes="420px" class="zoom-image group-hover:zoom"></div><div class="place-self-end-start text-start"><div class="v-stack text-start gap-1"><p class="subheading">NOTRE EXPERTISE</p> 2802 2803</div></div></div></a> 2804 2805 <a href="/pages/nos-engagements" class="menu-promo__item @container/content-box group"><div class="content-box overflow-hidden h-full" style="--text-color: 255 255 255; color: rgb(var(--text-color));--border-color: var(--text-color) / 0.15;"><div class="content-box__background-media with-overlay"><img src="//fr.melvita.com/cdn/shop/files/VISUEL-ENGAGEMENT.jpg?v=1787925182&width=840" alt="" srcset="//fr.melvita.com/cdn/shop/files/VISUEL-ENGAGEMENT.jpg?v=1787925182&width=420 420w, //fr.melvita.com/cdn/shop/files/VISUEL-ENGAGEMENT.jpg?v=1787925182&width=840 840w" width="840" height="680" loading="lazy" sizes="420px" class="zoom-image group-hover:zoom"></div><div class="place-self-end-start text-start"><div class="v-stack text-start gap-1"><p class="subheading">NOS ENGAGEMENTS</p> 2806 2807</div></div></div></a> 2808 2809 2810</scroll-carousel> 2811 </div></div> 2812 </div> 2813 </div> 2814</header-menu-drawer-panel> 2815</header-menu-drawer> 2816</x-header> 2817</height-observer> 2818
2819<script> 2820 document.documentElement.style.setProperty('--header-height', `${Math.round(document.getElementById('shopify-section-sections--30543191376210__header').clientHeight)}px`); 2821</script>
2821 2822 2823</header> 2824<!-- END sections: header-group --><!-- BEGIN sections: overlay-group --> 2825<section id="shopify-section-sections--30543191408978__cart-drawer" class="shopify-section shopify-section-group-overlay-group shopify-section--cart-drawer"> 2826</section><section id="shopify-section-sections--30543191408978__search-drawer" class="shopify-section shopify-section-group-overlay-group shopify-section--search-drawer"><link href="//fr.melvita.com/cdn/shop/t/4/assets/ax-search.css?v=9963105301847081791787240104" rel="stylesheet" type="text/css" media="all" />
2827<script src="//fr.melvita.com/cdn/shop/t/4/assets/ax-search.js?v=35820209326577726131786011914" defer></script>
2827 2828 2829<x-drawer id="search-drawer" class="drawer drawer--search color-scheme color-scheme--scheme-1" handle-editor-events> 2830 <div slot="header"> 2831 <form action="/search" id="predictive-search-form" method="GET" aria-owns="predictive-search" class="ax-search__form" role="search"><svg aria-hidden="true" focusable="false" width="20" fill="none" class="icon icon-search" part="icon" viewBox="0 0 16 16"> 2832 <path stroke-width="1" stroke="currentColor" d="M1.333 7.333a6 6 0 1 0 12 0 6 6 0 0 0-12 0ZM11.575 11.576l3.09 3.09" /> 2833 </svg><label for="search-drawer-input" class="sr-only">Recherche...</label> 2834 <input id="search-drawer-input" type="search" class="ax-search__input" name="q" placeholder="Recherche..." autocomplete="off" autocorrect="off" spellcheck="false"> 2835 2836 <button type="reset" class="ax-search__clear"> 2837 <span class="sr-only">Effacer</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-remove-bin" part="icon" viewBox="0 0 16 17"> 2838 <path stroke="currentColor" fill="none" d="M2 4.5h12M3.5 4.5h9v10h-9v-10ZM6.5 7v5M9.5 7v5M5.5 4.5a2.5 2.5 0 1 1 5 0" /> 2839 </svg></button> 2840 </form> 2841 </div> 2842 2843 <predictive-search id="predictive-search"> 2844 <div slot="placeholder"><div class="ax-search ax-search--placeholder ax-search--no-aside"></div> 2845 </div><div slot="skeleton" aria-hidden="true"> 2846 <div class="ax-search ax-search--skeleton"> 2847 <div class="ax-search__aside"><div class="ax-search__group"> 2848 <span class="ax-skeleton ax-skeleton--title"></span> 2849 <div class="ax-search__links"><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 70%"></span><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 85%"></span><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 55%"></span><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 70%"></span><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 85%"></span><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 55%"></span></div> 2850 </div><div class="ax-search__group"> 2851 <span class="ax-skeleton ax-skeleton--title"></span> 2852 <div class="ax-search__links"><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 70%"></span><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 85%"></span><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 55%"></span><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 70%"></span></div> 2853 </div><div class="ax-search__group"> 2854 <span class="ax-skeleton ax-skeleton--title"></span> 2855 <div class="ax-search__links"><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 70%"></span><span class="ax-skeleton ax-skeleton--aside-line" style="--ax-skeleton-w: 85%"></span></div> 2856 </div></div> 2857 2858 <div class="ax-search__main"> 2859 <span class="ax-skeleton ax-skeleton--title"></span> 2860 <div class="ax-search__grid ax-search__grid--skeleton"><div class="ax-skeleton-card"> 2861 <span class="ax-skeleton ax-skeleton--media aspect-portrait_crop"></span> 2862 <span class="ax-skeleton ax-skeleton--card-title" style="--ax-skeleton-w: 70%"></span> 2863 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 90%"></span> 2864 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 55%"></span> 2865 <span class="ax-skeleton ax-skeleton--card-price" style="--ax-skeleton-w: 30%"></span> 2866 </div><div class="ax-skeleton-card"> 2867 <span class="ax-skeleton ax-skeleton--media aspect-portrait_crop"></span> 2868 <span class="ax-skeleton ax-skeleton--card-title" style="--ax-skeleton-w: 70%"></span> 2869 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 90%"></span> 2870 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 55%"></span>
2871 <span class="ax-skeleton ax-skeleton--card-price" style="--ax-skeleton-w: 30%"></span> 2872 </div><div class="ax-skeleton-card"> 2873 <span class="ax-skeleton ax-skeleton--media aspect-portrait_crop"></span> 2874 <span class="ax-skeleton ax-skeleton--card-title" style="--ax-skeleton-w: 70%"></span> 2875 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 90%"></span> 2876 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 55%"></span> 2877 <span class="ax-skeleton ax-skeleton--card-price" style="--ax-skeleton-w: 30%"></span> 2878 </div><div class="ax-skeleton-card"> 2879 <span class="ax-skeleton ax-skeleton--media aspect-portrait_crop"></span> 2880 <span class="ax-skeleton ax-skeleton--card-title" style="--ax-skeleton-w: 70%"></span> 2881 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 90%"></span> 2882 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 55%"></span> 2883 <span class="ax-skeleton ax-skeleton--card-price" style="--ax-skeleton-w: 30%"></span> 2884 </div><div class="ax-skeleton-card"> 2885 <span class="ax-skeleton ax-skeleton--media aspect-portrait_crop"></span> 2886 <span class="ax-skeleton ax-skeleton--card-title" style="--ax-skeleton-w: 70%"></span> 2887 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 90%"></span> 2888 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 55%"></span> 2889 <span class="ax-skeleton ax-skeleton--card-price" style="--ax-skeleton-w: 30%"></span> 2890 </div><div class="ax-skeleton-card"> 2891 <span class="ax-skeleton ax-skeleton--media aspect-portrait_crop"></span> 2892 <span class="ax-skeleton ax-skeleton--card-title" style="--ax-skeleton-w: 70%"></span> 2893 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 90%"></span> 2894 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 55%"></span> 2895 <span class="ax-skeleton ax-skeleton--card-price" style="--ax-skeleton-w: 30%"></span> 2896 </div><div class="ax-skeleton-card"> 2897 <span class="ax-skeleton ax-skeleton--media aspect-portrait_crop"></span> 2898 <span class="ax-skeleton ax-skeleton--card-title" style="--ax-skeleton-w: 70%"></span> 2899 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 90%"></span> 2900 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 55%"></span> 2901 <span class="ax-skeleton ax-skeleton--card-price" style="--ax-skeleton-w: 30%"></span> 2902 </div><div class="ax-skeleton-card"> 2903 <span class="ax-skeleton ax-skeleton--media aspect-portrait_crop"></span> 2904 <span class="ax-skeleton ax-skeleton--card-title" style="--ax-skeleton-w: 70%"></span> 2905 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 90%"></span> 2906 <span class="ax-skeleton ax-skeleton--card-sub" style="--ax-skeleton-w: 55%"></span> 2907 <span class="ax-skeleton ax-skeleton--card-price" style="--ax-skeleton-w: 30%"></span> 2908 </div></div> 2909 <span class="ax-skeleton ax-skeleton--view-all"></span> 2910 </div> 2911 </div> 2912 </div> 2913 2914 <div slot="results" class="contents"><!-- FILL IN JS --></div> 2915 </predictive-search> 2916</x-drawer> 2917 2918</section> 2919<!-- END sections: overlay-group --><main id="main" class="anchor "> 2920 <section id="shopify-section-template--30543204778322__main" class="shopify-section shopify-section--main-cart"><div class="color-scheme color-scheme--scheme-1"> 2921 <div class="section-spacing"> 2922 <div class="container"> 2923 <div class="max-w-2xl mx-auto"><div class="empty-state"> 2924 <div class="prose prose-justify-center"> 2925 <h1 class="h3">Panier</h1> 2926 <p>Votre panier est vide</p> 2927<a class="button" href="/collections/best-sellers" ><button-content class="button__content" >Explorer nos produits</button-content></a></div> 2928 </div></div> 2929 </div> 2930 </div> 2931</div> 2932 2933 2934</section> 2935 </main><!-- BEGIN sections: footer-group --> 2936<section id="shopify-section-sections--30543190688082__trust_icons_dhwgem" class="shopify-section shopify-section-group-footer-group shopify-section--trust-icons"><style> 2937 #shopify-section-sections--30543190688082__trust_icons_dhwgem { 2938 --trust-icons-item-count: 4; 2939 } 2940 </style>
2940<script src="//fr.melvita.com/cdn/shop/t/4/assets/ax-product-slider.js?v=135989042043708014381787222692" defer></script>
2940<div class="color-scheme color-scheme--scheme-2"><ax-autoplay-carousel class="trust-icons trust-icons--slider" autoplay="4000"> 2941 <scroll-carousel id="trust-icons-sections--30543190688082__trust_icons_dhwgem" class="trust-icons__carousel scroll-area snap-x" allow-drag><div class="trust-icons__item snap-center" role="group" aria-label="Elément 1 de 4" > 2942 <div class="prose prose-justify-center prose--compact"><p class="h7">PAIEMENT SÃCURISÃ</p><p class="text-subdued">Transactions 100% protégées</p></div> 2943 </div><div class="trust-icons__item snap-center" role="group" aria-label="Elément 2 de 4" > 2944 <div class="prose prose-justify-center prose--compact"><p class="h7">FORMULES CERTIFIÃES BIOLOGIQUES</p><p class="text-subdued">Des actifs d'origine naturelle</p></div> 2945 </div><div class="trust-icons__item snap-center" role="group" aria-label="Elément 3 de 4" > 2946 <div class="prose prose-justify-center prose--compact"><p class="h7">LIVRAISON RAPIDE</p><p class="text-subdued">Offerte dès 49⬠d'achat</p></div> 2947 </div><div class="trust-icons__item snap-center" role="group" aria-label="Elément 4 de 4" > 2948 <div class="prose prose-justify-center prose--compact"><p class="h7">RETOURS FACILES</p><p class="text-subdued">Sous 14 jours</p></div> 2949 </div></scroll-carousel> 2950 2951 <progress-bar track-scroll-target="trust-icons-sections--30543190688082__trust_icons_dhwgem" class="progress-bar progress-bar--limit-width sm:hidden"></progress-bar> 2952 </ax-autoplay-carousel></div> 2953</section><section id="shopify-section-sections--30543190688082__newsletter" class="shopify-section shopify-section-group-footer-group shopify-section--newsletter"><style> 2954 #shopify-section-sections--30543190688082__newsletter .newsletter-band { 2955 display: grid; 2956 gap: 1.5rem; 2957 } 2958 2959 #shopify-section-sections--30543190688082__newsletter .newsletter-band__description { 2960 max-width: 28rem; 2961 } 2962 2963 /* Email field and submit button on a single row, but kept separate (gap + rounded corners) */ 2964 #shopify-section-sections--30543190688082__newsletter .newsletter-band .input-with-connected-submit { 2965 flex-direction: row; 2966 align-items: stretch; 2967 gap: .75rem; 2968 } 2969 2970 #shopify-section-sections--30543190688082__newsletter .newsletter-band .input-with-connected-submit .form-control { 2971 flex-grow: 1; 2972 } 2973 2974 #shopify-section-sections--30543190688082__newsletter .newsletter-band .input-with-connected-submit .input { 2975 --input-padding-block: .5rem; 2976 min-height: 100%; 2977 border-inline-end-width: 1px; 2978 border-radius: var(--input-border-radius); 2979 background-color: transparent; 2980 } 2981 2982 #shopify-section-sections--30543190688082__newsletter .newsletter-band .input-with-connected-submit .button { 2983 --button-padding-block: .5rem; 2984 border-radius: var(--button-border-radius); 2985 font-weight: 700; 2986 } 2987 2988 /* Placeholder ("Votre mail") in solid black instead of the default subdued tone */ 2989 #shopify-section-sections--30543190688082__newsletter .newsletter-band .floating-label { 2990 color: rgb(var(--input-text-color, var(--text-color))); 2991 font-size: 14px; 2992 } 2993 2994 /* The theme lowercases every heading; the mockup keeps the original casing */ 2995 #shopify-section-sections--30543190688082__newsletter .newsletter-band__heading :where(h1, h2, h3, h4, h5, h6) { 2996 font-weight: 400; 2997 text-transform: none; 2998 line-height: 110%; 2999 } 3000 3001 #shopify-section-sections--30543190688082__newsletter .newsletter-band__heading * { 3002 margin: 0; 3003 } 3004 3005 /* Two-tone heading: light first words, bold highlighted part */ 3006 #shopify-section-sections--30543190688082__newsletter .newsletter-band__heading :where(h1, h2, h3, h4, h5, h6) strong { 3007 font-weight: 800; 3008 } 3009 3010 @media screen and (min-width: 1000px) { 3011 #shopify-section-sections--30543190688082__newsletter .newsletter-band { 3012 grid-template-columns: minmax(0, auto) minmax(0, 1fr) minmax(0, auto); 3013 align-items: center; 3014 gap: clamp(2.5rem, 5vw, 6rem); 3015 } 3016 3017 #shopify-section-sections--30543190688082__newsletter .newsletter-band__heading { 3018 max-width: 21rem; 3019 } 3020 3021 #shopify-section-sections--30543190688082__newsletter .newsletter-band__form { 3022 width: 22rem; 3023 } 3024 } 3025</style> 3026 3027<div class="color-scheme color-scheme--scheme-1"><div class="container section-spacing"> 3028 <div class="newsletter-band"> 3029 <div class="newsletter-band__heading prose"><h2 class="h3" >Inscrivez-vous <br/>à NOTRE NEWSLETTER !</h2></div><div class="newsletter-band__description text-sm text-subdued">Profitez de -15 % sur votre prochaine commande et découvrez en avant-première nos nouveautés, nos offres exclusives et nos conseils pour prendre soin de votre peau.</div><div class="newsletter-band__form"><form method="post" action="/contact#newsletter-form-sections--30543190688082__newsletter" id="newsletter-form-sections--30543190688082__newsletter" accept-charset="UTF-8" class="form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="contact[tags]" value="newsletter"><div class="input-with-connected-submit"><div class="form-control" ><input id="input--sections--30543190688082__newsletter--contactemail" class="input " type="email" dir="ltr" name="contact[email]" 3030 3031 3032 3033 3034 placeholder=" " 3035 autocomplete="email" 3036 3037 enterkeyhint="send" 3038 required 3039 3040 3041 3042><label for="input--sections--30543190688082__newsletter--contactemail" class="floating-label ">Votre mail</label></div> 3043<button type="submit" class="button" ><button-content class="button__content" >Envoyer</button-content></button></div></form></div> 3044 </div> 3045 </div></div> 3046 3047 3048</section><footer id="shopify-section-sections--30543190688082__footer" class="shopify-section shopify-section-group-footer-group shopify-section--footer"><div class="footer color-scheme color-scheme--scheme-11"> 3049 <div class="container">
3049<div class="footer__content"><div class="footer__block-list"><div class="footer__block footer__block--links footer__block--accordion-links" ><div class="v-stack gap-4.5 sm-max:hidden"><p class="footer__menu-title"><strong>Besoin d'aide ?</strong></p><ul class="v-stack gap-2.5 unstyled-list" role="list"><li><span class="footer__menu-link">Nous contacter</span><ul class="footer__submenu v-stack gap-2.5 unstyled-list" role="list"><li><a href="tel:0475370948" class="footer__menu-link link-reversed link-tap-area">04 75 37 09 48 </a></li><li><a href="mailto:[email protected]" class="footer__menu-link link-reversed link-tap-area">[email protected]</a></li></ul></li><li><a href="/pages/programme-de-fidelite" class="footer__menu-link link-reversed link-tap-area">Programme de fidélité</a></li><li><a href="/pages/programme-de-parrainage" class="footer__menu-link link-reversed link-tap-area">Programme de parrainage</a></li> 3050 </ul></div><accordion-disclosure class="accordion sm:hidden" > 3051 <details class="accordion__disclosure" > 3052 <summary class="accordion__summary "><span><strong>Besoin d'aide ?</strong></span><svg ria-hidden="true" focusable="false" width="11" class="icon icon-accordion-small-arrow" part="icon" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3053 <path d="M10.5133 0.367188L5.42631 5.06284L0.339355 0.367188" stroke="currentColor" stroke-linejoin="round"/> 3054 </svg></summary> 3055 3056 <div class="accordion__content "><ul class="v-stack gap-2.5 unstyled-list" role="list"><li><span class="footer__menu-link">Nous contacter</span><ul class="footer__submenu v-stack gap-2.5 unstyled-list" role="list"><li>
3056<a href="tel:0475370948" class="footer__menu-link link-reversed link-tap-area">04 75 37 09 48 </a></li><li><a href="mailto:[email protected]" class="footer__menu-link link-reversed link-tap-area">[email protected]</a></li></ul></li><li><a href="/pages/programme-de-fidelite" class="footer__menu-link link-reversed link-tap-area">Programme de fidélité</a></li><li><a href="/pages/programme-de-parrainage" class="footer__menu-link link-reversed link-tap-area">Programme de parrainage</a></li> 3057 </ul></div> 3058 </details> 3059</accordion-disclosure> 3060</div><div class="footer__block footer__block--links footer__block--accordion-links" ><div class="v-stack gap-4.5 sm-max:hidden"><p class="footer__menu-title"><strong>Nous trouver</strong></p><ul class="v-stack gap-2.5 unstyled-list" role="list"><li><a href="/pages/nos-boutiques" class="footer__menu-link link-reversed link-tap-area">Nos points de vente</a></li><li><a href="/pages/notre-usine" class="footer__menu-link link-reversed link-tap-area">Lagorce : boutique et visite de l'usine</a></li><li><a href="/pages/notre-boutique-et-institut" class="footer__menu-link link-reversed link-tap-area">Aubenas : boutique et institut</a></li> 3061 </ul></div><accordion-disclosure class="accordion sm:hidden" > 3062 <details class="accordion__disclosure" > 3063 <summary class="accordion__summary "><span><strong>Nous trouver</strong></span><svg ria-hidden="true" focusable="false" width="11" class="icon icon-accordion-small-arrow" part="icon" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3064 <path d="M10.5133 0.367188L5.42631 5.06284L0.339355 0.367188" stroke="currentColor" stroke-linejoin="round"/> 3065 </svg></summary> 3066 3067 <div class="accordion__content "><ul class="v-stack gap-2.5 unstyled-list" role="list"><li><a href="/pages/nos-boutiques" class="footer__menu-link link-reversed link-tap-area">Nos points de vente</a></li><li><a href="/pages/notre-usine" class="footer__menu-link link-reversed link-tap-area">Lagorce : boutique et visite de l'usine</a></li><li><a href="/pages/notre-boutique-et-institut" class="footer__menu-link link-reversed link-tap-area">Aubenas : boutique et institut</a></li> 3068 </ul></div> 3069 </details> 3070</accordion-disclosure> 3071</div><div class="footer__block footer__block--links footer__block--accordion-links" ><div class="v-stack gap-4.5 sm-max:hidden"><p class="footer__menu-title"><strong>Melvita</strong></p><ul class="v-stack gap-2.5 unstyled-list" role="list"><li><a href="/pages/notre-histoire" class="footer__menu-link link-reversed link-tap-area">Notre histoire </a></li><li><a href="/pages/notre-expertise" class="footer__menu-link link-reversed link-tap-area">Notre expertise </a></li><li><a href="/pages/nos-engagements" class="footer__menu-link link-reversed link-tap-area">Nos engagements </a></li><li><a href="/pages/gammes" class="footer__menu-link link-reversed link-tap-area">Nos gammes </a></li><li><a href="/blogs/articles" class="footer__menu-link link-reversed link-tap-area">Nos articles beauté </a></li><li><a href="/pages/offres" class="footer__menu-link link-reversed link-tap-area">Nos offres saisonnières </a></li><li><a href="/collections/tous-les-produits" class="footer__menu-link link-reversed link-tap-area">Tous nos produits </a></li> 3072 </ul></div><accordion-disclosure class="accordion sm:hidden" > 3073 <details class="accordion__disclosure" > 3074 <summary class="accordion__summary "><span><strong>Melvita</strong></span><svg ria-hidden="true" focusable="false" width="11" class="icon icon-accordion-small-arrow" part="icon" width="11" height="6" viewBox="0 0 11 6" fill="none"> 3075 <path d="M10.5133 0.367188L5.42631 5.06284L0.339355 0.367188" stroke="currentColor" stroke-linejoin="round"/> 3076 </svg></summary> 3077 3078 <div class="accordion__content "><ul class="v-stack gap-2.5 unstyled-list" role="list"><li><a href="/pages/notre-histoire" class="footer__menu-link link-reversed link-tap-area">Notre histoire </a></li><li><a href="/pages/notre-expertise" class="footer__menu-link link-reversed link-tap-area">Notre expertise </a></li><li><a href="/pages/nos-engagements" class="footer__menu-link link-reversed link-tap-area">Nos engagements </a></li><li><a href="/pages/gammes" class="footer__menu-link link-reversed link-tap-area">Nos gammes </a></li><li><a href="/blogs/articles" class="footer__menu-link link-reversed link-tap-area">Nos articles beauté </a></li><li><a href="/pages/offres" class="footer__menu-link link-reversed link-tap-area">Nos offres saisonnières </a></li><li><a href="/collections/tous-les-produits" class="footer__menu-link link-reversed link-tap-area">Tous nos produits </a></li> 3079 </ul></div> 3080 </details> 3081</accordion-disclosure> 3082</div><div class="footer__block footer__block--image " ><img src="//fr.melvita.com/cdn/shop/files/Bcorp_Entreprise_Certifiee_White.png?v=1786367857&width=225" alt="Entreprise B Certifiée" srcset="//fr.melvita.com/cdn/shop/files/Bcorp_Entreprise_Certifiee_White.png?v=1786367857&width=60 60w, //fr.melvita.com/cdn/shop/files/Bcorp_Entreprise_Certifiee_White.png?v=1786367857&width=120 120w" width="225" height="343" sizes="60px" style="--image-max-width: 60px; --image-mobile-max-width: 34px" class="constrained-image"></div></div></div><div class="footer__logo-bar" ><div class="footer__big-logo footer__big-logo--static"><img src="//fr.melvita.com/cdn/shop/files/logo-melvita-white.svg?v=1788265829&width=600" alt="" srcset="//fr.melvita.com/cdn/shop/files/logo-melvita-white.svg?v=1788265829&width=200 200w, //fr.melvita.com/cdn/shop/files/logo-melvita-white.svg?v=1788265829&width=400 400w, //fr.melvita.com/cdn/shop/files/logo-melvita-white.svg?v=1788265829&width=600 600w" width="600" height="136" loading="lazy" style="--image-mobile-max-width: 70vw; --image-max-width: 32vw;" class="constrained-image"></div><ul class="social-media unstyled-list" role="list"><li class="social-media__item branding-colors--facebook"> 3083 <a href="https://www.facebook.com/MelvitaFR/" class="tap-area" target="_blank" rel="noopener" aria-label="Nous suivre sur Facebook"><svg aria-hidden="true" focusable="false" width="24" class="icon icon-facebook-outline" viewBox="0 0 24 24" fill="none"> 3084 <path transform="translate(6 1.5)" d="M11.5 0.5H8.5C7.17392 0.5 5.90215 1.02678 4.96447 1.96447C4.02678 2.90215 3.5 4.17392 3.5 5.5V8.5H0.5V12.5H3.5V20.5
3084H7.5V12.5H10.5L11.5 8.5H7.5V5.5C7.5 5.23478 7.60536 4.98043 7.79289 4.79289C7.98043 4.60536 8.23478 4.5 8.5 4.5H11.5V0.5Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3085 </svg></a> 3086 </li><li class="social-media__item branding-colors--instagram"> 3087 <a href="https://www.instagram.com/melvitaofficial/" class="tap-area" target="_blank" rel="noopener" aria-label="Nous suivre sur Instagram"><svg aria-hidden="true" focusable="false" width="24" class="icon icon-instagram-outline" viewBox="0 0 24 24" fill="none"> 3088 <path d="M17 2H7C4.23858 2 2 4.23858 2 7V17C2 19.7614 4.23858 22 7 22H17C19.7614 22 22 19.7614 22 17V7C22 4.23858 19.7614 2 17 2Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3089 <path d="M15.9997 11.3703C16.1231 12.2025 15.981 13.0525 15.5935 13.7993C15.206 14.5461 14.5929 15.1517 13.8413 15.53C13.0898 15.9082 12.2382 16.0399 11.4075 15.9062C10.5768 15.7726 9.80947 15.3804 9.21455 14.7855C8.61962 14.1905 8.22744 13.4232 8.09377 12.5925C7.96011 11.7619 8.09177 10.9102 8.47003 10.1587C8.84829 9.40716 9.45389 8.79404 10.2007 8.40654C10.9475 8.01904 11.7975 7.87689 12.6297 8.0003C13.4786 8.12619 14.2646 8.52176 14.8714 9.12861C15.4782 9.73545 15.8738 10.5214 15.9997 11.3703Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3090 <path d="M17.5 6.5H17.51" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3091 </svg></a> 3092 </li><li class="social-media__item branding-colors--youtube"> 3093 <a href="https://www.youtube.com/user/MelvitaFR" class="tap-area" target="_blank" rel="noopener" aria-label="Nous suivre sur YouTube"><svg aria-hidden="true" focusable="false" width="24" class="icon icon-youtube-outline" viewBox="0 0 24 24" fill="none"> 3094 <path d="M22.5401 6.42C22.4213 5.94541 22.1794 5.51057 21.8387 5.15941C21.4981 4.80824 21.0708 4.55318 20.6001 4.42C18.8801 4 12.0001 4 12.0001 4C12.0001 4 5.12008 4 3.40008 4.46C2.92933 4.59318 2.50206 4.84824 2.16143 5.19941C1.8208 5.55057 1.57887 5.98541 1.46008 6.46C1.1453 8.20556 0.991319 9.97631 1.00008 11.75C0.988863 13.537 1.14285 15.3213 1.46008 17.08C1.59104 17.5398 1.83839 17.9581 2.17823 18.2945C2.51806 18.6308 2.9389 18.8738 3.40008 19C5.12008 19.46 12.0001 19.46 12.0001 19.46C12.0001 19.46 18.8801 19.46 20.6001 19C21.0708 18.8668 21.4981 18.6118 21.8387 18.2606C22.1794 17.9094 22.4213 17.4746 22.5401 17C22.8524 15.2676 23.0064 13.5103 23.0001 11.75C23.0113 9.96295 22.8573 8.1787 22.5401 6.42Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3095 <path d="M9.75 15.0205L15.5 11.7505L9.75 8.48047V15.0205Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/> 3096 </svg></a> 3097 </li></ul></div><div class="footer__aside"><ul class="footer__legal-links unstyled-list" role="list"><li><a href="/pages/donnees-personnelles" class="footer__legal-link link-reversed link-tap-area">Données personnelles</a></li><li><a href="/pages/conditions-generales-de-vente" class="footer__legal-link link-reversed link-tap-area">Conditions générales de vente </a></li><li><a href="/pages/charte-cookie" class="footer__legal-link link-reversed link-tap-area">Charte cookies </a></li><li><a 3098 href="#cookie" 3099 class="footer__legal-link link-reversed link-tap-area" 3100 onclick="if(window.OneTrust){event.preventDefault();OneTrust.ToggleInfoDisplay()}" 3101 >Gestion des cookies </a></li><li><a href="/pages/mentions-legales" class="footer__legal-link link-reversed link-tap-area">Mentions légales </a></li><li><a href="/pages/conditions-generales-programme-de-fidelite" class="footer__legal-link link-reversed link-tap-area">Conditions générales - Programme de fidélité</a></li></ul></div></div> 3102</div> 3103 3104</footer> 3105<!-- END sections: footer-group --><x-toast class="toast"> 3106 3107 </x-toast> 3108 3109
3109<script> 3110 if (window) {const urlParams = new URLSearchParams(window?.location?.search); 3111 const sales_token = urlParams.get('ts'); 3112 if (sales_token) {window.localStorage.setItem('kolsquare', JSON.stringify({ sales_token }));}} 3113 </script>
3113 3114
3114<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
3114 3115</body> 3116</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.