Sönke BergerWEB DEVELOPMENT
Zurück zur Projekt-Übersicht

Shopware-Shop · B2C

Schweige-Fehler im Checkout — wie 12 % der Bestellungen unbemerkt verschwanden

Ein Drittanbieter-Plugin warf nach einem Shopware-Update unter ganz bestimmten Bedingungen einen Fehler — den der Shop-Kern still verschluckte. Der Kunde sah „Bestellung erfolgreich", das Backend bekam nichts. Diagnose und Fix innerhalb von vier Stunden.

Storefront

100

Checkouts heute

Erfolg gemeldet

Backend

88

Bestellungen heute

12 fehlen

−12 % Bestellungen verloren — Kunde sah Erfolgsmeldung, das Backend bekam sie nie.

Verlorene Bestellungen
−12 PP

12 % → 0 %

Diagnose zu Fix
< 4 h
Folge-Reklamationen (30 Tage)
−100 %

23 / Monat → 0

Die Ausgangslage. Mittwoch kurz nach 14 Uhr, das Telefon klingelt: ein Shopbetreiber hat seit dem Vormittag ein ungutes Gefühl. Kunden melden sich vereinzelt, dass keine Bestellbestätigung ankommt. Im Backend sieht alles ruhig aus — bis man die Zahlen vergleicht. Die Storefront zählt 100 erfolgreiche Checkouts, das Backend hat aber nur 88 Bestellungen angelegt. Etwa jede zehnte Transaktion fehlt einfach, ohne Fehlermeldung, ohne Log-Eintrag, ohne Spur. Der Kunde sieht die grüne Erfolgsmeldung, der Shop bestätigt — und im Backend kommt nichts an.

Die Detektivarbeit. Zuerst musste der Fehler reproduzierbar werden. Auf einem identischen Staging-System haben wir verschiedene Kombinationen durchgespielt: anonym, eingeloggt, mit und ohne Rabatt-Code, verschiedene Versandarten. Nach einer halben Stunde war das Muster klar — nur eingeloggte Stammkunden mit aktivem Rabatt-Code und einer bestimmten Versandart waren betroffen. Die Spur führte zu einem Plugin von einem Drittanbieter (eine Rabatt-Engine für Bestandskunden). Dieses Plugin warf bei genau dieser Konstellation einen Fehler, der nicht abgefangen wurde. Der Shop-Kern hat den Fehler still verschluckt — aber der Datenbank-Vorgang, der die Bestellung speichern sollte, wurde dabei zurückgerollt. Klassischer Schweige-Fehler: sichtbar nur, wenn man die Zahlen auf beiden Seiten vergleicht.

01

Kunde klickt

auf „Jetzt kaufen"

02

Plugin-Listener

Drittanbieter-Engine

03

Exception

ungefangen

04

Transaction

stillschweigend zurückgerollt

Der Shop-Kern verschluckte die Plugin-Exception still — der Kunde sah Erfolg, die Bestellung wurde im Hintergrund zurückgerollt.

Die Fehler-Kette: Plugin-Listener wirft Exception → Shop-Kern verschluckt sie → Datenbank-Vorgang wird zurückgerollt → Storefront zeigt trotzdem Erfolg.

Die Reparatur, vier konkrete Schritte. Erstens ein Sofort-Hotfix, der den Fehler des Drittanbieter-Plugins abfängt, bevor er den Bestell-Vorgang torpediert — sicher, reversibel, ohne den Update-Pfad des Plugins zu blockieren. Zweitens ein Bug-Report mit allen Reproduktions-Schritten an den Plugin-Hersteller, der innerhalb von 48 Stunden ein offizielles Update lieferte. Drittens, und das war Detailarbeit, alle verlorenen Bestellungen aus den Storefront-Logs rekonstruiert und manuell im Backend nachgetragen — damit jeder Kunde, der ein „Erfolg" gesehen hatte, auch seine Ware bekam. Viertens eine Monitoring-Routine eingerichtet, die stündlich die Anzahl der erfolgreichen Checkouts in der Storefront mit den tatsächlichen Bestellungen im Backend abgleicht, mit Alarm bei jeder Abweichung über 2 %.

Bestell-Anomalie-Monitor

live

Storefront 1 h

14

Backend 1 h

14

Abweichung

0 %

Abweichung · 24 h

Stündlicher Abgleich Storefront-Conversions vs. Backend-Orders. Alarm bei jeder Abweichung über 2 % — damit Schweige-Fehler nicht erst durch Kunden-Anrufe auffallen.

Seit dem Fix Standard im Care-Plan: stündlicher Abgleich Storefront vs. Backend, Alarm bei jeder Abweichung über 2 %.

Das Ergebnis. Fix live vier Stunden nach dem ersten Anruf. Schriftliches Übergabe-Protokoll noch am selben Werktag — was war kaputt, was wurde getan, wie sieht das Monitoring aus, was ist die nächste Aktion. In den 30 Tagen danach: null verlorene Bestellungen mehr, null Folge-Reklamationen aus dem alten Fehler-Fenster. Der Shopbetreiber hat anschließend auf einen Care-Plan gewechselt — die Logik dahinter ist einfach: solche Schweige-Fehler will man entdecken, bevor der erste Kunde anruft.

Was Sie als Shop-Betreiber daraus mitnehmen können. Erstens: Drittanbieter-Plugins, die in den Bezahl-Vorgang eingreifen, sind ein eigener Risikofaktor. Wenn dort eines im falschen Moment einen Fehler wirft, geht Umsatz verloren — und niemand merkt es sofort, weil die Storefront dem Kunden ja eine Erfolgsmeldung anzeigt. Zweitens: Die meisten Shop-Backends zeigen Ihnen keine Diskrepanz zwischen „Kunde hat gekauft" und „Bestellung wurde gespeichert", weil das technisch dasselbe sein sollte — nur ist es das eben nicht immer. Ein stündlicher Abgleich der beiden Zahlen deckt diese Klasse von Fehlern verlässlich auf, lange bevor sie zu Reklamationen werden. Im Care-Plan-Monitoring ist dieser Abgleich seitdem Standard.

Stack

Shopware 6PHP 8MySQLEvent-Listener-DebugCare-Plan-Monitoring

Datenherkunft

Die Outcome-Zahlen stammen aus dem jeweiligen Analytics-Connector des Klienten und wurden vor Veröffentlichung freigegeben. Wo Kunden Diskretion wünschen, nennen wir nur Sektor und Größenordnung; wo sie freigeben, nennen wir Marke und Maßnahmen beim Namen. Weitere Referenzen und Kontaktbrücken im Kennenlern-Gespräch.

Schweige-Fehler im Checkout — wie 12 % der Bestellungen unbemerkt verschwanden — Shopware-Shop · B2C | Projekte | Sönke Berger | Sönke Berger