¿Qué es el error Smarty Exception en PrestaShop?
El motor de plantillas Smarty es el encargado de compilar y mostrar las vistas en PrestaShop. Cuando se produce una SmartyException, significa que el sistema ha encontrado un fallo crítico en la sintaxis de la plantilla, una variable no definida o problemas graves con la caché de los archivos TPL, lo que suele bloquear el acceso tanto al frontoffice como al backoffice.
Causas principales de la excepción Smarty
- Archivos de plantilla (.tpl) corruptos o con errores de sintaxis tras una modificación manual.
- Incompatibilidad de un módulo recién instalado con la versión actual del tema o de PrestaShop.
- Problemas de permisos de escritura en la carpeta
/var/cache/de tu servidor. - Caché corrupta debido a interrupciones en procesos de compilación anteriores.
Método 1: Vaciar la caché de PrestaShop manualmente vía FTP
A veces, el panel de administración es inaccesible, por lo que debes purgar la caché directamente desde el servidor.
- Conéctate a tu servidor utilizando un cliente FTP (como FileZilla).
- Navega hasta la raíz de instalación de tu tienda PrestaShop.
- Entra en la carpeta
var/cache/. - Elimina el contenido de las carpetas
prodydev(asegúrate de no borrar las carpetas principales, solo los archivos y subdirectorios internos). - Vuelve a cargar tu tienda web en el navegador para comprobar si el error ha desaparecido.
Método 2: Activar el Modo Depuración (Debug) para identificar el fallo exacto
El modo de depuración te mostrará la traza exacta (stack trace) del error Smarty para saber qué archivo o módulo está fallando.
- Accede a tu servidor mediante FTP o el Administrador de Archivos de tu hosting.
- Localiza el archivo
config/defines.inc.php. - Abre el archivo con un editor de código y busca la siguiente línea:
define('_PS_MODE_DEV_', false); - Cambia el valor
falseportrue:define('_PS_MODE_DEV_', true); - Guarda los cambios y recarga tu página web. Ahora verás el mensaje detallado de la excepción Smarty indicando la línea de código y el archivo causante del problema.
Método 3: Restaurar la plantilla o el módulo afectado
Una vez que el modo depuración te ha revelado el origen del problema:
- Si el error proviene de un módulo específico tras una actualización, desactívalo renombrando su carpeta en
modules/vía FTP. - Si el fallo proviene de un archivo
.tplmodificado recientemente, reemplázalo con una copia de seguridad limpia o con la versión original de tu tema. - No olvides volver a desactivar el modo depuración cambiando
trueporfalseen el archivoconfig/defines.inc.phpuna vez solucionado el problema por seguridad.