Introducción al Error de Smarty en PrestaShop
El motor de plantillas Smarty es fundamental en PrestaShop para separar la lógica de negocio de la interfaz visual. Sin embargo, cuando los archivos de caché se corrompen debido a cambios en el código, instalaciones defectuosas de módulos o problemas de permisos en el servidor, el sistema genera una excepción que bloquea tanto el frontoffice como el backoffice. Este fallo suele mostrarse en pantalla con mensajes largos relacionados con el directorio var/cache.
Causas Principales de la Excepción Smarty
Identificar el origen del problema te ayudará a evitar que vuelva a suceder en el futuro. Las causas más comunes incluyen:
- Archivos temporales de caché corruptos o incompletos.
- Permisos de escritura incorrectos en la carpeta
var/cache/del servidor. - Falta de memoria RAM o espacio en disco durante la compilación de la plantilla.
- Incompatibilidad de sintaxis en archivos
.tplmodificados recientemente.
Método 1: Vaciar la Caché de Smarty Manualmente via FTP o SSH
La forma más rápida y efectiva de solucionar este error cuando no puedes acceder al panel de administración es limpiar los archivos compilados directamente desde el servidor.
- Conéctate a tu servidor utilizando un cliente FTP (como FileZilla) o por SSH.
- Navega hasta la raíz de instalación de tu tienda PrestaShop.
- Entra en el directorio
var/cache/. - Verás dos carpetas principales llamadas
prodydev(o dependiendo del modo en que esté tu tienda). - Elimina el contenido interior de las carpetas
prod/smarty/cache,prod/smarty/compile,dev/smarty/cacheydev/smarty/compile(asegúrate de no borrar las carpetas principales, solo sus archivos internos). - Actualiza tu tienda en el navegador para comprobar que el error ha desaparecido.
Método 2: Corregir los Permisos de Archivos y Carpetas
Si el servidor no tiene permisos para escribir en las carpetas de caché, Smarty no podrá compilar las vistas y volverá a mostrar la excepción.
- Accede a tu terminal SSH con permisos de administrador (root o usuario propietario de la web).
- Ejecuta el siguiente comando para ajustar los permisos de las carpetas de caché a 755:
find var/cache/ -type d -exec chmod 755 {} \; - Ejecuta este comando para ajustar los permisos de los ficheros internos a 644:
find var/cache/ -type f -exec chmod 644 {} \; - Asegúrate de que el usuario del servidor web (por ejemplo,
www-dataoapache) sea el propietario:chown -R www-data:www-data var/cache/
Método 3: Desactivar la Caché desde la Base de Datos (Si no hay acceso al Backoffice)
Si el error te impide entrar en el panel de control para desactivar la caché, puedes forzarlo directamente en la base de datos usando phpMyAdmin.
- Entra en phpMyAdmin desde el panel de control de tu hosting (cPanel o Plesk).
- Selecciona la base de datos de tu PrestaShop.
- Busca la tabla llamada
ps_configuration(el prefijops_puede variar). - Utiliza el buscador interno de la tabla para localizar las variables
PS_SMARTY_CACHE_TYPEyPS_SMARTY_FORCE_COMPILE. - Edita
PS_SMARTY_FORCE_COMPILEy cambia su valor a2(Recompilar plantillas si los archivos fueron modificados) o1(Forzar compilación). - Guarda los cambios y recarga tu tienda web. Una vez cargue correctamente, recuerda volver a configurar la caché de forma óptima desde tu backoffice de PrestaShop.