Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
1 / 15
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.
46% OFF
Épargnez €16.99
forherwish

Masque capillaire à la kératine violette : fixe la couleur et neutralise les tons cuivrés et jaunes pour les cheveux blonds, gris argentés et méchés.

€19.99 €36.98
5 ventes
capacité
Montant
Quantité

CARACTÉRISTIQUES

TECHNOLOGIE COLOR LOCK : Spécialement formulé pour les cheveux blonds, argentés et gris, ce masque fixe la couleur et préserve son éclat, prévenant ainsi l'affadissement et garantissant des mèches fraîches et éclatantes.

 

NEUTRALISATION DES TONS LAITON ET JAUNE : Les pigments violets neutralisent efficacement les tons cuivrés et jaunes indésirables, laissant vos cheveux avec une couleur plus froide et plus équilibrée qui améliore votre apparence générale.

 

AVANTAGES D'UN REVITALISANT EN PROFONDEUR : Infusé de kératine, ce masque capillaire nourrit et revitalise vos cheveux en profondeur, renforçant les mèches, réduisant la casse et améliorant la brillance pour des cheveux plus sains et plus faciles à coiffer.

 

APPLICATION FACILE : Conçu pour plus de commodité, ce masque peut être facilement intégré à votre routine de soins capillaires habituelle, offrant des résultats en quelques minutes seulement, ce qui le rend parfait pour les modes de vie chargés.

 

CONVIENT À TOUS LES TYPES DE CHEVEUX : Que vos cheveux soient raides, ondulés ou bouclés, ce masque polyvalent convient à tous les types de cheveux, ce qui en fait un ajout essentiel à votre routine de soins capillaires pour toute personne ayant des cheveux méchés ou colorés.

 

CARACTÉRISTIQUES

Poids net : 100 g

Couleur : Violet

Contenu : 1 masque capillaire à la kératine violette - Fixe la couleur et neutralise les reflets cuivrés et jaunes pour cheveux blonds, gris argentés et méchés.

REMARQUE :

À conserver dans un endroit frais et sec, à l’abri de la lumière directe du soleil.

Tenir hors de portée des enfants.

En raison des différences entre les écrans et les effets de lumière, la couleur réelle de l’article peut être légèrement différente de celle présentée sur les photos.

1. Dois-je avoir un compte pour commander ?
Non, vous pouvez également passer une commande en tant qu'invité. Mais vous bénéficiez de certains avantages si vous avez un compte chez nous :

Processus de paiement rapide
Visualisez facilement l'état et l'historique de votre commande.
Recevez des mises à jour détaillant nos nouveautés et nos promotions spéciales.


2. Quels modes de paiement acceptez-vous ?
Nous acceptons toutes les principales cartes de crédit (VISA, Mastercard, Discover, AMEX) et les paiements PayPal.



3. Ma commande en ligne est-elle sécurisée ?
Lorsque vous achetez en ligne en utilisant votre carte de crédit, toutes vos informations sont saisies sur une page Web sécurisée par SSL. Vos informations sont ensuite cryptées par SSL et envoyées directement au réseau de notre fournisseur de carte de crédit, où votre carte et la transaction sont autorisées et approuvées. Les informations relatives à votre carte de crédit ne sont pas stockées sur nos serveurs.



4. Y a-t-il des taux de change ?
Toutes nos transactions sont basées sur l'euro. Si votre carte de crédit est libellée dans une autre devise, le total de votre commande sera calculé sur la base du taux de change quotidien à partir de la date à laquelle l'émetteur de votre carte traite la transaction.



5. comment définir mon adresse de livraison ?
Notre site et nos services étant basés sur le français, toutes les informations que vous saisissez doivent l'être en français, y compris la ponctuation. Si certaines des lettres de votre adresse contiennent des lettres non françaises, nous vous recommandons de les remplacer par des lettres françaises similaires. Par exemple, vous pouvez remplacer la lettre " ?". pour "c"



6. Puis-je modifier mon adresse de livraison après avoir passé une commande ?
Nous vous informons que votre adresse de livraison ne peut pas être modifiée après le traitement ou l'expédition de la commande. Veuillez mettre à jour votre adresse de livraison à votre adresse résidentielle plutôt qu'à votre adresse de vacances, car nous ne savons pas combien de temps le service des douanes du pays de destination gardera le colis en attente.



7. combien de temps dure la livraison et comment puis-je suivre mon colis ?
Le délai de livraison dépend de l'option d'expédition que vous avez choisie. Une fois la commande expédiée, nous vous enverrons par courriel votre numéro de suivi et le site Web de suivi. Nous ne sommes pas responsables des retards causés par le service des douanes de votre pays.



8. Que dois-je faire si des articles manquent dans ma commande ?
Si un article est toujours manquant, veuillez nous contacter immédiatement à service@bonusvogue.com.



Si vous avez encore des questions, veuillez nous contacter directement à l'adresse e-mail service@bonusvogue.com

87.3% des clients ont également acheté Je n'aime pas ça?
/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1710495796818').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);

émettre un commentaire
Commentaire de clients
tu as atteint le fond
Le plus récent
Le plus aimé
Meilleures notes
Notes les plus basses
×
class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not support to.