Todo lo que querrías saber antes de instalar.
Una mirada detallada a cómo funciona Verificación de Edad PrestaShop – Modal Bloqueante para CBD, Alcohol, Vape y Médico, por qué lo construimos así y la lógica detrás de las características anteriores.
Por qué un módulo dedicado y no un popup genérico
Los popups de marketing clásicos se cierran con un clic, no validan nada, no establecen ninguna cookie de cumplimiento y no dejan ningún rastro en la base de datos. Para un sitio de CBD o alcohol inspeccionado por los reguladores, eso es un incumplimiento directo. Para un revendedor de material médico sujeto a restricciones publicitarias, es un riesgo para la autorización de comercialización. dfagegate hace lo contrario: modal realmente bloqueante (bloqueo de desplazamiento, trampa de enfoque), validación en el servidor, cookie SameSite/Secure, registros con IP hasheada. Es una herramienta de cumplimiento, no un widget de marketing.
Modo estándar: CBD, alcohol, vape, armamentística
Para la mayoría de los mercados regulados para mayores de 18 años (o 21 en ciertos países). Tres tipos de verificación a elegir según tu perfil de riesgo: botones Sí/No (rápido, poca fricción, suficiente para CBD o alcohol para el gran público), fecha de nacimiento completa con cálculo de edad en el servidor mediante DateTimeImmutable (imposible de bypasear mediante las DevTools, recomendado para armamentística o líquidos con nicotina), redireccionamiento configurable en caso de rechazo.
Modo médico: cumplimiento de la normativa sobre publicidad de productos sanitarios
El EU MDR Artículo 7 y las transposiciones nacionales (Real Decreto 1591/2009 en España) restringen la publicidad de determinados productos sanitarios a los profesionales de la salud autorizados. dfagegate materializa la declaración: lista de profesiones personalizable (médico, farmacéutico, fisioterapeuta, dentista, veterinario…), casilla de declaración de honor, validación opcional del número de colegiado mediante regex (9 a 11 dígitos). El número nunca se almacena, solo se usa para la validación.
Aplica el modal a la sección regulada, no a toda la tienda
Desde la versión 1.1.0, el ámbito de visualización se configura en tres modos. Toda la tienda: comportamiento histórico, el modal aparece en todas partes. Categorías seleccionadas: marca tus categorías en un árbol con filtro de búsqueda; el modal aparece en esas páginas de categoría y en las fichas de los productos que les pertenecen, subcategorías incluidas si la opción está activa. Productos seleccionados: busca tus productos por nombre o referencia; el modal solo aparece en sus fichas. El caso de uso típico: una tienda gourmet que también vende licores, una parafarmacia con una sección de material profesional. La sección regulada queda protegida y el resto de la tienda sigue accesible sin fricción. La decisión se toma en el servidor, no en JavaScript.
Multitenda y multilingüe desde la instalación
Todas las configuraciones se almacenan por contexto de tienda mediante id_shop_group / id_shop. Puedes tener una tienda de CBD a 18+ en español y una tienda de vape a 21+ en otro país en el mismo PrestaShop, cada una con sus propios textos y cookie. Los hooks se registran en todas las tiendas al instalar mediante Shop::getCompleteListOfShopsID(), evitando la trampa clásica del módulo que solo funciona en la tienda actual.
Robustez con los temas: fallback de inyección JS
El hook displayBeforeBodyClosingTag debería ser universal en PrestaShop 1.7.5+, pero muchos temas personalizados lo omiten en su layout. dfagegate gestiona este caso: el modal HTML pre-renderizado se pasa a JS mediante Media::addJsDef. En el DOMContentLoaded, el script comprueba si el elemento dfagegate-modal existe en el DOM. Si no, lo inyecta él mismo mediante insertAdjacentHTML. Funciona en cualquier tema sin tocar el layout.
RGPD: cookie estrictamente necesaria, IP hasheada, retención automática
La cookie dfagegate_ok entra en la categoría de estrictamente necesaria para el cumplimiento de una obligación legal de acceso, exenta de consentimiento previo conforme al RGPD, a diferencia de las cookies de marketing. Su valor es binario (1 = confirmado), duración configurable, SameSite=Lax, Secure en HTTPS. Los registros de rechazo opcionales almacenan una IP hasheada SHA-256 (nunca en texto claro). La pestaña de registros muestra las estadísticas (total 30 días, desglose por motivo, últimos rechazos) y la retención es automática: las entradas más antiguas que la duración configurada (365 días por defecto) se purgan. Compatible con cualquier banner de consentimiento existente.
Diagnóstico integrado para una depuración rápida
Una vez activado, dfagegate añade un comentario HTML en la etiqueta head del tipo 'dfagegate v1.1.0 enabled=1 scope=all should_display=1'. Si hay un problema, lo lees directamente en el código fuente de la página: enabled=0 significa que el interruptor está desactivado, scope indica el ámbito activo, should_display=0 significa que hay un bypass activo o que la página está fuera del ámbito seleccionado. El botón Probar el modal abre la tienda en modo vista previa (?dfagegate_preview=1): el modal aparece aunque la cookie esté establecida, sin depositar ninguna. Sin navegación privada ni búsqueda en los logs.
No hay valoraciones aún.