¿Qué es la SmartyException en PrestaShop?
El motor de plantillas Smarty es el encargado de compilar y mostrar la interfaz visual de tu tienda online en PrestaShop. Cuando aparece una SmartyException, significa que el sistema ha encontrado un conflicto crítico al intentar procesar un archivo .tpl, ya sea por sintaxis incorrecta, variables faltantes o problemas con la caché de la tienda.
Principales causas de la SmartyException
Entre los motivos más habituales por los que se dispara esta excepción en PrestaShop se encuentran:
- Modificaciones erróneas en los archivos de la plantilla (archivos .tpl del tema activo).
- Incompatibilidad o fallos de programación en algún módulo de terceros recién instalado.
- Problemas de permisos de escritura en la carpeta de caché del servidor.
- Archivos de caché corruptos debido a compilaciones interrumpidas.
Método 1: Forzar la compilación y vaciar la caché desde el Backoffice
La solución más rápida y sencilla cuando se trata de un problema de caché corrupta es limpiar el almacenamiento temporal directamente desde el panel de administración de PrestaShop.
- Inicia sesión en el panel de administración (Backoffice) de tu tienda PrestaShop.
- Dirígete al menú lateral izquierdo y navega hasta Parámetros Avanzados > Rendimiento.
- En la sección superior llamada 'Rendimiento', busca el apartado Caché y cámbiala a 'NO'.
- Justo debajo, en Forzar compilación, selecciona la opción Forzar compilación de ficheros si han sido modificados o Forzar compilación en cada llamada (temporalmente).
- Haz clic en el botón superior derecho Borrar la caché.
- Recarga la página principal de tu tienda en el navegador para comprobar si el error ha desaparecido.
Método 2: Borrar la caché de Smarty manualmente vía FTP o SSH
Si el error te impide por completo acceder al panel de administración de PrestaShop (Pantalla blanca o mensaje crítico), deberás eliminar los archivos temporales directamente en el servidor utilizando un cliente FTP o acceso SSH.
- Conéctate a tu servidor mediante tu cliente FTP preferido (FileZilla, Cyberduck, etc.) o por consola SSH.
- Navega hasta la raíz de la instalación de tu tienda PrestaShop.
- Entra en la carpeta
var/(en versiones 1.7 y 8.x) o en la carpetacache/(en versiones antiguas 1.6). - Localiza y elimina el contenido de las siguientes carpetas:
var/cache/prod/smarty/cache/var/cache/prod/smarty/compile/var/cache/dev/smarty/cache/var/cache/dev/smarty/compile/ - Asegúrate de no borrar las carpetas principales, únicamente los archivos y subcarpetas que contienen en su interior.
- Vuelve a cargar tu sitio web para verificar que Smarty genera nuevas compilaciones limpias.
Método 3: Desactivar módulos recientes o cambiar al tema clásico
Si la excepción persiste, es muy probable que el error provenga de un código PHP o Smarty mal escrito en un módulo o en el tema actual.
- Si instalaste un módulo recientemente, ve a la base de datos mediante phpMyAdmin, busca la tabla
ps_moduley cambia el campoactivede1a0en el módulo sospechoso. - Si sospechas del tema visual, puedes renombrar temporalmente la carpeta de tu tema actual dentro de
themes/para forzar a PrestaShop a utilizar el tema por defecto (Classic). - Verifica los registros de errores de tu servidor (archivo
error_logo depuración habilitada endefines.inc.php) para identificar exactamente qué línea de código está generando la SmartyException.