Résoudre les problèmes
Erreur « Shop not found at line xxx in file classes/shop/Shop.php »
Shop not found at line xxx in file classes/shop/Shop.php indique que PrestaShop n'a pas pu charger une boutique valide. L'exception ne prouve pas à elle seule que PS_SHOP_DEFAULT en est l'origine première.
En front office, PrestaShop essaie d'abord d'identifier la boutique correspondant au domaine et au chemin demandés. Si cette boutique n'est pas résolue, ne se charge pas ou n'est pas active, il essaie d'ouvrir la boutique définie par PS_SHOP_DEFAULT ; l'exception apparaît lorsqu'il ne peut pas non plus charger cette boutique de repli.
// 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'); }
Conservez l'URL exacte et la trace avant de modifier la base de données. Dans une installation multiboutique, vérifiez ces relations avec le préfixe réel des tables :
- Dans
PREFIX_shop_url, examinezdomain,domain_ssl,physical_uri,virtual_uri,mainetactivepour l'hôte et le chemin qui échouent. - Dans
PREFIX_shop, confirmez que la boutique obtenue et la boutique par défaut existent, sont actives et ne sont pas marquées comme supprimées. - Dans
PREFIX_configuration, listez toutes les lignesPS_SHOP_DEFAULTavecid_shop_groupetid_shop. La valeur effective peut dépendre du contexte de groupe ou de boutique.
Ne modifiez pas la première ligne trouvée et ne copiez pas l'identifiant d'une autre boutique sans vérifier le contexte. Faites d'abord une sauvegarde de la base de données et testez la correction sur un clone ; une URL ou une boutique par défaut incorrecte peut affecter toutes les requêtes du front office.
Si vous ne parvenez pas à déterminer quelle portée résout Configuration::get(), contactez l'assistance en indiquant le domaine, le chemin qui échoue, l'heure approximative et la trace. N'envoyez pas d'identifiants dans le ticket.
Vérifier le domaine et le chemin avant de toucher aux données
Si l'erreur est survenue après un changement de domaine, confirmez d'abord vers quel serveur arrive la requête et quelle racine de documents elle utilise. Une base correcte n'évite pas l'erreur si vous ouvrez une autre copie de la boutique avec un hôte qui n'y est pas enregistré.
Après la correction minimale, testez HTTP/HTTPS, la variante avec ou sans www choisie, une page intérieure et l'administration. En multiboutique, vérifiez aussi les boutiques qui ne devaient pas changer et que la boutique de repli n'envoie pas le visiteur vers un autre catalogue.
Cela peut aussi vous aider
- PrestaShopException : diagnostiquer Invalid address Repérez la référence exacte qui provoque Invalid address et ne nettoyez que les paniers sans command...
- Erreur de fuseaux horaires de GLPI avec MariaDB ou MySQL Distinguez les données de fuseaux horaires non chargées de la permission requise uniquement par les...
- PrestaShop, taille excessive de la table layered_filter_block Mesurez et videz le cache de la Recherche à facettes, distinguez-le de son index de prix et mettez à...
- PrestaShop : « An exception occurred while establishing a connection to figure out your platform version » Solution à l'erreur SQLSTATE[HY000] [2026] SSL_CTX_set_default_verify_paths failed lors de l'install...
Quelque chose cloche ou a changé ? Racontez-nous et nous le vérifions.