Fehlerbehebung

Fehler „Shop not found at line xxx in file classes/shop/Shop.php“

Geprüft am 3 Min. Lesezeit base de datos errores prestashop

Shop not found at line xxx in file classes/shop/Shop.php bedeutet, dass PrestaShop keinen gültigen Shop laden konnte. Die Exception allein beweist nicht, dass PS_SHOP_DEFAULT die ursprüngliche Ursache ist.

Im Frontoffice versucht PrestaShop zuerst, den Shop zu ermitteln, der zur angeforderten Domain und zum Pfad gehört. Lässt sich dieser Shop nicht auflösen, nicht laden oder ist er nicht aktiv, versucht es den in PS_SHOP_DEFAULT festgelegten Shop zu öffnen; die Exception erscheint, wenn es auch diesen Fallback nicht laden kann.

// 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');
}

Bewahren Sie die genaue URL und den Stacktrace auf, bevor Sie die Datenbank ändern. Prüfen Sie in einer Multishop-Installation diese Beziehungen mit dem tatsächlichen Tabellenpräfix:

  • Prüfen Sie in PREFIX_shop_url die Felder domain, domain_ssl, physical_uri, virtual_uri, main und active für den Host und den Pfad, die fehlschlagen.
  • Bestätigen Sie in PREFIX_shop, dass der ermittelte Shop und der Standardshop existieren, aktiv sind und nicht als gelöscht markiert sind.
  • Listen Sie in PREFIX_configuration alle Zeilen PS_SHOP_DEFAULT zusammen mit id_shop_group und id_shop auf. Der wirksame Wert kann vom Gruppen- oder Shop-Kontext abhängen.

Bearbeiten Sie nicht die erste Zeile, die Sie finden, und übernehmen Sie keine Kennung eines anderen Shops, ohne den Kontext zu prüfen. Erstellen Sie vorher ein Backup der Datenbank und testen Sie die Korrektur in einem Klon; eine falsche URL oder ein falscher Standardshop kann alle Anfragen des Frontoffice betreffen.

Können Sie nicht ermitteln, welchen Geltungsbereich Configuration::get() auflöst, wenden Sie sich an den Support und nennen Sie die Domain, den fehlerhaften Pfad, die ungefähre Uhrzeit und den Stacktrace. Senden Sie keine Zugangsdaten im Ticket.

Domain und Pfad prüfen, bevor Sie Daten ändern

Ist der Fehler nach einem Domainwechsel aufgetreten, prüfen Sie zuerst, an welchen Server die Anfrage geht und welches Document Root er verwendet. Eine korrekte Datenbank verhindert den Fehler nicht, wenn Sie eine andere Kopie des Shops mit einem Host aufrufen, der dort nicht registriert ist.

Testen Sie nach der minimalen Korrektur HTTP/HTTPS, die gewählte Variante mit oder ohne www, eine Unterseite und das Backoffice. Prüfen Sie im Multishop-Modus auch die Shops, die sich nicht ändern sollten, und dass der Fallback den Besucher nicht in einen anderen Katalog führt.

Das könnte Ihnen auch helfen

Stimmt etwas nicht oder hat sich etwas geändert? Erzählen Sie es uns, und wir prüfen es.