Lieferanten-Preislisten importieren — Schluss mit dem Kopieren aus Excel und PDF

· 8 Min. Lesezeit · SilverData-Team

Jeder Lieferant hat sein eigenes Preislistenformat, seinen eigenen Aktualisierungsrhythmus und seine eigene Art zu informieren — Mail mit Anhang, FTP-Link, manchmal ein Anruf. Irgendjemand in deiner Firma muss das alles einsammeln, öffnen, prüfen, was sich geändert hat, und die neuen Einkaufspreise ins ERP eintragen. Es ist eine dieser Tätigkeiten, die niemand misst, bis man anfängt zu suchen, wo die Marge versickert.

Bei Großhändlern und produzierenden KMU kommt uns dieses Thema immer wieder unter. Ein Unternehmen hat 20–60 Lieferanten, jeder schickt seine Preisliste monatlich oder quartalsweise, teils in Excel, teils als PDF, teils direkt im Mail-Text. Jemand im Einkauf oder in der Buchhaltung macht das von Hand: kopieren, einfügen, Formatierung reparieren, den passenden SKU im ERP suchen, den neuen Preis eintippen. Unterwegs entstehen Tippfehler, übersehene Zeilen und Situationen, in denen der neue Preis erst zwei Wochen nach der Erhöhung beim Lieferanten wirksam wird — weil die Datei zwar da war, aber niemand sie „bearbeitet" hatte.

Bei einem unserer Kunden — einem 22-köpfigen Elektro-Großhändler mit 40 aktiven Lieferanten — schätzte der Einkaufsleiter, dass die manuelle Preislistenpflege 2,5 Arbeitstage pro Monat kostet. Nach dem Rollout einer einfachen Excel- und PDF-Parsing-Pipeline mit Validierung vor dem Import in Comarch Optima: 4 Stunden pro Monat für Prüfung und Freigabe. Zurückgewonnene Marge durch früheres Erkennen von Preiserhöhungen — mehrere tausend PLN monatlich, vor allem weil sie ihre eigenen Verkaufspreise in derselben Woche anhoben, in der die Einkaufskosten stiegen.

Warum das so teuer ist, obwohl es banal aussieht

Manuelle Preislistenverarbeitung hat drei Kosten, von denen nur die erste offensichtlich ist.

Arbeitszeit. Ein Einkaufsleiter mit 40 Lieferanten und durchschnittlich 200 Positionen pro Preisliste bearbeitet monatlich mehrere tausend Zeilen. Eine Preisliste dauert zwischen 30 Minuten (klein, in Excel, sauber) und 4 Stunden (300 Positionen, gescanntes PDF, Format hat sich geändert). Summa: 15–25 Stunden monatlich bei typischen Kunden.

Verzögerte Preiserhöhungen. Hat der Lieferant am 1. März erhöht und trägst du den neuen Preis erst am 20. März ins ERP ein, verkaufst du 20 Tage lang mit der alten Marge, gerechnet auf den alten Einkaufspreis. Bei 50.000 PLN monatlichem Einkauf und einer 3%-Erhöhung sind das 500 PLN „aufgegessen" bei einem Lieferanten in einem Monat. Multipliziere das über alle Lieferanten und über ein Jahr.

Fehler, die still bleiben. Ein Tippfehler beim Einkaufspreis (12,50 statt 125,00 PLN) schreit nicht sofort. Er schreit ein halbes Jahr später, wenn die Buchhaltung eine Margenanalyse macht und sieht, dass Artikel X seit Mai negative Rentabilität hat. Das aufzudröseln — Tage Arbeit plus ein Gespräch mit einem Kunden, dem du ein halbes Jahr lang unter Kosten verkauft hast.

Vier Formate, in denen Preislisten meistens ankommen

Bevor du irgendetwas automatisierst, schreib dir auf, was du auf der Eingangsseite tatsächlich hast. Unsere Kunden haben in der Regel eine Mischung aus vier Szenarien:

Seltener sieht man CSV, eine Lieferanten-API (einer von 40 Kunden) oder Download aus einem B2B-Portal des Lieferanten — wenn du sowas hast, behandle es als Gold und integriere nativ.

Drei Schichten eines guten Importprozesses

Es geht nicht darum, „ein Skript zu schreiben, das die Preisliste importiert". Es geht darum, einen Prozess zu bauen, der dich in einem halben Jahr nicht überrascht, wenn ein Lieferant das Format ändert. Drei Schichten, die man von Anfang an trennen sollte:

Schicht 1 — Quelle. Ein eigenes Postfach (z.B. preislisten@deinefirma.de), in das alle Preislisten reinkommen. Lieferanten bekommen eine Adresse zum Senden. Ein SharePoint- oder FTP-Ordner für größere Dateien. Vermeide die Situation, in der die Preisliste in einem „RE: RE: RE: neue Preise ab März"-Thread lebt.

Schicht 2 — Parsen und Validieren. Ein Skript (Python oder .NET, egal) erkennt den Absender, wählt den passenden Parser und extrahiert eine Positionsliste: Lieferantencode → Bezeichnung → neuer Nettopreis → Währung → gültig ab. Die Validierung ist entscheidend: hat jede Position ein Mapping zu einem ERP-SKU, liegt die Preisänderung in einem vernünftigen Bereich (z.B. +/- 30%), stimmt die Währung mit dem historischen Wert überein.

Schicht 3 — Freigabe und Import. Die Parsing-Ergebnisse landen in einer Ansicht, in der ein Mensch in einer Tabelle sieht: „25 Positionen unverändert, 12 mit 2–5% Erhöhung, 3 mit einer Erhöhung über 20%, 2 neue Codes ohne Mapping". Der Einkaufsleiter prüft die Anomalien, klickt „freigeben" und erst dann fließen die Daten per API oder CSV-Import ins ERP.

Diese dritte Schicht ist kritisch. Eine Automatisierung ohne Menschen am Ende wird früher oder später Unsinn durchdrücken. Ein Mensch ohne Automatisierung davor wird in Tabellen ertrinken. Zusammen — wird das Ganze zu einem 4-Stunden-Job im Monat statt 25.

Mapping der Lieferanten-SKUs auf deine SKUs — der stille Killer

Der größte Schmerz auf so einem Projekt ist meistens nicht das Parsen, sondern das Mapping. Der Lieferant hat seinen Code (z.B. EL-KP-2400), du hast deinen (z.B. KAB-CU-2.5) und niemand hält das systematisch fest. Vertriebler „wissen, dass es dasselbe ist". In der Praxis lebt das Mapping in den Köpfen von zwei Personen — wenn eine krank wird, steht die Integration.

Die Lösung ist langweilig, aber wirksam: eine Mapping-Tabelle in einer Datenbank (oder als Anfang in einem SharePoint-Excel), mit den Spalten Lieferant | Lieferantencode | ERP-SKU | Einheit | Umrechnungsfaktor | letztes Verifikationsdatum. Wird bei jeder neuen Position einmal ausgefüllt — und gepflegt. Trifft der Parser auf einen Code ohne Mapping, geht die Position in eine „Inbox neuer Codes", nicht still ins Nichts.

Gute Praxis: einmal pro Quartal einen Report „Mappings ungenutzt seit 12 Monaten" und „Mappings mit Einheitenabweichungen" laufen lassen. Der Lieferantenkatalog lebt, Codes veralten, Multiplikatoren ändern sich (der Lieferant hat aufgehört, 100-m-Rollen zu verkaufen, jetzt sind es 50 m).

Bauen oder kaufen

Es gibt Fertigprodukte (Comarch OCR für Rechnungen hat partielle Preislisten-Unterstützung, es gibt dedizierte Produkte wie Vendorlink, es gibt Symfonia-Module). Unsere übliche Empfehlung:

Selten ist die Antwort „selbst bauen oder kaufen" so eindeutig, wie Vertriebler behaupten. Die Jahreskosten landen meistens in derselben Kategorie — Details entscheiden (Integration mit deinem konkreten ERP, Unterstützung deiner Währungen, Mapping-Flexibilität).

Ein Rollout-Plan in 6 Wochen

Bei einem 20–40-Personen-Kunden sieht ein typisches Projekt so aus:

  1. Woche 1: Lieferantenaudit. Bestandsaufnahme aller Preislisten, Formate, Frequenzen, Größen. Auswahl von 3–5 „Starter"-Lieferanten (höchstes Volumen, stabilstes Format).
  2. Woche 2: dediziertes Postfach und Mapping-Tabelle. preislisten@ aufsetzen, Mapping-Tabelle anlegen und für die Pilot-Lieferanten befüllen.
  3. Wochen 3–4: Parser und Freigabeansicht. Skripte für die Pilotformate, ein einfaches UI (kann Streamlit oder ein Power-Apps-Formular sein) für die Freigabe von Änderungen, Integration mit der ERP-API.
  4. Woche 5: Parallelbetrieb. Der neue Prozess läuft neben dem manuellen, die Ergebnisse werden verglichen. Alle Grenzfälle kommen ans Licht — eine andere Währung auf einer Preisliste, ein zusätzlicher Spaltenrabatt, der nicht in der Spezifikation stand.
  5. Woche 6: Ausrollen. Weitere Lieferanten einbinden, Parser ergänzen. Diese Phase endet nie zu 100% — es gibt immer einen Lieferanten, dessen Preisliste einmal im halben Jahr ankommt und „wir kümmern uns dann darum".

Drei Fehler, die man vermeiden sollte

Wie geht es weiter

Der Import von Lieferantenpreislisten ist einer dieser Bereiche, in denen Automatisierung im ersten Monat sichtbare Ergebnisse liefert. Du brauchst dafür keine Plattform für 100 tausend — du brauchst ein paar Entwicklerwochen, Disziplin bei der Mapping-Pflege und einen Prozess, in dem ein Mensch Anomalien freigibt.

Wenn du sehen willst, wie das für deinen konkreten Lieferantenmix und dein ERP aussehen könnte — eine halbe Stunde Gespräch reicht in der Regel, um das Projekt in Phasen zu zerlegen und die Kosten zu schätzen.

Eine Preisliste, die zwei Wochen im Postfach liegt, kostet dich mehr als die Automatisierung, die sie importiert.

← Zurück zum Blog