Cómo solucionar el error 'Class not found' en PrestaShop (caché y permisos)
¡Hola! Si estás leyendo esto, seguramente te ha aparecido un mensaje de error bastante molesto en tu tienda PrestaShop que dice algo como "Class not found" o "Clase no encontrada". No te preocupes, es uno de los errores más comunes, y en el 90% de los casos tiene una solución sencilla que no requiere ser un experto en programación.
En esta guía completa y paso a paso, vamos a desglosar exactamente qué significa este error, por qué ocurre y, lo más importante, cómo solucionarlo centrándonos en las dos causas principales: la caché y los permisos de archivos.
Vamos a ello. Respira hondo, porque en menos de lo que canta un gallo tu tienda puede estar funcionando de nuevo.
¿Qué significa el error "Class not found" en PrestaShop?
Antes de lanzarnos a arreglar nada, es fundamental entender qué está pasando. Imagina que PrestaShop es una gran biblioteca. Cuando un visitante entra en tu tienda, el sistema necesita "sacar" un libro (una clase de PHP) de un estante concreto (un archivo en el servidor). El error "Class not found" es como si el bibliotecario buscara el libro y no lo encontrara en el estante donde debería estar.
Esto puede deberse a dos motivos principales:
- El "estante" (archivo) no existe o está mal nombrado: El archivo de la clase se ha borrado, movido o se llama diferente a lo que PrestaShop espera.
- El "mapa de la biblioteca" (caché) está desactualizado: PrestaShop guarda una lista de dónde está cada clase para ir más rápido. Si esta lista se corrompe o no se actualiza, el sistema busca en un sitio equivocado, aunque el archivo exista.
Además, un tercer factor que impide "coger el libro" es que no tengamos permiso para abrir el estante. Esto es el problema de los permisos de archivos.
Vamos a atacar estos frentes por orden de probabilidad y facilidad. La mayoría de las veces, el problema se soluciona con el primer paso.
Solución 1: Limpiar la caché de PrestaShop (El remedio infalible)
Como hemos dicho, la caché es la "memoria rápida" de PrestaShop. Guarda versiones compiladas de las clases para que tu tienda cargue más rápido. Pero a veces, esta caché se queda obsoleta y guarda referencias a clases que ya no existen o que han cambiado de ubicación. Es como si el bibliotecario tuviera una lista de estanterías de hace 10 años.
Limpiar la caché es el primer paso y el que más veces resuelve el error "class not found prestashop". Aquí tienes dos formas de hacerlo:
Método A: Limpiar la caché desde el Panel de Administración (La vía fácil)
Si todavía puedes acceder a tu back-office de PrestaShop, esta es la opción más rápida y segura.
- Inicia sesión en tu administración de PrestaShop (normalmente en
tudominio.com/admin). - En el menú superior, busca el apartado "Parámetros avanzados".
- Dentro, haz clic en "Rendimiento".
- Verás una sección llamada "Caché". Asegúrate de que la opción "Combina, minimiza y comprime" o "Caché de plantillas" esté activada o desactivada (no importa para este paso).
- Justo al lado, verás un botón azul que dice "Vaciar la caché" o un icono de una flecha circular. Haz clic en él.
[TIP]: Después de vaciar la caché, es recomendable que también desactives la caché temporalmente (poniendo "No" en la opción de caché) y recargues la página que daba el error. Luego, vuelve a activarla. Esto fuerza a PrestaShop a reconstruir toda la caché desde cero.
Si has podido hacer esto, prueba de nuevo tu tienda. Si el error persiste, o si directamente no puedes acceder al panel de administración, pasa al siguiente método.
Método B: Limpiar la caché manualmente por FTP (La vía del "bombero")
Si el error es tan grave que te impide entrar al panel de administración, tendremos que apagar el "incendio" manualmente. Esto se hace borrando los archivos de caché directamente desde el servidor usando un cliente FTP como FileZilla.
- Conéctate a tu servidor de hosting mediante FTP.
- Navega hasta la carpeta raíz donde está instalado PrestaShop. Normalmente es
public_html,htdocsowww. - Dentro, busca la carpeta llamada
var/cache(en versiones modernas de PrestaShop 1.7 y 8.x) ocache(en versiones antiguas como PrestaShop 1.6). - Entra en la subcarpeta que encuentres. Verás carpetas con nombres raros como
dev,prodoclass_index.php. - Borra todo el contenido de DENTRO de la carpeta
cacheovar/cache. No borres la carpeta en sí, solo su interior. - IMPORTANTE: Si tu FTP no te deja borrar los archivos, es que no tienes permisos de escritura. Tendrás que cambiar los permisos de la carpeta a
755o777temporalmente, borrar el contenido, y luego volver a poner los permisos originales.
[WARNING]: No te asustes si al borrar la caché tu tienda carga un poco más lento la primera vez. Es completamente normal. PrestaShop está reconstruyendo toda la información desde cero.
Solución 2: Corregir los permisos de archivos y carpetas (El problema de raíz)
Si has limpiado la caché y el error "Class not found" sigue apareciendo, el problema es más profundo. Lo más probable es que los permisos de los archivos y carpetas de tu instalación sean incorrectos.
Los permisos son reglas que le dicen al servidor quién puede leer, escribir o ejecutar un archivo. Si un archivo de clase tiene permisos demasiado restrictivos (por ejemplo, 644 cuando debería ser 755), el servidor no puede leerlo y PrestaShop no puede usar esa clase, dando lugar al error.
¿Cómo deben ser los permisos correctos en PrestaShop?
La configuración estándar y segura es la siguiente:
- Carpetas (Directorios): Deben tener permisos
755. Esto significa que el propietario puede leer, escribir y ejecutar; y los demás solo leer y ejecutar. - Archivos: Deben tener permisos
644. Esto significa que el propietario puede leer y escribir; y los demás solo leer.
[INFO]: En algunos servidores, especialmente los que usan PHP como módulo de Apache (mod_php), los permisos de las carpetas pueden necesitar ser 775 en lugar de 755. Si después de probar con 755 sigue fallando, prueba con 775.
Pasos para corregir los permisos con un cliente FTP (FileZilla)
Esta es la forma más visual y fácil de hacerlo sin necesidad de comandos.
- Conéctate a tu hosting por FTP.
- Selecciona todas las carpetas y archivos de la raíz de tu PrestaShop (puedes usar
Ctrl+Apara seleccionar todo). - Haz clic derecho sobre la selección y elige la opción "Permisos de archivos..." (o "File permissions...").
- Se abrirá una ventana. Marca la casilla "Aplicar a todos los archivos y carpetas" (o "Recurse into subdirectories") y luego elige la opción que dice "Aplicar solo a los directorios" (o "Apply to directories only").
- En el campo de "Valor numérico", escribe
755y haz clic en Aceptar. Esto cambiará todas las carpetas. - Repite el proceso. Selecciona todo de nuevo, ve a "Permisos de archivos...", marca la casilla de recursividad, pero esta vez elige "Aplicar solo a los archivos" (o "Apply to files only").
- En el valor numérico, escribe
644y haz clic en Aceptar.
Este proceso puede tardar unos minutos si tienes una tienda grande con muchos archivos. Cuando termine, vuelve a limpiar la caché (como en el paso anterior) y comprueba si el error ha desaparecido.
Solución 3: El archivo config/defines.inc.php (Para desarrolladores y casos extremos)
A veces, el error de caché es tan persistente que no se soluciona ni borrando los archivos manualmente. Esto puede deberse a que PrestaShop tiene una "caché de clases" muy agresiva.
En estos casos, podemos forzar a PrestaShop a ignorar la caché de clases y buscar los archivos en tiempo real. Esto se hace editando un archivo de configuración, pero ojo, es una solución temporal para diagnosticar.
-
Conéctate por FTP y navega a la carpeta
configen la raíz de tu PrestaShop. -
Busca el archivo
defines.inc.php. -
Descarga una copia de seguridad de este archivo a tu ordenador por si acaso.
-
Edita el archivo con un editor de texto plano (como Bloc de Notas o Notepad++).
-
Busca la línea que dice:
define('_PS_DISABLE_OVERRIDES_', false);o similar. Justo debajo, añade esta línea:define('_PS_DEBUG_PROFILING_', true); define('_PS_DISABLE_CLASS_CACHE_', true); -
Guarda el archivo y súbelo de nuevo al servidor (reemplazando el original).
-
Recarga tu tienda. Si el error desaparece, confirma que es un problema de caché de clases.
[WARNING]: No dejes esta configuración activada para siempre. Hace que tu tienda sea mucho más lenta. Úsalo solo para diagnosticar. Cuando hayas confirmado el problema, elimina las líneas que añadiste y vuelve a subir el archivo original.
Solución 4: Revisar la integridad de los archivos (¿Falta una clase?)
Si después de todo esto el error persiste, es posible que el archivo de la clase realmente no exista en tu servidor. Esto puede pasar si una actualización de PrestaShop falló, si un módulo se instaló mal o si un plugin de seguridad eliminó archivos que consideraba peligrosos.
- El mensaje de error te dirá qué clase no se encuentra. Por ejemplo:
Class 'ProductController' not found. - Conecta por FTP y navega a la carpeta
controllersoclasses(dependiendo de la clase que falte). - Busca el archivo correspondiente. Siguiendo el ejemplo, buscarías
ProductController.php. - Si no está, tienes dos opciones:
- Reinstalar PrestaShop: La opción más garantizada. Descarga la misma versión de PrestaShop que tienes instalada desde tu área de cliente, descomprime el archivo en tu ordenador y sube las carpetas
classes,controllers,src, etc. por FTP, sin borrar la carpetaconfigniimg(para no perder tu configuración y tus imágenes). - Reinstalar el módulo: Si el error viene de un módulo específico (por ejemplo,
Class 'MiModulo' not found), lo más fácil es desinstalar y volver a instalar el módulo desde el back-office, o reinstalarlo manualmente por FTP.
- Reinstalar PrestaShop: La opción más garantizada. Descarga la misma versión de PrestaShop que tienes instalada desde tu área de cliente, descomprime el archivo en tu ordenador y sube las carpetas
Preguntas Frecuentes (FAQ)
¿Por qué me ha pasado esto sin haber tocado nada?
Es la pregunta del millón. Normalmente ocurre después de una actualización de PrestaShop, de un módulo o de PHP en tu servidor. Estos cambios pueden invalidar la caché o alterar los permisos de los archivos. También puede ocurrir si tu hosting cambió la configuración del servidor sin avisar.
¿Puedo evitar que esto vuelva a pasar?
Sí, con estos hábitos:
- Siempre limpia la caché después de instalar o actualizar cualquier módulo, tema o la propia tienda.
- No desactive los permisos estándar. Si algún plugin te pide permisos
777, es una mala señal. Los permisos755para carpetas y644para archivos son los correctos. - Mantén tu PrestaShop actualizado a la última versión estable. Cada versión corrige errores de este tipo.
- Antes de tocar nada, haz una copia de seguridad completa de archivos y base de datos.
¿Y si mi hosting usa Syspanel? ¿Cambia algo?
No cambia nada en el proceso. Syspanel (cuyo puerto de acceso es el 2106) es simplemente el panel de control de tu hosting. Puede que el acceso por FTP sea diferente, pero los pasos para limpiar la caché y cambiar permisos son exactamente los mismos. Solo tienes que usar las credenciales FTP que te proporciona tu proveedor de hosting, que puedes gestionar desde Syspanel.
¿El error "Class not found" puede estar en la base de datos?
No directamente. El error de "Class not found" es un error de PHP, por lo que está relacionado con los archivos del servidor. Sin embargo, una base de datos corrupta puede provocar que PrestaShop intente cargar una clase que no necesita, causando un error secundario. Si has agotado todas las opciones, podrías probar a reparar las tablas de la base de datos desde phpMyAdmin, pero es menos probable.
Esperamos que esta guía extensa te haya sido de gran ayuda. Como has visto, solucionar prestashop error de "Class not found" es un proceso de eliminación: primero lo más fácil (caché), luego lo más común (permisos) y, por último, lo más complejo (integridad de archivos). Con paciencia y siguiendo estos pasos, tu tienda volverá a estar operativa en muy poco tiempo. ¡Mucha suerte!
