¿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, por lo general verás un mensaje en pantalla detallando que el motor no ha podido compilar o interpretar un archivo .tpl. Esto suele ser causado por errores de sintaxis en las modificaciones de las plantillas, archivos corruptos en la caché o incompatibilidades tras actualizar un módulo o el tema principal de tu tienda e-commerce.
Causas comunes del error de Smarty
- Errores tipográficos o de sintaxis en los archivos de la plantilla (archivos .tpl).
- Archivos de caché de Smarty dañados o desactualizados.
- Problemas de permisos de escritura en las carpetas de caché del servidor.
- Incompatibilidad de variables en módulos personalizados tras una actualización.
Método 1: Vaciar la caché de PrestaShop y Smarty desde el Panel de Administración
Muchas veces, la excepción se resuelve simplemente limpiando los archivos temporales que el sistema genera.
- Inicia sesión en tu panel de administración (Backoffice) de PrestaShop.
- Dirígete al menú lateral y selecciona Parámetros avanzados > Rendimiento.
- En la parte superior derecha de la página, haz clic en el botón Borrar la caché.
- Actualiza la página principal (Frontoffice) de tu tienda para comprobar si el error ha desaparecido.
Método 2: Vaciar la caché de Smarty manualmente mediante FTP o Gestor de Archivos
Si el panel de administración no carga debido a la pantalla de error, deberás eliminar los archivos de caché directamente desde el servidor.
- Accede a tu servidor mediante un cliente FTP (como FileZilla) o el Administrador de Archivos de tu hosting.
- Navega hasta la raíz de instalación de tu PrestaShop.
- Entra en la carpeta
var/cache/(en versiones antiguas de PrestaShop la ruta suele serapp/cache/otools/smarty/cache/). - Localiza las carpetas denominadas
devyprod. - Elimina el contenido que se encuentra dentro de las carpetas
prod/cache/ydev/cache/(o borra las carpetas enteras de caché, asegurándote de no borrar archivos esenciales).
Método 3: Activar el modo debug para identificar el archivo .tpl dañado
Para solucionar el problema de raíz, es necesario conocer exactamente qué línea de código está fallando.
- Accede a los archivos de tu servidor vía FTP y busca el archivo
defines.inc.phpdentro de la carpetaconfig/(en versiones 1.7 y 8.x, busca el archivoapp/config/parameters.php). - Modifica la línea que define el modo debug para activarlo. Cambia
define('_PS_MODE_DEV_', false);pordefine('_PS_MODE_DEV_', true);. - Guarda los cambios y recarga la página de tu tienda donde aparecía la excepción de Smarty.
- Ahora verás un informe detallado con el rastro de la pila (stack trace), indicando el nombre exacto del archivo
.tply el número de línea que genera el conflicto para que puedas corregirlo o eliminarlo.