¿Qué es el Error Smarty Exception en PrestaShop y por qué ocurre?
El motor de plantillas Smarty es el encargado de compilar y mostrar las vistas en PrestaShop. Cuando aparece una excepción o SmartyException, significa que el sistema ha encontrado un fallo crítico al intentar renderizar un archivo de la plantilla (.tpl). Esto suele dejar la tienda inaccesible o mostrar una pantalla en blanco.
Causas principales de la excepción de Smarty
- Archivos de caché corruptos en la carpeta
var/cacheotools/smarty/cache. - Modificaciones erróneas en los archivos de la plantilla (archivos .tpl) del tema activo.
- Incompatibilidad de un módulo recién instalado con la versión actual de Smarty.
- Falta de permisos de escritura en los directorios de compilación del servidor.
Método 1: Vaciar la caché de PrestaShop y Smarty manualmente
La acumulación de datos obsoletos o corruptos en la caché es la causa número uno de este error. Sigue estos pasos para limpiarla desde el servidor:
- Accede a tu servidor mediante un cliente FTP (como FileZilla) o utiliza el Administrador de Archivos de tu cPanel.
- Navega hasta la raíz de tu instalación de PrestaShop.
- Entra en la carpeta
var/cache/(en versiones recientes) oapp/cache/. - Elimina el contenido de las carpetas
prodydev(o borra los directorios enteros para que se regeneren automáticamente). - Si usas una versión antigua de PrestaShop (1.6 o inferior), busca las carpetas
cache/smarty/compileycache/smarty/cachey vacía su contenido. - Vuelve a cargar tu tienda web en el navegador para verificar si el error ha desaparecido.
Método 2: Desactivar la caché de Smarty y activar el modo depuración
Si el problema persiste, es necesario activar el modo de depuración para ver exactamente qué línea de código está generando la excepción de Smarty:
- Entra en tu servidor FTP y localiza el archivo
config/defines.inc.php(en PrestaShop 1.6) osrc/PrestaShopBundle/Controller/Admin/Configure/AdvancedParameters/PerformanceController.phpo edita directamente el archivoconfig/config.inc.php. - Busca la línea que define el modo de depuración y cambia su valor de
falseatrue:define('_PS_MODE_DEV_', true);. - Guarda los cambios y recarga la página de tu tienda. Ahora en lugar de un error genérico, verás un stack trace detallado indicando el módulo o archivo
.tplcausante del conflicto. - Dirígete a tu panel de administración (Back-Office) en Parámetros Avanzados > Rendimiento y en la sección de Smarty selecciona Forzar compilación y desactiva la caché temporalmente.
Método 3: Corregir o reemplazar el archivo .tpl dañado
Una vez identificado el archivo problemático gracias al modo depuración, procede a su reparación:
- Si el error menciona un archivo dentro de tu tema (por ejemplo,
themes/tu-tema/templates/catalog/_partials/product.tpl), revisa la última modificación que realizaste. - Si no recuerdas el cambio, descarga el archivo original de la plantilla limpia y súbelo nuevamente mediante FTP para sobrescribir el archivo corrupto.
- Si el error proviene de un módulo, desactívalo temporalmente renombrando su carpeta en
modules/nombre-del-moduloamodules/nombre-del-modulo_bak. - Regresa al panel de administración y limpia la caché nuevamente para restaurar el funcionamiento normal de tu tienda e-commerce.