De quoi s’agit-il, en deux phrases
La directive (UE) 2023/2673 (qui ajoute l’article 11 bis à la directive 2011/83/UE sur les droits des consommateurs) oblige toute boutique en ligne B2C de l’Union à proposer un bouton de rétractation. En France, l’obligation découle de l’article L221-21 du Code de la consommation, modifié par l’ordonnance n° 2026-2 du 5 janvier 2026. Elle s’applique dans toute l’UE à partir du 19 juin 2026. Aucune période de transition, aucun délai de tolérance.
Cela touche particulièrement les marchands Shopify, car Shopify n’offre aucune solution native et la plupart des thèmes n’intègrent pas le bouton. Vous devez l’ajouter vous-même.
Le processus en deux étapes prescrit par la loi
L’étape 1 est un bouton dans la navigation ou le pied de page. Il indique « Rétractation du contrat ». L’exposé des motifs cite expressément cette formulation comme référence. Vous pouvez la reformuler, tant que le sens reste sans équivoque. Toute formulation fantaisiste augmente le risque de mise en demeure.
L’étape 2 est le formulaire qui s’ouvre lorsqu’on clique sur l’étape 1. Deux champs obligatoires : le nom et un moyen de contact (e-mail ou téléphone). Deux champs facultatifs : la référence de commande et un champ de texte libre. Le bouton de validation indique « Confirmer la rétractation ».
La boutique ne peut pas exiger de connexion. Contraindre quelqu’un à se connecter d’abord pour exercer son droit légal de rétractation enfreint l’article L221-21.
Accusé de réception sur un support durable
Après l’envoi, un accusé de réception doit suivre. La loi dit « sans retard injustifié ». En pratique, cela signifie quelques secondes, pas des heures. La confirmation doit contenir le texte intégral de la déclaration de rétractation, ainsi que la date et l’heure de réception.
Le format doit être un « support durable ». Un e-mail répond à cette exigence. Un bref bandeau toast dans le navigateur ne suffit pas, car il disparaît à la fermeture de l’onglet.
Ce qui se passe si le bouton est absent
Deux mécanismes se déclenchent en même temps. Premièrement : les associations professionnelles et les organismes de protection des consommateurs scrutent les boutiques à la recherche de boutons manquants. Une mise en demeure coûte généralement entre 500 et 2 000 €, davantage en cas d’infractions répétées.
Deuxièmement : le délai de rétractation se prolonge automatiquement à douze mois et quatorze jours. Un client qui commande en juillet 2026 peut se rétracter jusqu’en juillet 2027. Chacun de ces retours est un coût bien réel, et aucune de vos prévisions financières ne l’a anticipé.
Pourquoi les boutiques Shopify ont un problème particulier
Shopify est une plateforme fermée. Vous ne pouvez pas simplement éditer un fichier PHP comme dans WooCommerce. Vous travaillez avec des templates Liquid, des sections de thème et des app embeds. Cela laisse deux voies réalistes.
Voie A : vous intégrez le bouton directement dans votre thème. Vous éditez theme.liquid, ajoutez une section ou un snippet, enregistrez votre propre route pour le formulaire et écrivez une logique de traitement côté serveur dans une app. C’est faisable, mais vous êtes alors responsable vous-même de l’hébergement, de l’envoi des e-mails, de la limitation de débit et de la conservation.
Voie B : vous utilisez un widget chargé via une balise de script. Shopify autorise les balises de script via les Theme App Embeds. Vous activez l’embed une fois dans l’éditeur de thème, et le bouton apparaît automatiquement dans la navigation ou le pied de page. C’est la voie que nous opérons.
Installation dans Shopify via Theme App Embed
Un Theme App Embed est une extension d’application spéciale que Shopify prend en charge depuis Online Store 2.0. Elle charge un script sans que vous ayez à toucher au code du thème. Le marchand clique sur « App embeds » dans le customizer, active le commutateur, et c’est terminé.
Avec WiderrufButton, cela donne ceci : vous enregistrez le domaine de votre boutique dans le tableau de bord, recevez une clé de widget, terminé. Le widget se charge dans le Shadow DOM, n’entre pas en conflit avec le CSS de votre thème, ne dépose aucun cookie et reste sous 15 Ko gzippé.
La variante pas à pas avec du code se trouve dans notre guide du bouton de rétractation. Si vous préférez lire la page produit : voir Bouton de rétractation.
Ce qui doit être prêt pour le 19 juin
Bouton dans la navigation ou le pied de page, accessible sans défilement. Formulaire avec les deux champs obligatoires. Accusé de réception par e-mail, avec le contenu intégral de la rétractation et un horodatage. Une adresse dans vos mentions légales permettant les demandes de renseignements. Et surtout : le bouton doit rester disponible pendant tout le délai de rétractation, soit au moins quatorze jours à compter de la réception des marchandises.
Quiconque exploite aujourd’hui une boutique où un client ne peut se rétracter que par un formulaire de contact n’est pas conforme. L’ancienne règle était « par écrit ». La nouvelle règle dit « bouton ». C’est une différence, et la différence, c’est le bouton.
Idées reçues fréquentes chez les marchands Shopify
« Mais j’ai la page de rétractation de Shopify dans mes textes juridiques. » C’est un texte statique, pas un bouton. La loi exige une interaction qui déclenche une déclaration de rétractation.
« Mon thème a un bouton de contact. » Un bouton de contact n’est pas un bouton de rétractation, car il n’est ni nommé comme tel ni générateur d’une déclaration de rétractation formalisée.
« Je suis petit, ça ne me concerne pas. » L’obligation s’applique à toute boutique B2C, quel que soit le chiffre d’affaires ou le nombre d’employés.