Resolver problemas

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

Revisto a 3 min de leitura base de datos errores prestashop

Shop not found at line xxx in file classes/shop/Shop.php indica que o PrestaShop não conseguiu carregar uma loja válida. A exceção não demonstra por si só que PS_SHOP_DEFAULT seja a origem inicial.

No front office, o PrestaShop tenta primeiro identificar a loja correspondente ao domínio e ao caminho pedidos. Se essa loja não for resolvida, não carregar ou não estiver ativa, tenta abrir a loja definida por PS_SHOP_DEFAULT; a exceção aparece quando também não consegue carregar esse 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');
}

Guarde o URL exato e o rastreio antes de modificar a base de dados. Numa instalação multiloja, verifique estas relações com o prefixo real das tabelas:

  • Em PREFIX_shop_url, reveja domain, domain_ssl, physical_uri, virtual_uri, main e active para o host e o caminho que falham.
  • Em PREFIX_shop, confirme que a loja obtida e a predefinida existem, estão ativas e não constam como eliminadas.
  • Em PREFIX_configuration, liste todas as linhas PS_SHOP_DEFAULT juntamente com id_shop_group e id_shop. O valor efetivo pode depender do contexto de grupo ou de loja.

Não edite a primeira linha que encontrar nem copie um identificador de outra loja sem verificar o contexto. Crie antes uma cópia da base de dados e teste a correção num clone; um URL ou uma loja predefinida incorretos podem afetar todos os pedidos do front office.

Se não conseguir determinar que âmbito Configuration::get() resolve, contacte o suporte e indique o domínio, o caminho que falha, a hora aproximada e o rastreio. Não envie credenciais no ticket.

Verificar domínio e caminho antes de mexer nos dados

Se ocorreu depois de uma mudança de domínio, confirme primeiro a que servidor chega o pedido e que raiz de documentos utiliza. Uma base correta não evita o erro se estiver a abrir outra cópia da loja com um host que não tem registado.

Depois da correção mínima, teste HTTP/HTTPS, a variante com ou sem www escolhida, uma página interior e a administração. Em multiloja, reveja também as lojas que não deviam mudar e verifique que o fallback não leva o visitante a outro catálogo.

Também lhe pode ser útil

Algo não bate certo ou mudou? Diga-nos e revemos.