Automatisierung

Lieferantendaten automatisch in die Wawi: Der Import ist nie das Problem

Eine Datei einzulesen kann jeder. Der Aufwand steckt in den Entscheidungen davor — und in dem, was beim zweiten Lauf passiert.

„Wir bekommen jeden Morgen eine Preisliste vom Lieferanten, die kann man doch einfach einlesen.” Kann man. Das ist auch nicht der Teil, der Zeit kostet.

Der Import selbst ist in einer Stunde eingerichtet — mit der Ameise, mit einem Skript oder über eine Schnittstelle. Was danach über Monate Arbeit macht, sind die Fragen, die beim ersten Lauf niemand gestellt hat. Dieser Beitrag ist die Liste dieser Fragen.

Zwei Importe, nicht einer

Der häufigste Konstruktionsfehler ist ein einziger Vorgang, der alles auf einmal macht: neue Artikel anlegen, Stammdaten pflegen, Preise aktualisieren, Bestände ziehen.

Diese Dinge haben völlig unterschiedliche Taktungen und unterschiedliche Risiken:

  • Preise und Bestände ändern sich täglich, oft stündlich. Der Lauf muss schnell sein, häufig laufen und im Zweifel wiederholbar bleiben.
  • Neue Artikel und Stammdaten ändern sich selten und haben Folgen, die man nicht mit einem zweiten Lauf zurücknimmt: Kategorien, Beschreibungen, Bilder, Merkmale, Steuern.

Wer beides zusammenwirft, hat entweder einen viel zu schweren Lauf für die tägliche Preisaktualisierung — oder eine Neuanlage, die zwischen 4.000 Bestandszeilen durchrutscht und niemandem auffällt, bis der Artikel falsch im Shop steht.

Trennen. Der Preis- und Bestandslauf läuft automatisch. Der Neuanlagelauf läuft kontrolliert, mit einem Blick darauf, was dabei entsteht.

Der Abgleichschlüssel entscheidet alles

Vor dem ersten Import muss eine Frage beantwortet sein: Woran erkennt das System, dass Zeile 812 in der Lieferantendatei derselbe Artikel ist wie Artikel 4711 bei uns?

Drei übliche Antworten, zwei davon falsch:

Der Artikelname. Ändert sich. Beim nächsten Sortimentsupdate steht „(neue Rezeptur)” dahinter, und aus dem Abgleich wird eine Neuanlage.

Die EAN. Klingt richtig, ist es in der Praxis oft nicht. EANs fehlen bei Teilen des Sortiments, werden bei Nachfolgeartikeln neu vergeben, und bei Sets und Gebinden tauchen sie mehrfach auf. Ein Import über die EAN läuft so lange gut, bis der Lieferant zwei Artikel mit derselben Nummer liefert — dann überschreibt der eine den anderen.

Die Artikelnummer des Lieferanten, fest am eigenen Artikel hinterlegt. Das ist die Antwort. Sie ist stabil, eindeutig innerhalb dieses Lieferanten und ändert sich nicht, wenn das Marketing den Produktnamen anfasst.

Bei mehreren Lieferanten für denselben Artikel braucht es entsprechend mehrere Felder — und eine Regel, welcher Lieferant beim Preis gewinnt. Auch das ist eine Entscheidung, die vorab fällt, nicht in dem Moment, in dem die Preise wackeln.

Was beim zweiten Lauf passiert

Ein Import, der einmal funktioniert, ist noch keine Automatisierung. Automatisiert ist er, wenn der zweite Lauf mit derselben Datei nichts kaputtmacht.

Das klingt selbstverständlich und ist es nicht. Typische Fälle:

  • Der Lauf legt bei jedem Durchgang neue Staffelpreise an, statt vorhandene zu ersetzen.
  • Ein Verpackungseinheiten-Artikel bekommt bei jedem Lauf eine weitere Stücklistenzeile.
  • Der Bestand wird addiert statt gesetzt.

Alle drei fallen bei der Einrichtung nicht auf, weil man den Lauf genau einmal testet. Sie fallen nach zwei Wochen auf, wenn jemand einen Artikel öffnet und sich wundert.

Die Prüfung dafür ist einfach: denselben Lauf zweimal hintereinander ausführen und danach die Datenbank vergleichen. Ändert sich beim zweiten Mal nichts, ist der Import wiederholbar. Ändert sich etwas, ist er es nicht — und dann ist es besser, das jetzt zu wissen als im Dezember.

Die fehlende Zeile

Was passiert mit einem Artikel, der gestern in der Datei stand und heute nicht mehr?

Drei mögliche Antworten — alle vertretbar, aber sie müssen bewusst gewählt sein:

  1. Nichts tun. Der Artikel behält seinen letzten Stand. Sicher, aber irgendwann verkaufen Sie etwas, das der Lieferant längst ausgelistet hat.
  2. Bestand auf null. Der Artikel bleibt sichtbar, ist aber nicht bestellbar. Meist die richtige Wahl für Lieferantenbestände.
  3. Deaktivieren. Sauber, aber schwer rückgängig zu machen, wenn es ein Irrtum war.

Und dann die eigentliche Falle: Was, wenn die Datei heute nur 300 statt 4.000 Zeilen enthält, weil der Export beim Lieferanten abgebrochen ist? Mit Regel 2 oder 3 setzt der Import in diesem Fall 3.700 Artikel auf nicht verkäuflich — vollautomatisch, sauber protokolliert, katastrophal.

Deshalb gehört vor jeden Lauf ein Plausibilitätsdeckel: Weicht die Zeilenzahl um mehr als einen festgelegten Anteil vom letzten erfolgreichen Lauf ab, bricht der Import ab und meldet sich. Lieber ein Tag alte Preise als ein leerer Shop.

Teilausfälle sind der Normalfall

Bei 4.000 Zeilen sind irgendwann 12 kaputt: ein Preis mit Komma und Punkt gemischt, ein Datum im amerikanischen Format, ein Zeilenumbruch mitten in einer Beschreibung, ein Zeichensatz, der Umlaute zerlegt.

Ein Import, der bei der ersten kaputten Zeile abbricht, ist unbrauchbar — dann läuft er nie durch. Einer, der alles stillschweigend schluckt, ist gefährlich. Der brauchbare Weg liegt dazwischen:

  • gültige Zeilen verarbeiten,
  • ungültige mit Zeilennummer und Grund in ein Protokoll schreiben,
  • am Ende eine Zusammenfassung ausgeben: 3.988 übernommen, 12 abgewiesen.

Und dann muss jemand dieses Protokoll auch lesen. Ein Protokoll, das niemand ansieht, erfüllt keinen Zweck — deshalb gehört bei uns eine Meldung dazu, sobald die Zahl der abgewiesenen Zeilen über einen Schwellenwert steigt. Nicht bei jedem Lauf; nur wenn etwas zu tun ist.

Dasselbe gilt für den Lauf selbst: Ein geplanter Import, der seit elf Tagen nicht mehr startet, fällt ohne Überwachung niemandem auf — genau wie ein Dienst, der sich nach dem Start still wieder beendet. Wie unangenehm das werden kann, steht im Beitrag zum JTL-Worker als Windows-Dienst.

Zum Thema Spaltenformate und was passiert, wenn der Lieferant seinen Export ohne Ansage umbaut, gibt es einen eigenen Beitrag: Importvorlagen und Spaltendrift bei der JTL-Ameise.

Wann sich die Automatisierung rechnet

Die ehrliche Rechnung ist nicht „Skript statt Handarbeit”, sondern:

Handarbeit: 20 Minuten täglich, fehleranfällig, an eine Person gebunden, findet im Urlaub nicht statt.

Automatisierung: ein bis drei Tage Einrichtung, danach ein paar Minuten Kontrolle pro Woche — plus die Verpflichtung, das Protokoll zu lesen und die Vorlage nachzuziehen, wenn der Lieferant sein Format ändert.

Bei einem Lieferanten mit einer kleinen Preisliste kann Handarbeit die vernünftigere Entscheidung sein. Bei drei Lieferanten, täglichen Beständen und einem Sortiment im vierstelligen Bereich ist sie es nicht mehr — dort ist die manuelle Pflege nicht nur teurer, sondern auch die häufigere Fehlerquelle.

Kurz

Bevor der erste Import läuft, sollten vier Dinge feststehen: der Abgleichschlüssel, die Trennung von Preis-/Bestandslauf und Neuanlage, das Verhalten bei fehlenden Zeilen inklusive Plausibilitätsdeckel und der Umgang mit kaputten Zeilen.

Das ist eine halbe Stunde Nachdenken vorher und spart im Jahr mehrere Tage Suchen hinterher. Wenn Sie so etwas gerade aufsetzen und die Entscheidungen einmal mit jemandem durchgehen wollen, der die Fehler schon gemacht hat: Melden Sie sich.

Häufige Fragen

Wie oft sollte ein Lieferantenimport laufen?

So oft, wie sich die Daten tatsächlich ändern. Preise und Bestände kommen bei den meisten Lieferanten täglich oder mehrmals täglich, neue Artikel und Stammdaten deutlich seltener. Diese beiden Fälle gehören getrennt: ein häufiger, kleiner Lauf für Preis und Bestand, ein seltener, sorgfältiger Lauf für Neuanlagen.

Was ist ein guter Abgleichschlüssel für Artikel?

Die Artikelnummer des Lieferanten, dauerhaft am eigenen Artikel hinterlegt — nicht die EAN und nicht der Artikelname. EANs werden mehrfach vergeben, ändern sich bei Nachfolgeartikeln und fehlen bei einem Teil des Sortiments. Namen ändern sich ständig. Ohne stabilen Schlüssel legt der Import irgendwann Dubletten an.

Warum sollte man keinen Vollimport über das ganze Sortiment fahren?

Weil er lange läuft, viel sperrt und bei einem Abbruch in der Mitte einen halb aktualisierten Bestand hinterlässt. Ein Deltalauf überträgt nur, was sich geändert hat, ist in Minuten durch und lässt sich gefahrlos wiederholen. Der Vollimport bleibt als Werkzeug für die Erstbefüllung und für den seltenen Fall eines Neuabgleichs.

Was passiert, wenn ein Artikel plötzlich nicht mehr in der Lieferantendatei steht?

Das muss vorher entschieden sein. Auf Bestand null setzen, deaktivieren oder unverändert lassen sind drei völlig verschiedene Ergebnisse. Gefährlich ist der ungeprüfte Automatismus: Wenn eine unvollständige Datei einmal nur ein Zehntel des Sortiments enthält, deaktiviert die Regel neun Zehntel des Shops. Deshalb gehört ein Plausibilitätsdeckel davor.

Klingt nach Ihrem Thema?

Kurzer Anruf, ehrliche Einschätzung, kein Vertriebsgerede. Ich sage Ihnen auch, wenn ich der Falsche bin.