Cómo resolver el error 'class not found' en PrestaShop (Syspanel)
¿Te ha aparecido el temido mensaje de error class not found prestashop en tu panel de administración o incluso en la tienda? No te preocupes, es uno de los errores más comunes, pero también de los más fáciles de solucionar si sabes dónde mirar.
Este error, que suele aparecer acompañado de un texto similar a Fatal error: Class 'NombreClase' not found in /ruta/al/archivo.php on line X, indica que PrestaShop no puede encontrar un archivo de clase (un archivo .php que define una clase) que necesita para funcionar.
En este artículo, te guiaré paso a paso, como si estuvieras hablando con un técnico de soporte, para que entiendas por qué ocurre y cómo solucionarlo. Y como este problema está muy ligado a la gestión de archivos del servidor, también te explicaré cómo hacerlo usando el Syspanel (el panel de control que usamos en nuestros servidores, accesible a través del puerto 2106).
Vamos a ello.
¿Por qué ocurre el error "Class not found" en PrestaShop?
Antes de lanzarnos a arreglarlo, es importante entender el origen. PrestaShop es un software complejo que funciona como una biblioteca gigante. Cada funcionalidad (carritos, productos, usuarios, etc.) tiene su propio "libro" llamado clase. Cuando el sistema necesita usar una función, va a buscar ese "libro" a su estantería (la carpeta /classes).
El error aparece cuando el "libro" no está en la estantería o la estantería está rota. Las causas más frecuentes son:
- Actualización incompleta: Si has actualizado PrestaShop o un módulo y el proceso se interrumpió, es probable que falten archivos de las nuevas versiones o que queden archivos antiguos incompatibles.
- Módulos incompatibles: Un módulo mal programado o desactualizado puede intentar llamar a una clase que no existe en tu versión de PrestaShop.
- Permisos de archivos incorrectos: El servidor no tiene permiso para leer el archivo de la clase. Es como si el bibliotecario no tuviera la llave de la sala donde está el libro.
- Problemas de caché: A veces, PrestaShop guarda una "foto" de cómo están organizados los archivos. Si esta foto está desactualizada, no encuentra la clase aunque el archivo exista.
- Errores de sobrescritura (Override): Si tienes un tema o un módulo que sobrescribe una clase nativa y el archivo de sobrescritura tiene un error de sintaxis, puede bloquear la carga.
Diagnóstico inicial: ¿Qué archivo y clase busca?
El primer paso para solucionar PrestaShop es leer bien el mensaje de error. En la mayoría de los casos, el propio error te dice qué clase no encuentra y en qué archivo.
Ejemplo práctico:
Fatal error: Class 'Cart' not found in /home/usuario/public_html/classes/Cart.php on line 0
En este caso, la clase que falta es Cart. Lo más probable es que el archivo Cart.php en la carpeta /classes esté corrupto, vacío o tenga un error de sintaxis.
Otro ejemplo:
Fatal error: Class 'MiModulo' not found in /home/usuario/public_html/modules/mimodulo/mimodulo.php on line 42
Aquí, el problema es que el módulo mimodulo está intentando usar una clase que no se ha definido correctamente dentro de su propio archivo.
[WARNING] IMPORTANTE: Anota el nombre de la clase y la ruta del archivo que aparece en el error. Esto te ahorrará mucho tiempo en los siguientes pasos.
Solución paso a paso para el error "Class not found"
Vamos a aplicar los arreglos de menor a mayor complejidad. Te recomiendo seguir este orden:
1. Regenerar el caché y borrar archivos temporales (La solución rápida)
Muchas veces, el error es solo un problema de caché. PrestaShop guarda archivos compilados en las carpetas /var/cache y /cache. Si estos archivos se corrompen, pueden provocar errores extraños.
Cómo hacerlo desde el Syspanel:
- Accede a tu Syspanel (recuerda, la URL es
https://tu-dominio.com:2106). - Ve a la sección de "Archivos" o "Administrador de archivos".
- Navega hasta la carpeta raíz de tu tienda PrestaShop (normalmente
public_htmlowww). - Busca la carpeta
/var/cache(en PrestaShop 1.7 y 1.8) o/cache(en PrestaShop 1.6 y anteriores). - Dentro de ella, busca los archivos que empiecen por
class_index.phpocache.phpy bórralos. No te preocupes, se regenerarán automáticamente. - Si no encuentras esos archivos, borra todo el contenido de la carpeta
/var/cache/prodo/var/cache/dev(dependiendo de tu entorno). En versiones antiguas, borra todo el contenido de/cacheexcepto las carpetastcpdfy.htaccesssi existen.
[TIP] TIP: Si no puedes acceder al Syspanel, puedes hacerlo por FTP (FileZilla) o desde el cPanel. El proceso es el mismo: eliminar los archivos de caché.
Después de borrar, recarga tu tienda. En un 30% de los casos, esto resuelve el error class not found prestashop.
2. Verificar los permisos de archivos y carpetas
Si el caché no era el problema, el siguiente sospechoso son los permisos. Si un archivo tiene permisos demasiado restrictivos (por ejemplo, 644 en lugar de 644 para archivos y 755 para carpetas), el servidor no puede leerlo.
Pasos a seguir:
- Vuelve al Syspanel y al administrador de archivos.
- Navega hasta la carpeta que te indica el error (por ejemplo,
/classes). - Busca el archivo que falta (por ejemplo,
Cart.php). - Haz clic derecho sobre él y selecciona "Permisos" o "Cambiar permisos".
- Asegúrate de que tenga el valor
644(que significa que el propietario puede leer y escribir, y el resto solo leer). - Aplica el mismo proceso a todas las carpetas, que deben tener
755.
[INFO] INFO: En la mayoría de los casos, los permisos correctos son
644para archivos y755para directorios. Si ves que todos están en000o600, es un problema grave de configuración del servidor.
3. Revisar la clase específica y su archivo de override
A veces, el problema no es la clase nativa, sino un override (sobrescritura) que está roto. Los overrides se encuentran en la carpeta /override/classes/.
- Ve a la carpeta
/override/classesen tu servidor. - Busca un archivo que tenga el mismo nombre que la clase del error (ej.
Cart.php). - Si existe, ábrelo con un editor de texto del Syspanel y revisa si tiene errores de sintaxis. Si no sabes programar, una opción segura es renombrar el archivo a
Cart.php.bakpara desactivarlo temporalmente. - Recarga la tienda. Si el error desaparece, el override era el culpable. Puedes intentar actualizar el módulo o tema que lo generó, o contactar con su desarrollador.
4. Desactivar módulos problemáticos (Modo Mantenimiento)
Si el error persiste, es muy probable que un módulo esté causando el conflicto. Para probarlo, debemos desactivar todos los módulos de golpe.
Método manual (el más fiable):
- Conecta a tu base de datos MySQL desde el Syspanel (suele haber una sección de "Bases de datos").
- Busca la tabla
ps_module(el prefijops_puede variar). - Ejecuta la siguiente consulta SQL para desactivar todos los módulos:
UPDATE ps_module SET active = 0 WHERE active = 1; - Después, intenta acceder a tu tienda. Si ya no da error, el problema era un módulo.
- Ahora, ve a tu administración de PrestaShop (si puedes) y activa los módulos uno por uno para identificar al culpable.
[WARNING] WARNING: Esta acción desactivará todos los módulos, incluidos los de pago. Tu tienda quedará "en modo escaparate" sin funcionalidades extra. Es una medida temporal para el diagnóstico.
5. Re-subir el archivo de la clase desde una copia limpia
Si el archivo de la clase está dañado (por ejemplo, se subió incompleto por una transferencia de FTP fallida), la mejor solución es reemplazarlo.
- Descarga una copia limpia de tu versión exacta de PrestaShop desde el sitio oficial de PrestaShop.
- Descomprímela en tu ordenador.
- Localiza el archivo de la clase que falla (ej.
classes/Cart.php). - Usa el Syspanel para subir este archivo a la carpeta correspondiente en tu servidor, sobrescribiendo el existente.
[TIP] TIP: Asegúrate de que la versión de PrestaShop que descargas es EXACTAMENTE la misma que tienes instalada (ej. 1.7.8.10). Mezclar versiones puede crear nuevos errores.
6. Habilitar el modo de depuración (Debug Mode)
PrestaShop tiene un modo de depuración que muestra errores más detallados. Esto te dará pistas más precisas sobre qué está fallando.
- Abre el archivo
/config/defines.inc.phpdesde el Syspanel. - Busca la línea que dice
define('_PS_MODE_DEV_', false);. - Cámbiala a
define('_PS_MODE_DEV_', true);. - Guarda el archivo y recarga la página del error. Ahora verás un mensaje mucho más largo y detallado, con "stack traces" (la ruta de ejecución) que te indicará exactamente qué módulo o archivo está llamando a la clase que no existe.
[INFO] INFO: ¡MUY IMPORTANTE! Una vez termines de diagnosticar, vuelve a cambiar el valor a
falsepara que los clientes no vean errores internos de tu servidor.
Preguntas Frecuentes (FAQ)
¿Qué es Syspanel y por qué usan el puerto 2106?
Syspanel es el nombre de nuestro panel de control de hosting personalizado. Es una alternativa a cPanel o Plesk. Para acceder a él, debes escribir la dirección de tu dominio seguido de dos puntos y el puerto 2106 (ej. https://midominio.com:2106). Ahí podrás gestionar archivos, bases de datos, dominios y más.
¿Por qué veo este error después de restaurar una copia de seguridad?
Es muy común. Si la copia de seguridad es de una versión anterior de PrestaShop y la restauraste sobre una versión más nueva (o viceversa), las clases no coinciden. La solución más limpia es hacer una instalación limpia de la versión correcta y luego importar la base de datos.
¿Este error puede afectar a mi posicionamiento SEO?
Sí, indirectamente. Si el error está en la tienda (front-office), los buscadores no podrán rastrear tu web correctamente, lo que puede provocar una caída en tu posicionamiento. Además, la mala experiencia de usuario (UX) al ver un error en lugar de la tienda, aumenta la tasa de rebote. Por eso es crucial solucionar PrestaShop rápidamente.
¿Cómo evito los errores php prestashop en el futuro?
- Mantén siempre tu PrestaShop, módulos y temas actualizados a la última versión estable.
- Antes de hacer cambios importantes, haz siempre una copia de seguridad completa (archivos y base de datos).
- No instales módulos de fuentes no oficiales o pirateadas.
- Revisa los logs del servidor en el Syspanel periódicamente para detectar errores a tiempo.
Conclusión
Resolver el error class not found prestashop puede parecer una tarea de expertos, pero siguiendo estos pasos, la mayoría de los usuarios pueden solucionarlo sin necesidad de un programador. La clave está en la paciencia y en ir descartando causas: primero la caché, luego permisos, después módulos y finalmente archivos.
Recuerda que el Syspanel es tu mejor aliado para gestionar los archivos de tu servidor de forma visual y segura. Siempre que realices cambios, hazlo con cuidado y siguiendo las indicaciones.
Si después de intentar todo esto el error persiste, puede que haya un problema más profundo en tu base de datos o en la configuración del servidor. En ese caso, no dudes en contactar con nuestro equipo de soporte técnico, estaremos encantados de ayudarte a revisar los logs y encontrar la solución definitiva. ¡No te rindas!
