Mise à jour du 2 novembre 2026
En France, l’obligation s’applique depuis le 19 juin 2026. Nous avons écrit cet article avant l’échéance et l’avons mis à jour depuis. Si votre boutique n’a pas encore de bouton de rétractation, ajoutez-le dès maintenant.
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) impose aux boutiques en ligne qui vendent à des consommateurs 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, et s’applique depuis le 19 juin 2026 ; les autres États membres suivent selon leur propre transposition. 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 « Renoncer au contrat ici » : c’est le libellé fixé par l’art. D. 221-5 du Code de la consommation (une formule analogue dénuée d’ambiguïté est permise). 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. Il doit permettre trois indications : le nom, les éléments permettant d’identifier le contrat (le numéro de commande n’en est qu’un exemple) et l’adresse e-mail ou un autre moyen électronique pour l’accusé de réception. Un champ de texte libre est facultatif. 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 (art. D. 221-5) parle d’un « délai raisonnable ». En pratique, visez 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 son envoi.
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 : en France, la DGCCRF peut infliger une amende administrative (jusqu’à 15 000 € pour une personne physique, 75 000 € pour une personne morale). En Allemagne, les mises en demeure documentées à ce jour au titre du § 356a BGB ont coûté environ 417 € chacune.
Deuxièmement : si le consommateur n’est pas informé de l’existence et de l’emplacement de la fonction, le délai de rétractation peut se prolonger jusqu’à douze mois et quatorze jours après la réception des biens. Un client qui reçoit sa commande en juillet 2026 peut alors 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 installez l’application depuis le Shopify App Store, confirmez lors de la première connexion l’adresse e-mail qui recevra les rétractations, puis activez l’intégration d’application dans l’éditeur de thème. Aucune clé de widget à saisir. 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 en place
Bouton accessible sur chaque page et bien mis en évidence – fixé au bord de l’écran, dans la navigation ou nettement visible dans le pied de page ; il n’a pas besoin d’être visible sans défilement. Formulaire avec les trois informations obligatoires (nom, contrat, e-mail pour l’accusé de réception). 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.