En PrestaShop, el fragmento de código de FlowConsent va al principio del archivo templates/_partials/head.tpl de su tema, rodeado de las etiquetas Smarty {literal}, y después se vacía la caché en Parámetros avanzados → Rendimiento (Advanced Parameters → Performance). La instalación son tres pasos. Las trampas principales: la caché de Smarty, que sigue sirviendo el <head> antiguo, y los módulos de seguimiento (Google Analytics, píxel de Meta, Google Tag Manager), que inyectan sus propias etiquetas sin esperar al consentimiento.
Antes de empezar
- Una cuenta en app.flowconsent.com (plan Free gratuito, sin tarjeta de crédito, hasta 25.000 sesiones al mes).
- Un banner creado y desplegado. En el plan Free, el despliegue se hace a través de su propia cuenta de Cloudflare (guía de Cloudflare); en Pro y Enterprise, con un clic.
- Acceso a los archivos de la tienda (FTP, SFTP o el gestor de archivos del alojamiento) y al back office de PrestaShop. El back office no incluye editor de archivos del tema.
Paso 1: Copie el fragmento de código
Abra Builder → Despliegue → Integración y copie el fragmento de código de la pestaña HTML / No-code. Tiene dos partes, en este orden: el stub de Google Consent Mode v2 (valores denied por defecto) y después el cargador del banner.
Paso 2: Péguelo en head.tpl
- Localice el tema activo en Diseño → Tema y logotipo (Design → Theme & Logo): la primera sección de la página indica el tema en uso. Su carpeta está en
themes/<nombre-del-tema>/. - Abra
themes/<nombre-del-tema>/templates/_partials/head.tpl. En el tema Classic y en los temas basados en él, este archivo se incluye directamente dentro de la etiqueta<head>de cada plantilla de página. - Pegue el fragmento de código justo después del bloque
head_charset, es decir, antes de las hojas de estilo, de los scripts del tema y del hookdisplayHeaderde los módulos, rodeándolo de{literal}y{/literal}:
{block name='head_charset'}
<meta charset="utf-8">
{/block}
{literal}
<script>
// FlowConsent Loader - COLOCAR ANTES de cualquier otro script en el <head>
window.dataLayer=window.dataLayer||[];
function gtag(){dataLayer.push(arguments);}
gtag('consent','default',{
'ad_storage':'denied',
'analytics_storage':'denied',
'ad_user_data':'denied',
'ad_personalization':'denied',
'wait_for_update':500
});
gtag('set','url_passthrough',true);
gtag('set','ads_data_redaction',true);
</script>
<!-- FlowConsent CMP -->
<script src="https://SU-CODIGO-LICENCIA.consent.flowconsent.com/cookie-manager.js?code=SU_CODIGO_LICENCIA"></script>
{/literal}
{* … el resto del archivo, sin cambios *}¿Tema del marketplace o tema que actualiza? Una actualización del tema sobrescribe head.tpl. Es mejor trabajar en un tema hijo (clave parent en su theme.yml): copie templates/_partials/head.tpl en la misma ruta del tema hijo, añada el fragmento de código y la copia del tema hijo sustituye a la del padre.
¿Y los módulos de inserción de código? Algunos módulos del marketplace añaden código al <head>. La mayoría usan el hook displayHeader, que se renderiza al final del <head>, después de los scripts del tema: demasiado tarde para garantizar el bloqueo previo. Es preferible head.tpl; si usa un módulo, compruebe con el asistente de instalación que el fragmento llega antes que cualquier rastreador.
Paso 3: Vacíe la caché de Smarty
PrestaShop compila las plantillas y las guarda en caché: mientras no se vacíe, la tienda sigue sirviendo el <head> antiguo. Vaya a Parámetros avanzados → Rendimiento (Advanced Parameters → Performance) y haga clic en Borrar caché (Clear cache). Si la sección Smarty está configurada para no recompilar nunca las plantillas (Never recompile template files), hay que vaciar la caché tras cada cambio de archivo. Una caché del alojamiento o de una CDN (Varnish, Cloudflare) también debe purgarse.
Módulos de seguimiento: desactívelos y declare los servicios
Si mantiene Google Tag Manager, no cargue FlowConsent desde GTM (llegaría demasiado tarde): coloque el fragmento de código por encima del contenedor de GTM en head.tpl. Las etiquetas de Google respetan entonces las señales de Consent Mode v2; las demás necesitan comprobaciones de consentimiento adicionales. Más detalles en la guía de Google Consent Mode.
Verifique la instalación
- Abra la tienda en una ventana privada: el banner aparece.
- En la pestaña Red de las herramientas para desarrolladores, no sale ninguna petición a terceros antes de hacer clic en Aceptar.
- Lance el asistente de instalación (Builder → Integración): comprueba la página publicada (cargador presente con el código de licencia correcto, stub de Consent Mode presente y colocado antes de cada etiqueta de Google).
- Termine con un escaneo de rechazo desde la pestaña Conformidad (verificación de conformidad).
Hacerlo desde su agente de IA (MCP)
FlowConsent tiene un servidor MCP oficial, https://mcp.flowconsent.com, que se puede usar desde Claude, ChatGPT o cualquier cliente MCP. La conexión se hace con OAuth 2.0 y su cuenta de FlowConsent, sin clave de API. Su agente obtiene el fragmento de código y las instrucciones de colocación (get_banner_snippet, get_setup_instructions), verifica la instalación con un escaneo real (verify_consent_compliance) y puede programar una supervisión recurrente (monitor_compliance). La edición de head.tpl la hace usted o su agente de código: el servidor MCP aporta el fragmento, las instrucciones y la verificación.
Ejemplo de petición:
Deme el fragmento de código de mi banner para mi tienda PrestaShop y compruebe que está bien instalado en https://mitienda.es
Más información: servidor MCP y FlowConsent para agentes de IA.
Preguntas frecuentes
He pegado el fragmento de código pero no cambia nada. ¿Por qué?
La caché de Smarty sigue sirviendo la versión antigua. Vacíela en Parámetros avanzados → Rendimiento, purgue la posible caché del alojamiento o de la CDN y recargue en una ventana privada.
La tienda muestra un error después de editar head.tpl.
Casi siempre faltan las etiquetas {literal}: Smarty intenta interpretar las llaves del script. Rodee todo el fragmento de código con {literal} y {/literal} y vacíe la caché.
¿Hace falta un módulo de FlowConsent?
No. El fragmento de código es HTML estándar que se pega en el tema. Es el método más fiable, porque es el único que coloca el banner antes que los scripts inyectados por los módulos.
Mi instalación es multitienda. ¿Qué hay que hacer?
Cada tema que usa una tienda tiene su propio head.tpl: añada el fragmento de código en cada uno. Si sus tiendas funcionan en dominios distintos, cada una con su banner, use en cada tema el código de licencia del banner correspondiente.