Introducción al Error HTTP 500 por Overrides en PrestaShop
Uno de los problemas más frustrantes a los que se enfrentan los administradores de tiendas online es el temido error HTTP 500 (Error interno del servidor). En PrestaShop, este fallo suele estar ligado a conflictos en los overrides (sobrescrituras de clases y controladores principales) tras la instalación de un módulo o una actualización del sistema.
Causas Principales del Conflicto de Overrides
- Incompatibilidad entre dos o más módulos que intentan sobrescribir la misma clase de PrestaShop (por ejemplo,
Product.phpoCartController.php). - Errores de sintaxis PHP en un archivo personalizado dentro de la carpeta
/override/. - Caché desactualizada que intenta compilar clases inexistentes o corruptas.
- Falta de compatibilidad del override con la versión actual de PrestaShop o PHP.
Método 1: Desactivar los Overrides desde el Panel de Administración (Backoffice)
La forma más rápida de comprobar si el problema proviene de los overrides es desactivarlos temporalmente desde la configuración avanzada de tu PrestaShop.
- Inicia sesión en tu panel de administración de PrestaShop.
- Dirígete al menú lateral y selecciona Parámetros Avanzados > Rendimiento.
- Busca la sección titulada Sobrescrituras (Overrides).
- Cambia el selector de Deshabilitar las sobrescrituras a la opción Sí.
- Haz clic en Guardar en la esquina superior derecha.
- Limpia la caché de PrestaShop haciendo clic en el botón Borrar caché.
- Visita tu tienda (Frontoffice) para comprobar si el error HTTP 500 ha desaparecido. Si la web vuelve a funcionar, el problema es 100% un override defectuoso.
Método 2: Identificar y Eliminar el Override Problemático por FTP
Si no tienes acceso al backoffice o necesitas eliminar el archivo causante del conflicto, deberás utilizar un cliente FTP (como FileZilla).
- Conéctate al servidor de tu tienda mediante FTP o el Administrador de Archivos de tu Hosting.
- Navega hasta la raíz de instalación de PrestaShop y entra en la carpeta
/override/. - Explora las subcarpetas
/classes/y/controllers/para identificar los archivos añadidos recientemente. - Renombra temporalmente el archivo sospechoso (por ejemplo, cámbialo de
Product.phpaProduct.php.bak). - Borra manualmente el contenido de la carpeta
/var/cache/(o/cache/smarty/compile/en versiones antiguas) para forzar la recompilación. - Recarga tu sitio web para verificar si el error se ha solucionado.
Método 3: Depuración (Debug Mode) para Ver el Error Exacto
Para conocer la traza exacta del error y saber qué línea de código está fallando, activa el modo desarrollador:
- Accede por FTP y edita el archivo
/config/defines.inc.php. - Busca la línea que contiene
define('_PS_MODE_DEV_', false);. - Cámbiala a
define('_PS_MODE_DEV_', true);y guarda el archivo. - Vuelve a cargar tu página web en el navegador; en lugar de un genérico error 500, verás una excepción detallada de PHP indicando el archivo exacto del override que genera el conflicto.