Conditions générales de vente

CGV
RS Cosmetics.

Les conditions générales de vente s'appliquent à toute commande passée sur le site RS. Elles précisent les droits et obligations de l'acheteur et du vendeur, en conformité avec le droit français de la vente à distance.

1 · Objet

Champ d'application

Les présentes CGV régissent la vente de produits cosmétiques artisanaux RS, fabriqués au Mali et expédiés depuis la France ou le Mali. Toute commande implique l'acceptation sans réserve des présentes conditions par l'acheteur. RS Cosmetics se réserve la possibilité d'adapter ou de modifier les présentes CGV ; la version applicable est celle en vigueur à la date de la commande.

2 · Prix

Prix et monnaie

Les prix sont indiqués en euros, toutes taxes comprises (TTC). La TVA applicable est la TVA française au taux en vigueur. Les frais de livraison sont facturés en sus, sauf mention contraire (livraison offerte dès 60 € pour la France métropolitaine et l'Union européenne). RS Cosmetics se réserve le droit de modifier ses prix à tout moment, les produits étant facturés sur la base du tarif en vigueur au moment de la commande.

3 · Commande

Processus de commande

La commande est réputée acceptée lors de la validation finale par l'acheteur et de la confirmation reçue par email. RS Cosmetics se réserve le droit de refuser toute commande en cas de litige existant avec l'acheteur, ou de problème d'approvisionnement sur un produit du Sahel en rupture saisonnière.

4 · Paiement

Moyens de paiement acceptés

Le paiement s'effectue par carte bancaire (Visa, Mastercard, American Express) ou PayPal, depuis la page /panier. La transaction est sécurisée ; RS Cosmetics ne conserve aucune donnée bancaire. Le débit intervient à la confirmation de la commande.

5 · Livraison

Délais & transport

La France métropolitaine est livrée sous 2 à 4 jours ouvrés, l'Union européenne sous 4 à 7 jours ouvrés, et les commandes internationales sous 7 à 14 jours ouvrés. Chaque commande est préparée manuellement à l'atelier au Mali — prévoyez jusqu'à 48 h de préparation avant la prise en charge par le transporteur. Pour plus de détails, consultez la page Livraison & retours.

6 · Rétractation

Droit de retour

Conformément au Code de la consommation, l'acheteur dispose de 14 jours à compter de la réception pour retourner un produit non ouvert et dans son emballage d'origine. Pour initier un retour, écrivez à rs@polsia.app. Pour des raisons d'hygiène, les soins ouverts ou utilisés ne sont pas repris.

7 · Contact

Service client

Pour toute question relative à une commande, un produit, ou l'application des présentes CGV, écrivez-nous à rs@polsia.app. Nous répondons en français, sous 24 h ouvrées.

. window.rsHasConsent = function(category) { try { var raw = localStorage.getItem(STORAGE_KEY); if (!raw) return false; var c = JSON.parse(raw); if (!c || c.v !== VERSION) return false; return !!c[category]; } catch (e) { return false; } }; window.rsLoadAnalytics = function() { var slug = window.__rsAnalyticsSlug || ''; if (!slug) return; var vid; try { vid = localStorage.getItem('polsia_vid'); if (!vid) { vid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random() * 16 | 0; return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16); }); localStorage.setItem('polsia_vid', vid); } } catch (e) { return; } new Image().src = 'https://polsia.com/api/beacon/pixel?s=' + encodeURIComponent(slug) + '&v=' + encodeURIComponent(vid); document.dispatchEvent(new CustomEvent('rs:analytics-loaded')); }; window.rsOpenCookieSettings = function() { openBanner(); }; var lastOpener = null; function announce(msg) { if (live) live.textContent = msg; } function persist(state) { var payload = Object.assign({ analytics: false, marketing: false, ts: new Date().toISOString(), v: VERSION }, state); try { localStorage.setItem(STORAGE_KEY, JSON.stringify(payload)); } catch (e) {} document.dispatchEvent(new CustomEvent('rs:consent', { detail: payload })); return payload; } function closeBanner() { if (!banner) return; banner.hidden = true; banner.setAttribute('aria-hidden', 'true'); if (panel) { panel.setAttribute('aria-hidden', 'true'); } if (customizeBtn) customizeBtn.setAttribute('aria-expanded', 'false'); if (notice) notice.hidden = true; if (lastOpener && typeof lastOpener.focus === 'function') { try { lastOpener.focus(); } catch (e) {} } } function openBanner(opener) { if (!banner) return; lastOpener = opener || null; banner.hidden = false; banner.setAttribute('aria-hidden', 'false'); if (notice) notice.hidden = false; if (acceptBtn) acceptBtn.focus(); } function acceptAll() { persist({ analytics: true, marketing: true }); announce('Choix enregistré : tout accepter.'); if (analyticsToggle) analyticsToggle.checked = true; if (marketingToggle) marketingToggle.checked = true; closeBanner(); if (window.rsLoadAnalytics) window.rsLoadAnalytics(); } function rejectAll() { persist({ analytics: false, marketing: false }); announce('Choix enregistré : tout refuser.'); if (analyticsToggle) analyticsToggle.checked = false; if (marketingToggle) marketingToggle.checked = false; closeBanner(); } function savePreferences() { var aN = analyticsToggle ? analyticsToggle.checked : false; var mN = marketingToggle ? marketingToggle.checked : false; persist({ analytics: !!aN, marketing: !!mN }); announce('Choix enregistré.'); closeBanner(); if (aN && window.rsLoadAnalytics) window.rsLoadAnalytics(); } function togglePanel() { if (!panel || !customizeBtn) return; var expanded = customizeBtn.getAttribute('aria-expanded') === 'true'; var next = !expanded; customizeBtn.setAttribute('aria-expanded', next ? 'true' : 'false'); panel.setAttribute('aria-hidden', next ? 'false' : 'true'); if (next) { panel.scrollIntoView({ block: 'nearest', behavior: 'smooth' }); } } if (acceptBtn) acceptBtn.addEventListener('click', acceptAll); if (rejectBtn) rejectBtn.addEventListener('click', rejectAll); if (customizeBtn) customizeBtn.addEventListener('click', togglePanel); if (saveBtn) saveBtn.addEventListener('click', savePreferences); if (banner) { document.addEventListener('keydown', function(e) { if (!banner || banner.hidden) return; if (e.key === 'Escape') { e.preventDefault(); rejectAll(); } }); } // First-load: synchronous reveal BEFORE first paint so there is no flash. // The partial ships with hidden=true; we remove it inline. try { var raw = localStorage.getItem(STORAGE_KEY); var existing = raw ? JSON.parse(raw) : null; if (!existing || existing.v !== VERSION) { banner.hidden = false; banner.setAttribute('aria-hidden', 'false'); if (notice) notice.hidden = false; } else { // Existing choice: still wire up so toggles reflect stored state if user reopens settings. if (analyticsToggle) analyticsToggle.checked = !!existing.analytics; if (marketingToggle) marketingToggle.checked = !!existing.marketing; } } catch (e) { banner.hidden = false; banner.setAttribute('aria-hidden', 'false'); if (notice) notice.hidden = false; } })();