Performance

Shopware-Import: von 33 auf 3 Stunden bei 530K Artikeln

Shopware 6-Import um 91% beschleunigt für einen deutschen Händler. 530K+ Artikel in unter 3 Stunden mit Redis, Symfony Messenger und dynamischer Stapelgröße.

Branche:
E-Commerce / Einzelhandel
Projekttyp:
Performance-Optimierung
Dauer:
3 Monate
Standort:
Germany
Veröffentlicht:
Ergebnis
91%
Schnellerer Import
530K+
Artikel
2,8h
Importzeit (war 33h)
<30m
Delta-Sync

Die Herausforderung

Ein deutscher Händler mit 530.000 Artikeln fuhr einen Import, der 33 Stunden brauchte. Tägliche Katalog-Updates waren undenkbar. Das Team ließ ihn als Wochenend-Job laufen und hoffte, dass nichts in Stunde 18 abstürzt.

Kritische Problempunkte

  • Ein 33-stündiger Import blockierte die tägliche Katalogarbeit
  • Bestandsabweichungen führten zwischen den wöchentlichen Syncs zu Überverkäufen
  • Serverressourcen brachen mitten im Lauf ein und verschlechterten die Performance für aktive Käufer
  • Es gab keine Möglichkeit für Teilupdates: jede Änderung bedeutete einen Volldurchlauf
  • Datenbanksperren in Spitzenzeiten zwangen den Import aus den Geschäftszeiten heraus

Wöchentliche Updates waren die Obergrenze. Wettbewerber mit täglichen Preisfeeds rissen Long-Tail-Artikel an sich.

Die Lösung

Ich habe die Import-Pipeline so umgebaut, dass sie nicht zweimal dieselben Lookups macht und parallel läuft.

Dynamische Stapelgröße

Die Stapelgröße passt sich live an das Gewicht der Nutzlast an. Leichte Produkte laufen in großen Blöcken, schwere in kleinen, der Speicher kippt nie um.

Zusammengesetzte Indizes, wo es zählt

Den Import profiliert, um die Hot Spots der Lookups zu finden, dann zusammengesetzte Indizes gesetzt. Validierungs-Abfragen fielen von Millisekunden auf Mikrosekunden.

Symfony Messenger als Queue

Mehrere Worker verarbeiten Import-Streams parallel, ohne sich gegenseitig in die Quere zu kommen. Die Pipeline skaliert horizontal, falls der Katalog wächst.

Redis-Cache für die langweiligen Lookups

Kategorie-Mappings und Attribut-IDs liegen in Redis. Der Import fragt die Datenbank nicht mehr 530.000-mal dasselbe.

Ergebnisse & Geschäftsauswirkungen

Von 33 auf 2,8 Stunden

Derselbe Katalog, dieselben Daten, 91% weniger Zeit. Tagesaktuelle Updates sind heute Routine statt Wochenend-Job.

Tägliche Syncs möglich

Bestände und Preise aktualisieren sich jeden Morgen. Überverkaufs-Tickets sind fast verschwunden.

Serverlast 60% niedriger

Der Import läuft während der Geschäftszeiten, ohne aktive Käufer zu verlangsamen.

Delta-Imports unter 30 Minuten

Routine-Updates fassen nur das Geänderte an. Der dreistündige Vollimport ist heute der Worst Case.

Verwendete Technologien

  • Shopware 6
  • PHP 8
  • Symfony
  • REST API
  • MySQL
  • Redis
  • Messenger
  • Doctrine

Imports fressen Ihr Wochenende?

Wenn Ihr Shopware-Import länger läuft als die Kaffeepause Ihres Teams, steckt meist ein großer Geschwindigkeitssprung in der Pipeline. Suchen wir ihn gemeinsam.

Beratung buchen

Fallstudie teilen

Interessant gefunden? Teilen Sie es mit Ihrem Netzwerk