Introducción
Uno de los dolores de cabeza más comunes para los administradores de tiendas virtuales es encontrarse con una excepción de Smarty al intentar acceder al FrontOffice o BackOffice. Este motor de plantillas es fundamental para renderizar las vistas en PrestaShop, y cuando falla, suele mostrar un mensaje de error crítico que interrumpe las ventas.
Causas Principales de la Excepción de Smarty
Los errores de Smarty en PrestaShop generalmente se originan por las siguientes razones:
- Archivos de caché corruptos en el servidor.
- Errores de sintaxis en archivos .tpl modificados recientemente (temas o módulos).
- Incompatibilidad de versiones de PHP con la versión del motor de plantillas.
- Falta de permisos de escritura en la carpeta de caché de PrestaShop.
Método 1: Borrar la Caché de Smarty Manualmente vía FTP o SSH
Cuando la interfaz de administración no responde debido al error, la mejor opción es purgar la caché directamente desde el servidor:
- Conéctate a tu servidor mediante un cliente FTP (como FileZilla) o SSH.
- Navega hasta la raíz de instalación de tu tienda PrestaShop.
- Entra en la carpeta
var/cache/(en versiones antiguas de PrestaShop la ruta esapp/cache/ocache/smarty/). - Elimina el contenido de las carpetas
prodydev(o borra todo el contenido dentro decache/smarty/). - Recarga tu tienda web para verificar si el error ha desaparecido.
Método 2: Activar el Modo Debug para Identificar el Archivo TPL Afectado
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 tienda mediante FTP y localiza el archivo
config/defines.inc.php(en PrestaShop 1.7 y 8, busca el archivosrc/PrestaShopBundle/Controller/Admin/Configure/AdvancedParameters/PerformanceController.phpo edita el archivoconfig/defines.inc.phpsi existe). - Cambia el valor de
_PS_MODE_DEV_defalseatrue:define('_PS_MODE_DEV_', true);. - Vuelve a cargar la página con el error en tu navegador. Ahora verás una traza detallada (stack trace) que indica el archivo
.tply la línea exacta del error. - Corrige el error de sintaxis en el archivo indicado (por ejemplo, una etiqueta de Smarty mal cerrada como
{if}sin su correspondiente{/if}).
Método 3: Comprobar los Permisos de Directorios y Archivos
Una causa recurrente es que el servidor no pueda escribir en los directorios temporales de Smarty:
- Accede por SSH o revisa con tu proveedor de hosting los permisos de las carpetas de caché.
- Asegúrate de que los directorios
var/cache/yvar/logs/tengan permisos755o775. - Aplica recursivamente el propietario correcto para que coincida con el usuario del servidor web (por ejemplo,
chown -R www-data:www-data var/cache/).