Introducción al Error de Excepción de Smarty en PrestaShop
Smarty es el motor de plantillas que utiliza PrestaShop para separar la lógica de programación del diseño visual. Cuando se produce una excepción de Smarty, por lo general la tienda online se bloquea o muestra un mensaje kilométrico con errores de compilación o sintaxis en los archivos .tpl, dejando la web inaccesible para los clientes.
Principales Causas de la Excepción de Smarty
Este molesto fallo suele estar provocado por diversos motivos comunes en la administración de una tienda e-commerce:
- Archivos de plantilla modificados con errores de sintaxis en HTML o Smarty.
- Problemas de permisos de escritura en la carpeta de caché del servidor.
- Actualización reciente de un módulo que utiliza hooks incompatibles con el tema actual.
- Sobrecarga o corrupción en los archivos temporales de compilación de Smarty.
Método 1: Vaciar la Caché de PrestaShop Manualmente vía FTP o SSH
Si no puedes acceder al panel de administración debido al error, la solución más rápida es limpiar la caché directamente desde el servidor.
- Conéctate a tu servidor mediante un cliente FTP (como FileZilla) o el Administrador de Archivos de tu Hosting.
- Navega hasta la raíz de tu instalación de PrestaShop.
- Entra en la carpeta
var/cache/(en versiones antiguas de PrestaShop esta ruta puede serapp/cache/ocache/smarty/). - Elimina el contenido de las carpetas
prodydev(o borra todo su interior, asegurándote de no eliminar las carpetas principales). - Recarga tu tienda online en el navegador para comprobar si el error ha desaparecido.
Método 2: Desactivar la Compilación Forzada desde la Base de Datos
A veces, mantener la compilación de Smarty activada en producción genera excepciones constantes si se editan archivos por error.
- Accede a phpMyAdmin desde el panel de control de tu hosting.
- Selecciona la base de datos de tu tienda PrestaShop.
- Busca la tabla
ps_configuration(el prefijo 'ps_' puede variar según tu instalación). - Utiliza el buscador interno de la tabla para localizar las siguientes variables:
PS_SMARTY_FORCE_COMPILATIONyPS_SMARTY_CACHE. - Edita el valor de
PS_SMARTY_FORCE_COMPILATIONy cámbialo a0(para que solo compile cuando detecte cambios). - Edita el valor de
PS_SMARTY_CACHEy cámbialo a1para habilitar la caché de nuevo. - Guarda los cambios y limpia la caché tal y como se indica en el Método 1.