¿Qué es una Excepción de Smarty en PrestaShop?
El motor de plantillas Smarty es el encargado de compilar y mostrar la interfaz gráfica de tu tienda en PrestaShop. Cuando ocurre una excepción o error de Smarty, por lo general se debe a un conflicto con las plantillas (.tpl), archivos de caché corruptos o modificaciones recientes en el tema activo.
Principales Causas del Error de Smarty
- Archivos de caché de Smarty corruptos o desactualizados.
- Errores de sintaxis en los archivos .tpl del tema o de un módulo personalizado.
- Incompatibilidad de variables PHP pasadas a la plantilla.
- Problemas de permisos de escritura en la carpeta de caché del servidor.
Método 1: Vaciar la Caché de Smarty desde el Panel de Administración
El primer paso y el más rápido para solucionar errores temporales de compilación es limpiar la caché directamente desde el backoffice de PrestaShop.
- Inicia sesión en tu panel de administración de PrestaShop.
- Dirígete al menú lateral y selecciona
Parámetros avanzados>Rendimiento. - Busca la sección superior llamada Caché.
- Haz clic en el botón Borrar caché situado en la esquina superior derecha.
- Recarga tu tienda en una pestaña de incógnito para comprobar si el error ha desaparecido.
Método 2: Limpieza Manual de la Caché vía FTP o SSH
Si el panel de administración no responde debido al error, deberás eliminar los archivos de caché directamente desde el servidor utilizando un cliente FTP o acceso SSH.
- Conéctate a tu servidor mediante FTP 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 la ruta escache/smarty/). - Elimina el contenido de las carpetas
devyprod(osmarty/cacheysmarty/compile). - Asegúrate de no borrar el archivo
index.phpque suele encontrarse dentro de estas carpetas.
Método 3: Activar el Modo Debug para Identificar el Archivo TPL Afectado
Para conocer exactamente qué línea de código o archivo está provocando la excepción de Smarty, es necesario activar el modo de depuración de PrestaShop.
- Accede a los archivos de tu tienda mediante FTP y localiza el archivo
config/defines.inc.php(en versiones 1.7 y 8.x se edita enconfig/parameters.phpo mediante el archivosrc/PrestaShopBundle/Controller/Admin/Configure/AdvancedParameters/PerformanceController.php). - Si editas por código, busca la línea
define('_PS_MODE_DEV_', false);y cámbiala adefine('_PS_MODE_DEV_', true);. - Vuelve a cargar la página de tu tienda donde aparecía el error. En lugar de una pantalla blanca o genérica, verás una traza detallada (stack trace) indicando el archivo .tpl exacto y el número de línea que genera el fallo.
- Corrige la sintaxis en el archivo indicado o contacta con el desarrollador del módulo responsable.