¿Qué es el Error de Excepción de Smarty en PrestaShop?
El motor de plantillas Smarty es el encargado de compilar y mostrar las vistas en PrestaShop. Cuando ocurre una excepción de Smarty, por lo general se debe a problemas con la caché de la plantilla, sintaxis incorrecta en archivos .tpl modificados recientemente, o incompatibilidades con versiones de PHP. Este error suele bloquear tanto el panel de administración como la tienda pública, mostrando una pantalla blanca o un mensaje detallado de la excepción.
Causas Principales de las Excepciones de Smarty
- Archivos de caché corruptos en la carpeta
var/cache/. - Modificaciones erróneas en los archivos de la plantilla (archivos .tpl).
- Incompatibilidad de la versión de PHP con la versión actual de PrestaShop y Smarty.
- Ficheros faltantes o con permisos incorrectos en el servidor.
Método 1: Limpiar la Caché de PrestaShop Manualmente
La forma más rápida de solucionar errores de compilación de Smarty es vaciar la caché directamente desde el servidor si no puedes acceder al backoffice.
- Accede a tu servidor mediante un cliente FTP o el Administrador de Archivos de tu cPanel.
- Navega hasta la raíz de tu instalación de PrestaShop.
- Entra en la carpeta
var/cache/. - Elimina el contenido de las carpetas
prody/odev(según el entorno en el que te encuentres). - Recarga tu tienda web y verifica si el error ha desaparecido.
Método 2: Cambiar la Configuración de Compilación de Smarty
Si la caché se corrompe constantemente, debes forzar la compilación de las plantillas para que Smarty regenere los archivos necesarios.
- Accede a tu base de datos utilizando phpMyAdmin.
- Busca la tabla
ps_configuration(el prefijops_puede variar). - Utiliza el buscador interno de la tabla para localizar las variables:
PS_SMARTY_FORCE_COMPILEyPS_SMARTY_CACHE. - Modifica el valor de
PS_SMARTY_FORCE_COMPILEa2(Esto equivale a 'Forzar compilación'). - Modifica el valor de
PS_SMARTY_CACHEa0(Desactivar caché temporalmente). - Guarda los cambios, entra a tu tienda y luego revierte estos valores una vez que todo vuelva a la normalidad para optimizar el rendimiento.
Método 3: Revisar los Permisos de Archivos y Depurar el Código
Si el error persiste, puede tratarse de un problema de permisos en el servidor o un fallo específico en un módulo.
- Asegúrate de que las carpetas dentro de
var/tengan permisos755y los archivos644. - Si tienes acceso al archivo de configuración para desarrolladores, edita el archivo
config/defines.inc.phposrc/PrestaShopBundle/Controller/Admin/Configure/AdvancedParameters/PerformanceController.phppara habilitar el modo debug temporalmente. - Identifica la línea exacta de la excepción de Smarty en el mensaje de error y corrige la sintaxis en el archivo
.tplafectado.