¿Qué es una Excepción de Smarty en PrestaShop?
Smarty es el motor de plantillas utilizado por 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 una pantalla blanca o un mensaje críptico de error en tu tienda. Esto indica que hay un conflicto en la compilación de las plantillas .tpl, problemas de sintaxis en un módulo o una corrupción en los archivos temporales de caché.
Causas Principales del Error de Smarty
- Archivos de caché y compilación corruptos en el servidor.
- Errores de sintaxis en archivos .tpl modificados recientemente en tu tema.
- Incompatibilidad de módulos de terceros con la versión actual de PrestaShop.
- Problemas de permisos de escritura en la carpeta
var/cacheocache/smarty.
Método 1: Limpiar la Caché y los Archivos Compilados Manualmente vía FTP
La forma más rápida de solucionar este problema si no puedes acceder al Back Office de PrestaShop es vaciar la caché directamente desde el servidor.
- Conéctate a tu servidor utilizando un cliente FTP (como FileZilla) o el Administrador de Archivos de tu cPanel.
- Navega hasta la raíz de instalación de tu tienda PrestaShop.
- Busca la carpeta
var/cache/(en versiones recientes de PrestaShop 1.7 y 8.x) ocache/smarty/(en versiones antiguas). - Dentro de la carpeta de caché, elimina el contenido de los directorios
prodydev(o las carpetassmarty/compileysmarty/cache). Asegúrate de no borrar las carpetas principales, solo su contenido. - Vuelve a cargar tu tienda en el navegador para comprobar si el error ha desaparecido.
Método 2: Activar el Modo Debug (Modo de Depuración) para Identificar el Origen
Si la limpieza de caché no funcionó, necesitas ver el mensaje exacto de la excepción para saber qué archivo o módulo está fallando.
- Accede a tu servidor vía FTP o Administrador de Archivos.
- Busca el archivo de configuración ubicado en
config/defines.inc.php(en PrestaShop 1.6) o edita el archivosrc/PrestaShopBundle/Controller/Admin/Improve/Design/ThemeController.phpo similar, aunque la forma más segura en PrestaShop 1.7/8 es mediante el archivoconfig/defines.inc.phpsi existe, o modificandodefine('_PS_MODE_DEV_', false);adefine('_PS_MODE_DEV_', true);. - Si utilizas PrestaShop 1.7 o 8, abre el archivo
config/defines.inc.phpy cambia la líneadefine('_PS_MODE_DEV_', false);pordefine('_PS_MODE_DEV_', true);. - Guarda los cambios y recarga tu página web. En lugar de una pantalla blanca, ahora verás una traza detallada (stack trace) indicando el error exacto de Smarty y la ruta del archivo problemático.
- Una vez identificado y corregido el archivo o módulo defectuoso, recuerda volver a cambiar el valor a
falsepor razones de seguridad.
Método 3: Verificar los Permisos de Escritura en el Servidor
PrestaShop necesita permisos estrictos para escribir y compilar las plantillas de Smarty en tiempo de ejecución.
- Accede a tu panel de alojamiento (cPanel, Plesk) o mediante SSH.
- Asegúrate de que las carpetas de caché y logs tengan los permisos correctos de lectura, escritura y ejecución (habitualmente
755para directorios y644para archivos). - Los directorios críticos que deben tener permisos de escritura son
var/cache/,var/logs/yimg/.