Fehlerlösung: Consent Manager crasht Shop nach Update auf Shopware 5.6.6

FEHLERLÖSUNG: “FATAL ERROR: UNCAUGHT TYPEERROR: ARGUMENT 2 PASSED TO SHOPWARE\BUNDLE\COOKIEBUNDLE\STRUCTS\ COOKIEGROUPSTRUCT::CONSTRUCT() MUST BE OF THE TYPE STRING, NULL GIVEN” BEHEBEN

Wird nach einem Update von Shopware Version 5.5.x auf Shopware Version 5.6 der Consent Manager deininstalliert, so tritt oft der Fehler

Fatal error: Uncaught TypeError: Argument 2 passed to
Shopware\Bundle\CookieBundle\Structs\CookieGroupStruct::construct()
must be of the type string, null given

gefolgt von der weiteren Fehler-Aufrufhierarchie auf.

Das hat den Hintergrund, dass das Consent Manager Plugin für Shopware Version 5.5 die Textbausteine enthält, die ab Shopware Version 5.6 Systembestandteil sind, da der Consent Manager mit der Version 5.6 in Shopware integriert wurde und nun nicht mehr als Plugin benötigt wird.

Wird der alte Consent Manager nach dem Update deinstalliert, werden die Textbausteine entfernt, die Shopware im System nutzt. Diese Textbausteine versucht Shopware dann zu laden, erhält aber keinen Wert zurück da sie entfernt wurden, und löst dann einen Fehler aus, da er einen Wert erwarten würde.

Lösung

 

Das Problem lässt sich lösen, indem man alle Textbausteine die nun fehlen, aus einer Shopware Installation holt, in der sie noch vorhanden sind. Speziell geht es hier um die Gruppen frontend/cookie_consent/cookies, frontend/cookie_consent/groups und frontend/cookie_consent/main.

Damit man dies aber nicht manuell machen muss, haben wir uns die nötigen Textbausteine in SQL exportiert, sodass man sie direkt auf einmal in die Datenbank spielen kann. Folgen sie dazu einfach den nachfolgenden Schritten:

  1. Laden sie sich unsere Datei cookie_consent_snippets.sql
  2. Öffnen Sie die Datenbank der vom Fehler betroffenen Shopware Installation, zum Beispiel in phpMyAdmin oder Adminer
  3. Öffnen Sie den Tab “importieren”, laden Sie die oben genannte Datei, und lösen Sie den Import aus
  4. Leeren Sie im Shopware Backend alle Caches
  5. Das Problem sollte nun gelöst sein
Datenschutzeinstellungen
Ich habe die Datenschutzerklärung zur Kenntnis nehmen können und erkläre mich damit einverstanden, dass die von mir angegebenen Daten zur Kontaktaufnahme, sowie der Bearbeitung meines Anliegens, verwendet werden.