#2130 Shopware 5.6.7: Warenkorb in Sprachshops funktioniert nicht mehr

Fehlerbeschreibung

Nach dem Update auf Shopware 5.6.7 funktioniert der Warenkorb eines oder mehrer Sprach-Shops nicht mehr. 


Du erhälst im Frontend die Fehlermeldung "Uncaught TypeError: Return value of Shopware_Controllers_Frontend_Checkout::isShippingAllowed() must be of the type bool [...]".


Ursache

Der Fehler steht unmittelbar mit dem Shopware Update im Zusammenhang und wird nicht durch ThemeWare verursacht. Ursache sind alte Übersetzungszustände.


Lösung

Zu dem Fehler gibt es bereits mehrere Einträge im Shopware Forum, z.B. hier: https://forum.shopware.com/discussion/69249/aufruf-des-warenkorbs-im-en-sprachhop-gibt-seit-update-auf-5-6-7-fehler


1. Lösungsmöglichkeit

Öffne und speichere alle Länder-Übersetzungen unter "Grundeinstellungen > Shopeinstellungen > Länder > Deutschland etc. > Übersetzung von Name".


2. Lösungsmöglichkeit

Passe die Methode isShippingAllowed() in dem Frontend Controller an. Füge dazu nach diesen Zeilen folgenden Code ein:

if (!array_key_exists('allow_shipping', $countryTranslations[$countryId])) {
  return $allowedByDefault;
}


Die vollständige Methode sieht dann so aus:

private function isShippingAllowed(int $countryId): bool
{
  $queryBuilder = $this->get('dbal_connection')->createQueryBuilder();

  $allowedByDefault = (bool) $queryBuilder->select('allow_shipping')
    ->from('s_core_countries', 'countries')
    ->where('countries.id = :countryId')
    ->setParameter(':countryId', $countryId)
    ->execute()
    ->fetchColumn();

  $countryTranslations = $this->get('modules')->sAdmin()->sGetCountryTranslation();

  if (!$countryTranslations) {
    return $allowedByDefault;
  }

  if (!array_key_exists($countryId, $countryTranslations)) {
    return $allowedByDefault;
  }

  if (!array_key_exists('allow_shipping', $countryTranslations[$countryId])) {
    return $allowedByDefault;
  }

  return $countryTranslations[$countryId]['allow_shipping'];
}



Bitte teile uns deine Meinung mit!

Danke, das hat mir geholfen
Hat mir nicht geholfen

d2dd1e871f4bae5db6fdd6c212ab48dd
Kurz die Cookies, dann geht's weiter...
Auch diese Seite nutzt die üblichen Arten von Cookies: Technische und funktionale Cookies sind unbedingt nötig,damit diese Website überhaupt funktionieren kann.Zusätzlich nutzen wir Marketing-Cookies,damit wir dich auf unseren Seiten wiedererkennen und unsere Website und Kampagnen stets verbessern können, sowie Personalisierungs-Cookies mit denen wir dich, auch außerhalb dieser Website, besser ansprechen können.

Mit der Auswahl "Akzeptieren und Schließen" erlaubst Du uns die Verwendung dieser Cookies und Technologien. Bitte besuche unsere Datenschutzerklärung für weitere Informationen. Dort erfährst Du auch wie wir die Daten für erforderliche Zwecke (z. B. Sicherheit) verwenden.

Hier kannst du einstellen, welche Cookies du zulassen möchtest.

Technisch erforderlich

Wir nutzen Cookies, um die Bedienung und die Bereitstellung der Website zu ermöglichen und um sicherzustellen, dass bestimmte Funktionen ordnungsgemäß funktionieren. Diese Cookies sind immer aktiviert, da Du die Website sonst nicht ordnungsgemäß bedienen könntest.

Marketing

Die TC-Innovations GmbH und unsere Werbepartner (einschließlich Social Media-Plattformen wie Google, Facebook und Instagram) nutzen Tracking, um Dir personalisierte Angebote anzubieten, die Dir das volle Nutzererlebnis bieten. Dies beinhaltet das Anzeigen von "Direktwerbung auf Werbeplattformen Dritter", wie in der Datenschutzerklärung beschrieben. Wenn Du dieses Tracking nicht akzeptierst, wirst Du dennoch zufällige Werbeanzeigen von uns auf anderen Plattformen angezeigt bekommen.

Analyse

Um unsere Websites und Services stetig zu verbessern, analysieren wir das Nutzerverhalten auf unseren Websites.

Mehr Informationen findest du in unserer Datenschutzerklärung.

Speichern Cookie-Einstellungen Akzeptieren und Schließen