Introducción al Error de Smarty en PrestaShop
Smarty es el motor de plantillas que utiliza PrestaShop para separar la lógica de programación del diseño visual. En ocasiones, debido a modificaciones en archivos .tpl, problemas de sintaxis o fallos en la caché, se producen las llamadas 'Smarty Exceptions' que bloquean por completo la visualización de tu e-commerce, mostrando una pantalla con un mensaje críptico o el modo depuración activo.
Causas Principales de la Excepción de Smarty
- Errores de sintaxis en archivos de plantilla (.tpl) modificados recientemente.
- Incompatibilidad de variables pasadas desde un módulo o controlador hacia la vista.
- Corrupción de archivos en la carpeta de caché de Smarty debido a falta de espacio o permisos incorrectos.
- Actualización reciente de un tema (template) que no es 100% compatible con tu versión actual de PrestaShop.
Método 1: Vaciar la Caché de Smarty Manualmente vía FTP
A veces, el panel de administración no responde para vaciar la caché, por lo que debemos hacerlo directamente en el servidor utilizando un cliente FTP o el administrador de archivos de tu hosting.
- Conéctate a tu servidor mediante FTP o cPanel.
- Navega hasta la raíz de tu instalación de PrestaShop.
- Entra en el directorio
var/cache/(en versiones antiguas de PrestaShop buscacache/smarty/). - Elimina el contenido de las carpetas
prod/cacheydev/cache(o las carpetassmarty/compileysmarty/cache). - Recarga tu tienda web en el navegador para comprobar si el error ha desaparecido.
Método 2: Activar el Modo Debug para Identificar el Archivo Problemático
Para solucionar una excepción de Smarty, primero necesitamos saber exactamente qué archivo está generando el conflicto. El modo depuración nos mostrará la traza exacta del error.
- Accede a tu servidor vía FTP y localiza el archivo
config/defines.inc.php. - Abre el archivo con un editor de código y busca la siguiente línea:
define('_PS_MODE_DEV_', false); - Cambia el valor
falseportruepara habilitar el modo debug:define('_PS_MODE_DEV_', true); - Guarda el archivo y vuelve a cargar la página de tu tienda donde aparecía el error. Ahora verás una traza detallada (stack trace) que indicará el archivo .tpl exacto y la línea con el fallo.
- Corrige la sintaxis en el archivo .tpl o desinstala el módulo causante del problema desde tu backoffice.