Configurar el modulo de cookies y LiteSpeed Cache en Prestashop

Si tienes instalado un módulo de cookies en tu tienda y estás usando LiteSpeed Cache para PrestaShop, deberás crear una excepción ESI a ese módulo desde la configuración del plugin de LiteSpeed en el BackOffice. De esta forma la caché y el plugin funcionarán correctamente.


¿Cómo crear la excepción ESI para el módulo de Cookies?


Los bloques ESI son excepciones de caché que convierten la caché pública de un elemento en caché privada.


Debido al propio funcionamiento del módulo de cookies, es necesario crearle una excepción.


Deberás entrar a la admin de PrestaShop, e ir a:


Parámetros Avanzados - LiteSpeed Cache - Customization - Add New ESI Block


Aquí deberás buscar del desplegable de módulos el que uses para el tema de las cookies.


Puede ser que estés usando el Prestashop European Union Cookie Law, o el cookieplus o cualquier otro que use tu theme. En todos los módulos funciona igual. Solo debes prestar atención especialmente a si aparecen en la zona del header o del footer.


Los datos que debes introducir en el Bloque ESI que vas a crear son los siguientes:


Eliges primero el nombre de tu módulo de cookies del desplegable y añades los siguientes valores:


Is Private

TTL1800
Cache Tag(este valor lo dejas vacío, al guardar se autorellenerá solo) o bien pones cookiesplus
Purge Eventsvacío
Purge Controllersvacío
Hooked MethodshookHeader (en el caso de que las cookies aparezcan en el header)
hookFooter (en el caso de que se muestren en el footer)

Dependiendo del theme, si no funciona, cámbialo por uno de estos parámetros:

!ihookheader
!ihookfooter
Widget Render Hooks*
As Variable
Ignore If EmptyNo
Only Cache When Empty


Adjuntamos una captura de cómo debería quedar si usas el módulo cookieplus por ejemplo:




NOTA: Si sigue apareciendo a pesar pinchar en el botón de aceptar las cookies. Prueba a modificar el siguiente archivo:


/modules/cookiesplus/views/templates/hook/script_17.tpl


Cambia el código que hay en él:


<script>
    // <![CDATA[
    {if isset($C_P_SCRIPT) && $C_P_SCRIPT}
        {* Do not escape this var, it include JS code *}
        {$C_P_SCRIPT nofilter}
    {/if}
    // ]]>
</script>


Por este otro:


<script>
    // <![CDATA[
    var C_P_COOKIE_VALUE = {$C_P_COOKIE_VALUE}
    {if isset($C_P_SCRIPT) && $C_P_SCRIPT}
        {* Do not escape this var, it include JS code *}
        {$C_P_SCRIPT nofilter}
    {/if}
    // ]]>
</script>


Además, en las opciones de LiteSpeed cambia el valor de Enable Guest Mode a: Sí, has default guest view


Purga toda la cache de LiteSpeed.


Con estos cambios, al aceptar las cookies no deberían aparecer más en otras páginas.