¿Qué es una Excepción de Smarty en PrestaShop y por qué ocurre?
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, significa que el sistema ha encontrado un fallo crítico al compilar o renderizar un archivo .tpl (plantilla). Esto suele ocurrir tras actualizar un módulo, modificar el tema activo, o debido a incompatibilidades con la versión de PHP.
Causas principales del error de Smarty
- Errores de sintaxis en archivos de plantilla personalizados o modificados recientemente.
- Archivos de caché corruptos en la carpeta
var/cacheotools/smarty/cache. - Incompatibilidad de versiones de PHP con funciones obsoletas dentro de las plantillas.
- Falta de permisos de escritura en los directorios de caché y compilación.
Método 1: Vaciar y regenerar la caché de PrestaShop
La causa más común de una excepción de Smarty es la corrupción de archivos temporales en el servidor. Para solucionarlo, debes purgar la caché manualmente:
- Accede a tu servidor mediante un cliente FTP (como FileZilla) o el Administrador de Archivos de tu cPanel.
- Navega hasta la raíz de tu instalación de PrestaShop.
- Entra en la carpeta
vary localiza el directoriocache(en versiones antiguas puede estar enapp/cacheotools/smarty/cache). - Elimina el contenido de las carpetas
prodydev(o borra la carpetacacheentera, asegurándote de no borrar el archivoindex.phpsi lo contiene). - Entra en el panel de administración (Backoffice) de PrestaShop, ve a Parámetros avanzados > Rendimiento y haz clic en el botón Borrar la caché.
Método 2: Desactivar la compilación y activar el modo debug
Si vaciar la caché no funciona, necesitas ver el mensaje exacto del error para identificar qué archivo provoca el fallo:
- Abre el archivo de configuración ubicado en
config/defines.inc.phpo modifica el archivoapp/config/parameters.phpdependiendo de tu versión. - Cambia el valor de
_PS_MODE_DEV_` defalseatruepara habilitar el modo depuración. - Vuelve a cargar tu tienda online en el navegador; ahora verás una traza detallada (stack trace) que indicará el archivo .tpl exacto y la línea donde se origina la excepción.
- Corrige el error de sintaxis en dicho archivo Smarty o reemplázalo con una copia de seguridad limpia.
- Una vez solucionado, recuerda volver a cambiar
_PS_MODE_DEV_afalsepor razones de seguridad.