🏍️ Livraison GRATUITE dès 149Dhs sur Casablanca - Rabat - Mohammedia - Darbouazza et Bouskoura
🚚 Livraison GRATUITE dès 449Dhs sur les autres villes
💸 DESTOCKAGE jusqu'à -30%
🤩 Programme de fidélité jusqu'à -6% !
😍 Plus de 50 000 clients satisfaits
👍 4.7/5 sur plus de 680 avis Google
🏍️ Livraison GRATUITE dès 149Dhs sur Casa-Rabat
🚚 Livraison GRATUITE dès 449Dhs sur les autres villes
💸 DESTOCKAGE jusqu'à -30%
🤩 Programme de fidélité jusqu'à -6% !
😍 Plus de 50 000 clients satisfaits
👍 4.7/5 sur plus de 680 avis Google

BIOKERA – Shampoing Specifique Anti-Pelliculaire – 300ml

230 Dhs

🔥 Dernière pièce disponible !
⚠️ Stock estimé, peut être déjà en rupture de stock
Gagnez 230 Glow Points !

Le SHAMPOING BIOKERA ANTI-PELLICULAIRE est un traitement capillaire conçu pour éliminer les pellicules et apaiser le cuir chevelu. Sa formule enrichie en acide salicylique, huile de lin et acide undécylénique offre une action anti-pelliculaire puissante, tout en respectant l’équilibre du pH du cuir chevelu.

WhatsApp
💬 Service client
Retour
🛒Je veux passer commande
📋J'ai une ordonnance
🚚Question sur la livraison
🧴Question sur un produit
📦Question sur une commande
💵Moyens de paiement
🔄Retour / Annulation / Remboursement
Vous avez des codes promo ?
🛡️Vos produits sont-ils authentiques ?
🏬Avez-vous un point de vente / click & collect ?
📩Faire une réclamation
✉️Autre question sur ce produit

📋 Envoyez-nous votre ordonnance

Prenez en photo ou scannez votre ordonnance, puis envoyez-la nous sur WhatsApp.

ℹ️ En envoyant votre ordonnance, vous acceptez que Parachezvous.ma consulte les informations qui y figurent.

📄 Droit de rétractation

Vous avez jusqu'à 7 jours à compter de la date de livraison pour retourner gratuitement vos produits non ouverts et non endommagés, sans aucun frais supplémentaire — avec un échange ou un remboursement total ou partiel, selon votre choix.

📤Je veux retourner ma commande
📤Je veux retourner une partie de ma commande
Je veux annuler ma commande
Je veux annuler une partie de ma commande
💳Question sur mon remboursement

🚚 Casablanca - Rabat

  • Villes concernées : Casablanca, Rabat, Mohammedia, Dar Bouazza et Bouskoura
  • 20 Dhs seulement pour toute commande
  • Livraison gratuite dès 149 Dhs d'achat
  • Livraison en 24 à 48h selon votre ville et quartier

🚛 Autres villes

  • 35 Dhs pour toute commande
  • Gratuite dès 449 Dhs d'achat
  • Réception estimée entre 24 et 72h selon la localité

💵 Moyens de paiement acceptés

 
  • 💵 Le paiement en espèces à la livraison (paiement à la réception)
  • 💳 Le paiement en ligne, en toute sécurité, via Payzone

🛡️ Authenticité garantie

Tous nos produits sont 100% authentiques et originaux, achetés directement auprès des laboratoires et distributeurs officiels.
Aucune contrefaçon, aucun produit reconditionné.

🏬 Point de vente

Non, nous sommes 100% digital — pas de point de vente physique ni de click & collect.
Tout se passe en ligne, depuis notre siège à Casablanca (Val Fleurie), avec livraison partout au Maroc.

📩 Faire une réclamation

Si vous rencontrez un souci avec votre commande ou un produit, merci de nous envoyer un email détaillant votre réclamation à l'adresse ci-dessous. Notre équipe vous répondra dans les meilleurs délais.

✉️ Envoyer un email de réclamation
'); } return w; } catch (e) { return null; } } function openOverlay(){ document.getElementById('pcv-wa-overlay').classList.add('active'); document.getElementById('pcv-wa-backdrop').classList.add('active'); showView('main'); } function closeOverlay(){ document.getElementById('pcv-wa-overlay').classList.remove('active'); document.getElementById('pcv-wa-backdrop').classList.remove('active'); } function updateScrollHint(){ var body = document.querySelector('.pcv-wa-body'); var hint = document.querySelector('.pcv-wa-scroll-hint'); if (!body || !hint) return; var canScroll = body.scrollHeight > body.clientHeight + 4; var atBottom = body.scrollTop + body.clientHeight >= body.scrollHeight - 4; hint.classList.toggle('visible', canScroll && !atBottom); } var currentView = 'main'; function showView(name){ currentView = name; document.querySelectorAll('.pcv-wa-view').forEach(function(v){ v.classList.remove('active'); }); document.querySelector('.pcv-wa-view[data-view="'+name+'"]').classList.add('active');var header = document.getElementById('pcv-wa-header'); var backBtn = document.getElementById('pcv-wa-header-back'); if (name === 'main') { header.classList.remove('has-back'); } else { header.classList.add('has-back'); backBtn.onclick = function(){ showView(parentView[name] || 'main'); }; }var body = document.querySelector('.pcv-wa-body'); body.scrollTop = 0; setTimeout(updateScrollHint, 30); } document.querySelector('.pcv-wa-body').addEventListener('scroll', updateScrollHint); window.addEventListener('resize', updateScrollHint);document.getElementById('pcv-wa-btn').addEventListener('click', function(e){ e.preventDefault(); openOverlay(); }); document.querySelector('.pcv-wa-close').addEventListener('click', closeOverlay); document.getElementById('pcv-wa-backdrop').addEventListener('click', closeOverlay);// Affiche directement prix + stock dès l'ouverture du sous-menu produit (pas besoin de cliquer) function renderProduitInfo(){ var priceBox = document.getElementById('pcv-price-box'); if (isProduct && productPrice) { var priceHtml = (onSale && regularPrice) ? '' + regularPrice + '' + productPrice + '' : '' + productPrice + ''; priceBox.innerHTML = '

💰 Prix du produit

Le prix est de :

' + priceHtml + '
'; } else { priceBox.innerHTML = '

💰 Prix du produit

Merci de vous rendre sur la page du produit qui vous intéresse pour voir son prix ici.

'; }var stockBox = document.getElementById('pcv-stock-box'); var badge; if (isProduct && stockState === 'rupture') { badge = '
Rupture de stock
⚠️ Revenez prochainement
'; } else if (isProduct && (stockState === 'faible' || stockState === 'critique')) { badge = '
' + '
🔥' + stockLabel + '
' + '
⚠️ Stock estimé, peut être déjà en rupture de stock
' + '
' + '
'; } else if (isProduct && stockState === 'ok') { badge = '
Ce produit est en stock
⚠️ Stock estimé
'; } if (isProduct && badge) { stockBox.innerHTML = '

📊 Disponibilité

État du stock :

' + badge; } else { stockBox.innerHTML = '

📊 Disponibilité

Merci de vous rendre sur la page du produit qui vous intéresse pour voir sa disponibilité ici.

'; } }document.getElementById('pcv-opt-produit-menu').addEventListener('click', function(){ renderProduitInfo(); showView('produit-menu'); });// Autre question produit (avec prix) document.getElementById('pcv-opt-produit').addEventListener('click', function(){ var link = isProduct ? window.location.href : prompt('Lien du produit concerné ?'); if (!link) return; // vide OU annulé var priceTxt = (isProduct && productPrice) ? (' (Prix : ' + productPrice + ')') : ''; sendWA('Bonjour, j\'ai une question concernant ce produit' + priceTxt + ' : ' + link); closeOverlay(); });// Livraison / paiement / authenticité / point de vente / réclamation (info, pas de message) document.getElementById('pcv-opt-livraison').addEventListener('click', function(){ showView('delivery'); }); document.getElementById('pcv-opt-paiement').addEventListener('click', function(){ showView('paiement'); }); document.getElementById('pcv-opt-authenticite').addEventListener('click', function(){ showView('authenticite'); }); document.getElementById('pcv-opt-pointvente').addEventListener('click', function(){ showView('pointvente'); }); document.getElementById('pcv-opt-reclamation-menu').addEventListener('click', function(){ showView('reclamation'); }); document.getElementById('pcv-opt-ordonnance').addEventListener('click', function(){ showView('ordonnance'); });// Remises / codes promo (info, pas de message) document.getElementById('pcv-opt-promo').addEventListener('click', function(){ var box = document.getElementById('pcv-promo-box'); box.innerHTML = '

🎁 Remises & codes promo

' + '

Nous n\'avons pas de code promo à offrir en général — mais on a mieux :

' + ''; showView('promo'); });// Question commande (format N + numéro) — annuler = on n'envoie rien document.getElementById('pcv-opt-commande').addEventListener('click', function(){ var num = prompt('Numéro de commande (laissez vide si vous ne l\'avez pas) :'); if (num === null) return; num = num.trim(); var text = num ? 'Bonjour, j\'ai une question concernant ma commande N' + num : 'Bonjour, j\'ai une question concernant une de mes commandes (je n\'ai pas le numéro sous la main).'; sendWA(text); closeOverlay(); });// Retour / Annulation - sous-menu document.getElementById('pcv-opt-retour').addEventListener('click', function(){ showView('retour'); }); document.querySelectorAll('[data-retour]').forEach(function(el){ el.addEventListener('click', function(){ var action = el.getAttribute('data-retour'); var num = prompt('Numéro de la commande concernée (laissez vide si vous ne l\'avez pas) :'); if (num === null) return; num = num.trim(); var text = 'Bonjour, je souhaite ' + action; text += num ? (', commande N' + num) : ' (je n\'ai pas le numéro de commande sous la main)'; sendWA(text + '.'); closeOverlay(); }); });// ============================================================ // Ordonnance : disclaimer + upload + envoi (partage natif mobile / lien WhatsApp en fallback desktop) // ============================================================ (function(){ var fileIn = document.getElementById('pcv-ordo-file'); var drop = document.getElementById('pcv-ordo-drop'); var fname = document.getElementById('pcv-ordo-filename'); var prenom = document.getElementById('pcv-ordo-prenom'); var telIn = document.getElementById('pcv-ordo-tel'); var subBtn = document.getElementById('pcv-ordo-submit'); var omsg = document.getElementById('pcv-ordo-msg'); var fnameDefault = 'Choisir un ou plusieurs fichiers'; // Les photos sont compressées côté navigateur avant l'envoi (voir ordoCompressImage), donc on // tolère des photos brutes assez lourdes à la sélection (ex: photo 12 Mo prise au smartphone) : // seul le poids APRÈS compression compte vraiment pour le serveur. var ordoMaxRawSize = 25 * 1024 * 1024;function ordoCheckReady(){ subBtn.disabled = !(fileIn.files && fileIn.files.length); }fileIn.addEventListener('change', function(){ omsg.className = 'pcv-wa-msg'; omsg.textContent = ''; if (!fileIn.files.length) { fname.textContent = fnameDefault; drop.classList.remove('has-file'); ordoCheckReady(); return; }var files = Array.prototype.slice.call(fileIn.files);if (files.length > ordoMaxFiles) { omsg.className = 'pcv-wa-msg error'; omsg.textContent = ordoMaxFiles + ' fichiers max en une fois.'; fileIn.value = ''; fname.textContent = fnameDefault; drop.classList.remove('has-file'); ordoCheckReady(); return; }var tooBig = files.some(function(f){ return f.size > ordoMaxRawSize; }); if (tooBig) { omsg.className = 'pcv-wa-msg error'; omsg.textContent = 'Un des fichiers est trop volumineux.'; fileIn.value = ''; fname.textContent = fnameDefault; drop.classList.remove('has-file'); ordoCheckReady(); return; }fname.textContent = (files.length === 1) ? files[0].name : (files.length + ' fichiers sélectionnés'); drop.classList.add('has-file'); ordoCheckReady(); });function ordoResetButton(){ subBtn.disabled = false; subBtn.classList.remove('is-loading'); subBtn.innerHTML = 'Envoyer via WhatsApp'; }// Remet toute la vue à zéro (fichier, champs, message) pour un prochain envoi function ordoResetForm(){ fileIn.value = ''; fname.textContent = fnameDefault; drop.classList.remove('has-file'); prenom.value = ''; telIn.value = ''; omsg.className = 'pcv-wa-msg'; omsg.textContent = ''; ordoResetButton(); subBtn.disabled = true; }function ordoMakeBatchId(){ if (window.crypto && crypto.randomUUID) return crypto.randomUUID(); return 'b' + Date.now() + Math.random().toString(16).slice(2); }// Compresse une photo côté navigateur avant l'envoi (redimensionnement + ré-encodage JPEG) pour // alléger fortement l'upload : plus rapide sur mobile, et moins de charge pour le serveur. Une // photo de smartphone de 4000x3000px / 6-10 Mo devient généralement une image de ~200-500 Ko. // Les PDF ne sont pas concernés (on les envoie tels quels). function ordoCompressImage(file){ return new Promise(function(resolve){ if (!file.type || file.type.indexOf('image/') !== 0) { resolve(file); return; } if (!window.createImageBitmap && !window.Image) { resolve(file); return; }var maxDim = 1600; // largeur/hauteur max - largement suffisant pour lire une ordonnance var quality = 0.72; var url = URL.createObjectURL(file); var img = new Image();img.onload = function(){ URL.revokeObjectURL(url); try { var w = img.naturalWidth || img.width; var h = img.naturalHeight || img.height; if (!w || !h) { resolve(file); return; }if (w > maxDim || h > maxDim) { if (w >= h) { h = Math.round(h * (maxDim / w)); w = maxDim; } else { w = Math.round(w * (maxDim / h)); h = maxDim; } }var canvas = document.createElement('canvas'); canvas.width = w; canvas.height = h; var ctx = canvas.getContext('2d'); ctx.drawImage(img, 0, 0, w, h);canvas.toBlob(function(blob){ // Si la compression ne fait pas gagner de poids (photo déjà petite/légère), on garde l'original. if (!blob || blob.size >= file.size) { resolve(file); return; } var newName = file.name.replace(/\.[^.]+$/, '') + '.jpg'; resolve(new File([blob], newName, { type: 'image/jpeg' })); }, 'image/jpeg', quality); } catch (e) { resolve(file); // en cas de souci (ex: image corrompue), on envoie l'original tel quel } }; img.onerror = function(){ URL.revokeObjectURL(url); resolve(file); }; img.src = url; }); }function uploadOrdonnance(file, batchId){ var fd = new FormData(); fd.append('action', 'pcv_wa_ordo_upload'); fd.append('nonce', ordoNonce); fd.append('ordonnance', file); fd.append('prenom', prenom.value.trim()); fd.append('tel', telIn.value.trim()); fd.append('batch_id', batchId); return fetch(ajaxUrl, { method: 'POST', body: fd }) .then(function(r){ return r.text().then(function(bodyText){ if (!r.ok) { throw new Error('Serveur a répondu ' + r.status + (bodyText ? (' - ' + bodyText.slice(0, 150)) : '')); } try { return JSON.parse(bodyText); } catch (parseErr) { // La réponse n'était pas du JSON propre (souvent un warning/erreur PHP affiché avant) : // on montre le tout début de la réponse brute pour comprendre pourquoi. throw new Error('Réponse invalide du serveur - ' + bodyText.slice(0, 150)); } }); }) .then(function(res){ if (!res || !res.ok) throw new Error((res && res.msg) || 'Échec de l\'envoi (raison inconnue).'); return res.url; }); }subBtn.addEventListener('click', function(){ if (subBtn.disabled) return;var files = Array.prototype.slice.call(fileIn.files); if (!files.length) return;// Ouvert tout de suite, de façon synchrone dans le clic, pour ne pas se faire bloquer par le // navigateur une fois la compression/l'upload (asynchrones) terminés - voir sendWA(). var waWin = pcvOpenWaTab();subBtn.disabled = true; subBtn.classList.add('is-loading'); subBtn.textContent = files.length > 1 ? 'Envoi en cours (0/' + files.length + ')...' : 'Envoi en cours...'; omsg.className = 'pcv-wa-msg'; omsg.textContent = '';// On upload systématiquement puis on ouvre WhatsApp avec TON numéro pré-rempli (que le client // ait ou non déjà ce numéro en contact). Le partage natif du téléphone a été retiré : il ne permet // pas de cibler un numéro précis, il propose juste "choisir une conversation" au client - inutile // si le client n'a pas déjà ton numéro enregistré. // Plusieurs fichiers = plusieurs photos/pages d'une même ordonnance : on les envoie un par un // au serveur (même batch_id pour les regrouper côté admin), puis on met tous les liens dans un // seul message WhatsApp. var batchId = ordoMakeBatchId(); var urls = [];files.reduce(function(chain, file, idx){ return chain.then(function(){ subBtn.textContent = files.length > 1 ? 'Compression (' + (idx + 1) + '/' + files.length + ')...' : 'Compression...'; return ordoCompressImage(file).then(function(compressed){ subBtn.textContent = files.length > 1 ? 'Envoi en cours (' + (idx + 1) + '/' + files.length + ')...' : 'Envoi en cours...'; return uploadOrdonnance(compressed, batchId); }).then(function(url){ urls.push(url); }); }); }, Promise.resolve()) .then(function(){ var caption = 'Bonjour, j\'ai mis une ordonnance sur votre site, merci de me confirmer la disponibilité et le prix des produits.'; var who = []; var p = prenom.value.trim(); var t = telIn.value.trim(); if (p) who.push('au nom de ' + p); if (t) who.push('sur le numéro ' + t); if (who.length) caption += ' (' + who.join(', ') + ')'; var numberedUrls = urls.map(function(u, i){ return (i + 1) + ' - ' + u; }).join('\n\n'); sendWA(caption + '\n\n' + numberedUrls, waWin); closeOverlay(); ordoResetForm(); }) .catch(function(err){ if (window.console && console.error) console.error('Envoi ordonnance échoué :', err); try { if (waWin && !waWin.closed) waWin.close(); } catch (e) {} omsg.className = 'pcv-wa-msg error'; // On affiche la vraie raison technique (au lieu d'un message générique) pour pouvoir // diagnostiquer directement depuis l'écran, sans avoir besoin d'ouvrir la console. var reason = (err && err.message) ? err.message : 'inconnue'; omsg.textContent = 'Erreur : ' + reason; ordoResetButton(); }); }); })();// Je veux passer commande : résumé + infos client si panier non vide, sinon message direct document.getElementById('pcv-opt-passer').addEventListener('click', function(){ var box = document.getElementById('pcv-order-box'); box.innerHTML = '

Chargement...

'; showView('order');fetch(ajaxUrl + '?action=pcv_wa_get_cart') .then(function(r){ return r.json(); }) .then(function(data){ if (data.empty) { sendWA('Bonjour, j\'ai besoin de vous pour passer une commande.'); closeOverlay(); return; }var html = '

🛒 Résumé de la commande

Total : ' + data.total + '
';var f = function(id){ var el = document.getElementById(id); return el ? el.value.trim() : ''; }; var s = (data.client || {}); var client = { prenom: (isCheckout && f('billing_first_name')) || s.prenom || '', adresse: (isCheckout && f('billing_address_1')) || s.adresse || '', quartier: (isCheckout && f('billing_quartier')) || s.quartier || '', ville: (isCheckout && f('billing_city')) || s.ville || '', tel: (isCheckout && f('billing_phone')) || s.tel || '', email: (isCheckout && f('billing_email')) || s.email || '' }; var hasClient = client.prenom || client.adresse || client.ville || client.tel || client.email || client.quartier;if (hasClient) { html += '

👤 Vos informations

'; if (client.prenom) html += '
Nom : ' + client.prenom + '
'; if (client.adresse) html += '
Adresse : ' + client.adresse + '
'; if (client.quartier) html += '
Quartier : ' + client.quartier + '
'; if (client.ville) html += '
Ville : ' + client.ville + '
'; if (client.tel) html += '
Téléphone : ' + client.tel + '
'; if (client.email) html += '
Email : ' + client.email + '
'; html += '
'; } else { html += '

Vos coordonnées n\'ont pas encore été renseignées sur le site.

'; }html += ''; box.innerHTML = html; updateScrollHint();document.getElementById('pcv-order-confirm').addEventListener('click', function(){ var btn = document.getElementById('pcv-order-confirm'); // Ouvert tout de suite (voir pcvOpenWaTab) pour éviter le blocage popup une fois le fetch // ci-dessous terminé. var waWin = pcvOpenWaTab(); btn.disabled = true; btn.classList.add('is-loading'); btn.innerHTML = 'Préparation du lien...';var params = new URLSearchParams(); params.append('action', 'pcv_wa_save_snapshot'); params.append('prenom', client.prenom); params.append('adresse', client.adresse); params.append('quartier', client.quartier); params.append('ville', client.ville); params.append('tel', client.tel); params.append('email', client.email);fetch(ajaxUrl, { method: 'POST', headers: {'Content-Type': 'application/x-www-form-urlencoded'}, body: params.toString() }) .then(function(r){ return r.json(); }) .then(function(res){ var msg = 'Bonjour, je souhaite passer la commande suivante :\n\n'; data.items.forEach(function(it){ msg += '- ' + it.qty + 'x ' + it.name + ' (' + it.total + ')\n'; }); msg += '\nTotal : ' + data.total + '\n';if (hasClient) { msg += '\n'; if (client.prenom) msg += 'Nom : ' + client.prenom + '\n'; if (client.adresse) msg += 'Adresse : ' + client.adresse + '\n'; if (client.quartier) msg += 'Quartier : ' + client.quartier + '\n'; if (client.ville) msg += 'Ville : ' + client.ville + '\n'; if (client.tel) msg += 'Téléphone : ' + client.tel + '\n'; if (client.email) msg += 'Email : ' + client.email + '\n'; }var link = (res && res.ok) ? res.url : data.checkout_url; msg += '\nLien pour retrouver mon panier + mes coordonnées en un clic : ' + link; sendWA(msg, waWin); closeOverlay(); }) .catch(function(){ try { if (waWin && !waWin.closed) waWin.close(); } catch (e) {} }); }); }); }); })();
230 Dhs
offre spéciale limitée

trousse offerte

A l’achat de 595Dhs de produits recevez une trousse blanche en cadeau