Ein Produktimport sollte den Shop nicht lahmlegen können

Ein praktischer Ansatz für den Import von Katalogen: Vor dem Speichern validieren, fehlerhafte Zeilen isolieren, die Produktidentität beibehalten und jeden Durchlauf nachvollziehbar gestalten.

Eine Lieferantendatei trifft über Nacht ein. Die meisten Zeilen sehen normal aus, bei einigen wenigen fehlen Kennungen, und bei einer Preisspalte hat sich das Dezimalformat geändert. Eine Pipeline, die lediglich prüft, ob die Datei geöffnet werden kann, verwandelt ein Datenproblem mühelos in ein Problem für den Online-Shop.

Durch die Arbeit an Magento-Katalogen habe ich gelernt, Importe wie Produktionssoftware zu behandeln. Das Wichtigste dabei ist eine zuverlässige Änderung des Katalogs, begleitet von ausreichenden Nachweisen, um erklären zu können, was passiert ist, falls ein Händler nach einem fehlenden Produkt fragt.

Den Empfang von Daten von deren Veröffentlichung trennen

Ich bevorzuge einen Zwischenbereich zwischen der Quelldatei und dem Live-Katalog. Beim Empfang einer Datei sollte ein Importvorgang erstellt werden, der den Quellnamen, den Zeitpunkt des Eingangs, die Prüfsumme und die Schemaversion enthält. Dadurch erhält das Team ein identifizierbares Objekt, das es untersuchen kann, ohne den Download vom Lieferanten erneut ausführen zu müssen.

Im nächsten Schritt werden die Werte in eine kanonische Darstellung normiert. Für Währungen, Dezimaltrennzeichen, Maßeinheiten und Verfügbarkeitskennzeichnungen sollten explizite Regeln festgelegt werden. Ein leeres Bestandsfeld muss eine definierte Bedeutung haben: unbekannt, unverändert oder Null. Diese Bedeutungen sollten niemals versehentlich durch eine Typkonvertierung festgelegt werden.

Erst nach der Normalisierung sollte die Pipeline die vorgeschlagenen Werte mit dem aktuellen Produktstatus abgleichen. Auf diese Weise kann vor der Durchführung einer ungewöhnlich umfangreichen Aktualisierung ein Änderungsbericht angezeigt werden.

Die Validierung sollte auf den Geschäftsablauf abgestimmt sein

Eine syntaktisch korrekte Zahl kann dennoch ein gefährlicher Preis sein. Eine gültige SKU kann dennoch die falsche Variante bezeichnen. Meine Validierungsregeln decken daher verschiedene Aspekte ab.

  • Identität: Lässt sich diese Zeile genau einem Produkt oder einer Variante zuordnen?
  • Struktur: Sind die Pflichtfelder vorhanden und korrekt ausgefüllt?
  • Bedeutung: Werden Währung, Einheiten und Verfügbarkeitswerte erkannt?
  • Größenänderung: Liegt die vorgeschlagene Anpassung innerhalb des vom Unternehmen erwarteten Bereichs?
  • Beziehungen: Gibt es übergeordnete Produkte, Kategorien und Variantenattribute?

Auch diese Regeln erfordern eine Maßnahme. Eine ungültige Bild-URL kann dazu führen, dass das vorherige Bild an seiner Stelle verbleibt. Eine mehrdeutige Produktkennung sollte verhindern, dass sich an dieser Zeile etwas ändert. Ein verdächtiger Preisverfall kann eine Überprüfung der gesamten betroffenen Produktfamilie erforderlich machen.

Die richtige Arbeitseinheit isolieren

Eine fehlerhafte Zeile zu verwerfen, kann besser sein, als Tausende von gültigen Zeilen zu verwerfen, die in keinem Zusammenhang stehen. Allerdings ist die Isolation auf Zeilenebene nicht immer sicher. Da ein konfigurierbares Produkt und seine Varianten möglicherweise gemeinsam verschoben werden müssen, sollte die Validierungseinheit die Produktfamilie sein.

Ein Quarantäneeintrag sollte die Quellzeile, normalisierte Werte, die Regel, bei der ein Fehler aufgetreten ist, sowie eine verständliche Erklärung enthalten. „Validierung fehlgeschlagen“ führt zu einer weiteren Untersuchung. „Bei Lieferantenpreis 49,95 fehlt die Währung“ ergibt eine Korrekturaufgabe für einen Mitarbeiter.

Das Gleiche gilt für fehlende Zeilen. Ihr Fehlen sollte nicht automatisch zum Löschen von Produkten führen, es sei denn, im Feed-Vertrag ist ausdrücklich festgelegt, dass es sich um eine vollständige Momentaufnahme handelt. Teil-Feeds und inkrementelle Feeds sind so verbreitet, dass ein Löschen bewusst erfolgen muss.

Entwurf für eine zweite Auflage

Ein sicherer Import kann wiederholt werden. Ich verwende stabile externe Identifikatoren und vergleiche vor dem Speichern normalisierte Werte. Das erneute Ausführen einer unveränderten Quelle sollte keine unerwarteten Änderungen am Katalog zur Folge haben, und ein fehlgeschlagener Durchlauf sollte ab dem aufgezeichneten Fortschritt fortgesetzt werden.

Nach der Installation von Updates überprüfe ich eine Stichprobe über die Storefront oder die Produkt-API. Ein Schreibvorgang in der Datenbank ist kein Beweis dafür, dass die Indizierung, das Caching und die nachgelagerten Feeds bereits aktualisiert wurden. Der Ausführungsbericht sollte zwischen akzeptierten Zeilen, geänderten Produkten, abgelehnten Gruppen und noch ausstehenden Aufgaben in den nachgelagerten Prozessen unterscheiden.

Adobe Commerce dokumentiert einen Validierungsschritt in seinem nativen Import-Workflow. Ich betrachte dies als einen Kontrollpunkt innerhalb eines umfassenderen Prozesses. Lieferantenverträge, die Erkennung von Anomalien und die Wiederherstellung sind weiterhin Teil der Integration.

Die operative Frage, die der Importbericht beantworten soll, ist einfach: Welche Produkte haben sich geändert, warum haben sie sich geändert und wie können wir den vorherigen Zustand wiederherstellen, falls die Quelle fehlerhaft war?

Aktualisiert am 25. September 2026.