Die Storefront hat keine Styles mehr, das CSS liefert 404
Der Klassiker nach einem Update: Der Shop lädt, aber sieht aus wie ein Word-Dokument. In der Konsole liefern die Theme-Dateien 404, obwohl sie im Dateisystem liegen.
Der Grund ist der Theme-Seed. Shopware speichert für jedes Theme einen Hash, aus dem der Pfad zu den kompilierten Dateien gebaut wird. Wird im Zuge eines Updates ein Plugin de- und wieder aktiviert, vergibt der Lifecycle einen neuen Seed – der Shop sucht dann unter einem Pfad, unter dem nichts liegt.
Praktisch heißt das: Der Theme-Build muss der letzte Schritt sein. Erst alle Plugins installieren und aktivieren, Cache leeren, Migrationen laufen lassen – und ganz zum Schluss das Theme kompilieren. Wer in umgekehrter Reihenfolge arbeitet, kompiliert gegen einen Seed, der danach nicht mehr gilt.
Vergleichen Sie den Hash in der angeforderten CSS-URL mit den Ordnernamen im Theme-Verzeichnis. Stimmen sie nicht überein, ist es der Seed – und ein erneuter Theme-Build behebt es.
Die Message-Queue läuft voll und wird nicht leer
Nach größeren Updates finden sich in der Queue plötzlich sechsstellige Nachrichtenzahlen, die Consumer laufen dauerhaft, und andere Aufgaben kommen nicht mehr durch, weil alles hinter diesem Berg wartet.
Zwei Ursachen sehe ich immer wieder. Erstens die Nutzungsdatenerfassung: Ist die Einwilligung nicht sauber gesetzt, produziert sie fortlaufend Nachrichten in der niedrig priorisierten Queue. Es reicht nicht, sie zu widerrufen – der Zustand muss ausdrücklich auf abgelehnt stehen, sonst wird weiter produziert.
Zweitens fehlgeschlagene Nachrichten, die sich stapeln. Die gehören angeschaut, nicht gelöscht: Sie sind der schnellste Hinweis darauf, was nach dem Update tatsächlich kaputt ist – etwa ein veraltetes Suchindex-Mapping, das jede Indexierung scheitern lässt und dazu führt, dass Produkte im Shop nicht mehr auffindbar sind.
Produktfeeds werden nicht mehr aktualisiert
Preisportale zeigen alte Preise, obwohl im Shop alles stimmt. Der Export läuft scheinbar, liefert aber seit Tagen dieselbe Datei.
Hier gibt es zwei typische Fallen. Die eine sind strengere Template-Einstellungen: Nach dem Update führt eine nicht definierte Variable im Feed-Template zu einem Abbruch, wo vorher stillschweigend ein leerer Wert eingesetzt wurde. Der Export bricht ab – oft ohne dass es jemandem auffällt, weil die alte Datei ja weiterhin ausgeliefert wird.
Die andere Falle ist ein hängendes Laufkennzeichen. Bricht ein Export mitten im Lauf ab, bleibt die Markierung „läuft gerade“ gesetzt, und jeder weitere Versuch beendet sich sofort wieder mit dem Hinweis, es laufe bereits. Danach passiert nie wieder etwas, bis jemand dieses Kennzeichen von Hand zurücksetzt.
Öffne die Feed-Datei im Browser und schau auf das Datum der letzten Änderung und einen Preis, den Sie kürzlich geändert haben. Das dauert zwanzig Sekunden und ist zuverlässiger als jede Statusanzeige.
Zahlarten verschwinden oder der Checkout bricht ab
Besonders unangenehm, weil es direkt Umsatz kostet und oft erst durch Kundenmeldungen auffällt.
Ein Muster, das mir mehrfach begegnet ist: Ein Zahlungsanbieter stellt in einer neuen Hauptversion die Art um, wie die Kennungen der Zahlarten gebildet werden. Der Shop enthält dann für dieselbe Zahlart alte und neue Kennungen. Die Zuordnung zu Verkaufskanälen und Regeln hängt aber an der alten Kennung – sichtbar ist die Zahlart danach nicht mehr, oder sie lässt sich nicht mehr aktivieren.
Was hilft: Nach jedem Update eines Zahlungsplugins eine echte Testbestellung pro Zahlart und pro Verkaufskanal. Nicht nur nachsehen, ob die Zahlart im Checkout auftaucht, sondern einmal komplett durchbestellen. Zehn Minuten Aufwand gegen einen halben Tag ausgefallener Zahlungen.
Steuerbefreiung greift plötzlich nicht mehr
Ein Fehlerbild, das nach Steuer- oder Länderthema aussieht, aber keines ist: B2B-Kunden im EU-Ausland bekommen auf einmal Umsatzsteuer berechnet, obwohl die Umsatzsteuer-Identifikationsnummer hinterlegt ist.
Die Prüfung dieser Nummern erfolgt gegen ein striktes Muster, und ein Leerzeichen am Anfang oder Ende reicht, damit sie nicht mehr passt. Hat ein Kunde mehrere Nummern hinterlegt, müssen alle gültig sein. Die Ursache sind fast immer Altdaten aus Importen, die vorher niemanden gestört haben.
Ein einmaliges Aufräumen der Datenbestände löst das dauerhaft – und ist deutlich billiger als eine Korrektur von Rechnungen im Nachhinein.
Produkte sind über die schöne URL nicht erreichbar
Nach dem Update oder einem Import fehlen für viele Produkte die sprechenden URLs, und die Neugenerierung scheint ewig zu dauern.
Meist ist gar nichts kaputt: Es werden nur URLs für aktive Produkte erzeugt. Wer tausende Artikel importiert und sie erst danach aktiviert, wartet auf einen Vorgang, der für die inaktiven Artikel gar nicht stattfindet. Erst aktivieren, dann neu aufbauen – und die vermeintlich hängende Aufgabe ist in Minuten fertig.
Ein Update-Vorgehen, das Ärger erspart
Das meiste davon lässt sich vermeiden, wenn das Update nicht am Livesystem stattfindet. Mein Ablauf sieht so aus: Erst eine Kopie der Live-Umgebung auf einem Testsystem aktualisieren, dort die Liste oben durchgehen, die Auffälligkeiten beheben und den Ablauf notieren. Danach dasselbe live – in derselben Reihenfolge, mit Theme-Build als letztem Schritt und einer Sicherung, die nachweislich zurückspielbar ist.
Und danach die fünf Dinge prüfen, die Geld kosten, wenn sie kaputt sind: eine Testbestellung je Zahlart, das Datum der Feed-Dateien, die Zahl fehlgeschlagener Nachrichten in der Queue, das Aussehen der Storefront und eine Handvoll Produktseiten über ihre normale URL.
Fazit
Shopware-Updates gehen selten spektakulär schief. Sie gehen leise schief: Ein Feed steht still, eine Zahlart verschwindet in einem einzelnen Verkaufskanal, eine Queue läuft voll. Alles davon kostet Umsatz, und alles davon fällt erst Tage später auf, wenn niemand gezielt hinschaut.
Die gute Nachricht ist, dass die Fehlerbilder sich wiederholen. Wer die Liste oben nach jedem Update abarbeitet, findet die meisten Probleme in einer halben Stunde – statt in der Woche darauf durch eine Kundenbeschwerde.
Wenn bei Ihnen nach einem Update etwas nicht mehr läuft und Sie nicht weiterkommst: schreiben Sie mir kurz, was passiert ist. Und falls ein Update ansteht, finden Sie in meinem Artikel zur Shopware-Migration das größere Bild dazu.
Nach dem Update hängt etwas?
Beschreiben Sie mir kurz das Fehlerbild und Ihre Shopware-Version – meistens erkenne ich daran schon, woran es liegt.