Hola @ivan92, vamos a desglosar esto porque son dos problemas comunes pero con soluciones distintas.
Para la Caché Avanzada (Redis/Memcached):
Como ya te han comentado @silvia_iberia y @jaimeiberia, la clave está en el entorno del servidor y la configuración de PHP. Asegúrate de lo siguiente:
- Extensiones PHP: Confirma que
ext-redis o ext-memcached estén instaladas y habilitadas en tu php.ini para la versión de PHP que usa tu PrestaShop (7.1-7.3 en tu caso).
- Servidor de Caché: El servicio de Redis o Memcached debe estar corriendo en tu servidor y ser accesible desde el proceso de PHP. Verifica los logs del servidor de Redis/Memcached. Si usas un host/puerto (ej.
127.0.0.1:6379), asegúrate de que no haya un firewall bloqueando la conexión.
- Configuración de PrestaShop: En el Back Office, ve a
Parámetros Avanzados -> Rendimiento. En la sección "Caché", selecciona "Sistema de caché".
- Si eliges Memcached, añade tus servidores (IP/hostname y puerto).
- Si eliges Redis, introduce la dirección IP/hostname, puerto y, si lo tienes, una contraseña.
- Si estás usando sockets (menos común en configuraciones simples), la ruta del socket debe ser correcta.
Para el CCC y Scripts JavaScript:
El problema que describes con cookiebanner.js es muy típico. El CCC concatena y minifica los scripts, lo que puede romper el orden de ejecución, el alcance de las variables o el tiempo de carga del DOM. La solución más robusta es cargar los scripts que manipulan el DOM al final de la página y/o asegurar que se ejecuten solo cuando el DOM esté completamente cargado.
Tu hookHeader actual carga el script en la sección <head>, lo que puede causar problemas si el DOM no está listo. Te sugiero modificar tu hookHeader para que el script se cargue en el <footer> de la página. PrestaShop 1.7.x permite especificar la posición al añadir el script:
public function hookHeader()
{
// Cargar el script en el footer para asegurar que el DOM esté listo
// 'position' => 'bottom' asegura que se cargue al final del <body>.
// 'priority' puede ser útil si tienes muchos scripts en el footer y necesitas un orden específico.
$this->context->controller->addJS(
$this->_path.'views/js/cookiebanner.js',
false, // 'cache' (boolean) - Normalmente false para scripts de módulos.
['position' => 'bottom', 'priority' => 10] // Carga en el footer con prioridad 10
);
Con este cambio, cookiebanner.js se cargará justo antes del cierre de la etiqueta </body>, cuando el DOM ya está completamente disponible, lo que debería resolver la mayoría de los problemas de conflicto con CCC. Prueba esto y nos dices.