Solucionar problemas

Error "Shop not found at line xxx in file classes/shop/Shop.php"

Revisado el 3 min de lectura base de datos errores prestashop

Shop not found at line xxx in file classes/shop/Shop.php indica que PrestaShop no pudo cargar una tienda válida. La excepción no demuestra por sí sola que PS_SHOP_DEFAULT sea el origen inicial.

En el front office, PrestaShop intenta primero identificar la tienda correspondiente al dominio y a la ruta solicitados. Si esa tienda no se resuelve, no carga o no está activa, intenta abrir la tienda definida por PS_SHOP_DEFAULT; la excepción aparece cuando tampoco puede cargar ese fallback.

// No shop found ... too bad, let's redirect to default shop
$default_shop = new Shop((int) Configuration::get('PS_SHOP_DEFAULT'));

// Hmm there is something really bad in your Prestashop !
if (!Validate::isLoadedObject($default_shop)) {
    throw new PrestaShopException('Shop not found');
}

Conserva la URL exacta y la traza antes de modificar la base de datos. En una instalación multitienda, comprueba estas relaciones con el prefijo real de las tablas:

  • En PREFIX_shop_url, revisa domain, domain_ssl, physical_uri, virtual_uri, main y active para el host y la ruta que fallan.
  • En PREFIX_shop, confirma que la tienda obtenida y la predeterminada existen, están activas y no figuran como eliminadas.
  • En PREFIX_configuration, lista todas las filas PS_SHOP_DEFAULT junto con id_shop_group e id_shop. El valor efectivo puede depender del contexto de grupo o tienda.

No edites la primera fila que encuentres ni copies un identificador de otra tienda sin verificar el contexto. Crea antes una copia de la base de datos y ensaya la corrección en un clon; una URL o tienda predeterminada incorrecta puede afectar a todas las peticiones del front office.

Si no puedes determinar qué ámbito resuelve Configuration::get(), contacta con soporte e indica el dominio, la ruta que falla, la hora aproximada y la traza. No envíes credenciales en el ticket.

Comprobar dominio y ruta antes de tocar datos

Si ocurrió después de un cambio de dominio, confirma primero a qué servidor llega la petición y la raíz documental que utiliza. Una base correcta no evita el error si estás abriendo otra copia de la tienda con un host que no tiene registrado.

Tras la corrección mínima, prueba HTTP/HTTPS, la variante con o sin www elegida, una página interior y la administración. En multitienda revisa también las tiendas que no debían cambiar y que el fallback no lleve al visitante a otro catálogo.

También te puede ayudar

¿Algo no cuadra o ha cambiado? Cuéntanoslo y lo revisamos.