¿Qué es la Excepción de Smarty en PrestaShop?
El motor de plantillas Smarty es el encargado de compilar y mostrar las vistas de tu tienda online en PrestaShop. Cuando ocurre una excepción de Smarty, por lo general significa que hay un archivo de plantilla (.tpl) corrupto, una incompatibilidad de código tras actualizar un módulo o un fallo crítico en la caché del sistema que impide renderizar la página correctamente.
Causas Principales del Error
Las razones más comunes por las que aparece este error en el panel de administración o en el front-office incluyen:
- Archivos .tpl modificados con errores de sintaxis en el tema activo.
- Caché de Smarty corrupta o desactualizada en el servidor.
- Incompatibilidad de variables enviadas desde un módulo de terceros hacia la plantilla.
- Problemas de permisos de escritura en la carpeta
/var/cache/de PrestaShop.
Método 1: Vaciar la Caché de Smarty Manualmente vía FTP
A menudo, la solución más rápida y efectiva es eliminar los archivos compilados de Smarty directamente desde el servidor para forzar a PrestaShop a regenerarlos sin errores.
- Accede a tu servidor utilizando un cliente FTP (como FileZilla) o el Administrador de Archivos de tu hosting.
- Navega hasta la raíz de instalación de tu tienda PrestaShop.
- Entra en la carpeta
var/cache/. - Localiza los directorios correspondientes a los entornos de producción y desarrollo, usualmente llamados
prodydev. - Elimina el contenido interior de las carpetas
var/cache/prod/smarty/cache,var/cache/prod/smarty/compile(y sus equivalentes endevsi aplica). No borres las carpetas principales, solo su contenido interno. - Vuelve a cargar tu tienda web en el navegador y comprueba si el error ha desaparecideo.
Método 2: Desactivar la Caché y Activar el Modo Debug
Si el error persiste, necesitas identificar exactamente qué archivo o línea de código está generando la excepción. Para ello, activa el modo de depuración de PrestaShop.
- Entra a tu servidor vía FTP o Administrador de Archivos.
- Busca el archivo de configuración ubicado en
config/defines.inc.php(en versiones 1.7 o superiores, edita el archivosrc/PrestaShopBundle/Config/Config.phpo cambia el valor directamente desde el archivoconfig/defines.inc.phpsegún tu versión). - Cambia el valor de
_PS_MODE_DEV_defalseatrue:
define('_PS_MODE_DEV_', true);
- Guarda los cambios y recarga la página donde aparecía la excepción de Smarty. Ahora verás un reporte detallado con la ruta exacta del archivo .tpl y la línea que causó el fallo.
- Corrige el error de sintaxis en el archivo indicado o desinstala el módulo conflictivo desde el backoffice.
Método 3: Restaurar la Configuración de Compilación de Plantillas
Si tienes acceso al panel de administración (Backoffice), puedes cambiar el comportamiento de Smarty para evitar que almacene archivos dañados.
- Inicia sesión en el Backoffice de PrestaShop.
- Dirígete al menú lateral y selecciona Parámetros Avanzados > Rendimiento.
- En la sección de Smarty, realiza los siguientes cambios:
- Caché: Selecciona No.
- Compilación de plantilla: Cambia a Forzar compilación de ficheros.
- Haz clic en el botón Guardar en la esquina superior derecha.
- Una vez comprobado que el sitio funciona, vuelve a establecer la compilación en Recompilar las plantillas si los ficheros han sido modificados y activa la caché para mejorar la velocidad de carga.