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.
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 buchenVerwandte Fallstudien
Pharmazeutische ERP-Integration
Bidirektionale Shopware 6 zu ERP-Synchronisation für einen deutschen Pharmadistributor. 300K+ Artikel mit Chargenverfolgung, Ablaufwarnungen und Prüfpfaden. Null Lieferfehler.
Fallstudie lesen → B2B-LösungenIndustrielle Ausschreibungsplattform
Shopware 6 B2B-Ausschreibungs-Plugin für einen DACH-Industriehändler. Mehrstufige Genehmigungen, Status-Workflows und Self-Service-Dashboard. Zykluszeit von 6 auf 3 Wochen reduziert.
Fallstudie lesen → B2B-LösungenB2B-Angebotsplattform
Shopware 6 RFQ-Plattform für einen deutschen Industriedistributor. Mehrteiliger Angebots-Builder, ERP-Sync via OAuth2, DE/EN-Lokalisierung. 24/7-Self-Service.
Fallstudie lesen →