Actualización del 2 de noviembre de 2026
La obligación se aplica desde el 19 de junio de 2026 en países como Alemania, Francia o Italia; en España, la transposición sigue pendiente. Escribimos este artículo antes de la fecha límite y lo hemos actualizado desde entonces. Si tu tienda vende a esos países y aún no tiene el botón de desistimiento, añádelo ahora.
De qué se trata, en dos frases
La Directiva (UE) 2023/2673 (que añade el artículo 11 bis a la Directiva 2011/83/UE sobre los derechos de los consumidores) exige a las tiendas online que venden a consumidores un botón de desistimiento. Los Estados miembros la aplican desde el 19 de junio de 2026 en cuanto entra en vigor su norma nacional; en España el derecho de desistimiento se regula en el TRLGDCU (Real Decreto Legislativo 1/2007), pero la transposición del botón todavía está pendiente. Donde la obligación ya se aplica, no hay periodo de transición ni margen de cortesía.
Esto golpea especialmente a los comerciantes de Shopify, porque Shopify no ofrece una solución nativa y la mayoría de los temas no incluyen el botón. Tienes que añadirlo tú.
El proceso en dos pasos que prescribe la ley
El paso 1 es un botón en la navegación o el pie de página. Dice « Desistir del contrato ». Una etiqueta de este tipo la prevé el propio texto legal (artículo 11 bis de la Directiva). Puedes reformularla, siempre que el significado siga siendo inequívoco. Cualquier formulación de fantasía aumenta el riesgo de requerimiento.
El paso 2 es el formulario que se abre al hacer clic en el paso 1. Debe permitir tres datos: el nombre, los datos que identifican el contrato (el número de pedido es solo una forma) y el correo electrónico u otro medio electrónico para el acuse de recibo. Un campo de texto libre es opcional. El botón de finalización dice « Confirmar desistimiento ».
La tienda no puede exigir un inicio de sesión. Allí donde la obligación ya se aplica, obligar a alguien a iniciar sesión primero para ejercer su derecho legal de desistimiento infringe la ley nacional de transposición (en Alemania, el § 356a BGB); en España, la transposición sigue pendiente.
Acuse de recibo en un soporte duradero
Tras el envío debe seguir un acuse de recibo. La ley dice « sin demora injustificada ». En la práctica eso significa segundos, no horas. La confirmación debe contener el texto completo de la declaración de desistimiento, además de la fecha y la hora de recepción.
El formato debe ser un « soporte duradero ». Un correo electrónico lo cumple. Un breve banner toast en el navegador no basta, porque desaparece al cerrar la pestaña.
Qué ocurre si falta el botón
Dos mecanismos actúan al mismo tiempo. Primero: allí donde la obligación ya está en vigor, competidores y asociaciones pueden reclamar. En Alemania, los requerimientos documentados hasta ahora relativos al § 356a BGB costaron unos 417 € cada uno; a través del abogado de un competidor puede costar más.
Segundo: si no se informa correctamente sobre el derecho de desistimiento, el plazo se amplía hasta doce meses y catorce días desde la recepción de la mercancía. Un cliente que recibe su pedido en julio de 2026 puede entonces desistir hasta julio de 2027. Cada una de esas devoluciones es un coste real, y ninguna de tus previsiones financieras lo ha contemplado.
Por qué las tiendas Shopify tienen un problema especial
Shopify es una plataforma cerrada. No puedes simplemente editar un archivo PHP como en WooCommerce. Trabajas con plantillas Liquid, secciones de tema y app embeds. Eso deja dos caminos realistas.
Camino A: integras el botón directamente en tu tema. Editas theme.liquid, añades una sección o un snippet, registras tu propia ruta para el formulario y escribes una lógica de gestión del lado del servidor en una app. Es factible, pero entonces eres tú el responsable del alojamiento, el envío de correos, la limitación de peticiones y la conservación.
Camino B: usas un widget cargado mediante una etiqueta de script. Shopify permite las etiquetas de script a través de los Theme App Embeds. Activas el embed una vez en el editor de temas, y el botón aparece automáticamente en la navegación o el pie de página. Es el camino que operamos nosotros.
Instalación en Shopify mediante Theme App Embed
Un Theme App Embed es una extensión de aplicación especial que Shopify admite desde Online Store 2.0. Carga un script sin que tengas que tocar el código del tema. El comerciante hace clic en « App embeds » en el customizer, activa el interruptor, y listo.
Con WiderrufButton se ve así: instalas la app desde la Shopify App Store, confirmas en el primer inicio de sesión el correo que recibirá los desistimientos y activas el app embed en el editor de temas. No hace falta introducir ninguna clave de widget. El widget se carga en el Shadow DOM, no choca con el CSS de tu tema, no establece cookies y se mantiene por debajo de 15 KB gzip.
La variante paso a paso con código está en nuestra guía del botón de desistimiento. Si prefieres leer la página de producto: consulta Botón de desistimiento.
Qué debe estar listo
Botón accesible en todas las páginas y colocado de forma destacada – fijo en el borde de la pantalla, en la navegación o claramente resaltado en el pie de página; no tiene que verse sin hacer scroll. Formulario con los tres datos obligatorios (nombre, contrato, correo para el acuse de recibo). Acuse de recibo por correo electrónico, con el contenido completo del desistimiento y una marca de tiempo. Una dirección en tu aviso legal a través de la cual sean posibles las consultas. Y lo más importante: el botón debe permanecer disponible durante todo el plazo de desistimiento, es decir, al menos catorce días desde la recepción de la mercancía.
Quien hoy gestiona una tienda en la que un cliente solo puede desistir mediante un formulario de contacto no es conforme. La regla antigua era « por escrito ». La nueva regla dice « botón ». Eso es una diferencia, y la diferencia es el botón.
Malentendidos frecuentes entre los comerciantes de Shopify
« Pero tengo la página de desistimiento de Shopify en mis textos legales. » Eso es un texto estático, no un botón. La ley exige una interacción que active una declaración de desistimiento.
« Mi tema tiene un botón de contacto. » Un botón de contacto no es un botón de desistimiento, porque ni está denominado como tal ni genera una declaración de desistimiento formalizada.
« Soy pequeño, esto no me afecta. » La obligación se aplica a toda tienda B2C, independientemente de la facturación o del número de empleados.