¿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 ocurre una SmartyException, significa que el sistema ha encontrado un conflicto crítico al intentar procesar un archivo .tpl, ya sea por problemas de sintaxis, variables faltantes o conflictos de caché en el servidor.
Causas Principales del Error
- Modificaciones incorrectas en los archivos de la plantilla (archivos .tpl).
- Archivos de caché corruptos en el directorio del servidor.
- Incompatibilidad de módulos recientes que sobrescriben hooks de Smarty.
- Falta de permisos de escritura en la carpeta de compilación.
Método 1: Vaciar la Caché de Smarty Manualmente
La forma más rápida de solucionar este problema cuando el backoffice no es accesible es purgando los archivos temporales directamente vía FTP o SSH.
- Conéctate a tu servidor utilizando un cliente FTP o el panel de control (cPanel).
- Navega hasta la raíz de tu instalación de PrestaShop.
- Entra en el directorio
var/cache/(en versiones antiguasapp/cache/otools/smarty/cache). - Elimina el contenido de las carpetas
prodydev(o borra todo el contenido dentro decacheasegurándote de no eliminar el archivo index.php). - Recarga tu tienda online para verificar si el error ha desaparecido.
Método 2: Activar el Modo Debug para Identificar el Archivo Dañado
Si vaciar la caché no funciona, necesitas conocer exactamente qué línea de código está generando la excepción.
- Accede a los archivos de tu tienda mediante FTP y localiza el archivo
defines.inc.phpubicado enconfig/. - Si usas versiones modernas de PrestaShop, abre el archivo
app/config/parameters.php. - Busca la línea correspondiente al modo debug y cámbiala de
falseatrue:.define('_PS_MODE_DEV_', true); - Actualiza la página con el error en tu navegador; ahora verás un mensaje detallado que indica el archivo
.tplexacto y el número de línea que causa el fallo. - Corrige la sintaxis en dicho archivo o desinstala el módulo conflictivo.
Método 3: Verificar los Permisos de Escritura en Carpetas Clave
Smarty necesita compilar las plantillas y guardar los resultados en el servidor. Si los permisos son incorrectos, saltará una excepción.
- Accede a tu servidor vía SSH o utiliza el administrador de archivos.
- Asegúrate de que la carpeta
var/cache/y todas sus subcarpetas tengan permisos de escritura correctos (generalmente755o775). - Verifica que el propietario de los archivos coincida con el usuario del servidor web (ej. www-data).