Katalog & Preise

DATANORM und BMEcat: Großhändler-Kataloge einlesen statt Artikel abtippen

Der Großhändler schickt eine ZIP-Datei mit kryptischen Namen wie DATANORM.001 und DATPREIS.001 — und niemand erklärt dazu, was man damit tut. Dabei ist der Inhalt harmlos: Textzeilen mit Artikeln und Preisen. Hier steht, welche Datei wofür da ist, wie ein Import abläuft und an welchen drei Stellen er in der Praxis schiefgeht.

8 Minuten Lesezeit Stand August 2026 mit Datei-Spickzettel zum Ausdrucken

Wozu das Ganze gut ist

Ein Angebot über 30 Positionen abzutippen kostet eine gute Stunde — und jede abgetippte Artikelnummer ist eine mögliche Fehlerquelle. Ein eingelesener Katalog dreht das um: Du tippst „NYM-J 3x1,5“, wählst den Artikel, die Nummer und der Einkaufspreis sitzen. Der eigentliche Gewinn ist aber nicht die Tipparbeit, sondern die Aktualität der Preise. Wer aus einer zwei Jahre alten Liste kalkuliert, verkauft Material unter dem heutigen Einkauf, ohne es zu merken.

Beide Formate sind reine Einbahnstraßen vom Großhandel zu dir: Sie transportieren Artikel und Preise, keine Bestellungen und keine Verfügbarkeiten. Für Bestellung und Bestand sind andere Wege zuständig.

DATANORM: Aufbau in fünf Minuten

DATANORM ist ein Textformat, das man mit jedem Editor ansehen kann — und genau das sollte man einmal tun, bevor man einem Import misstraut. Die Regeln sind kurz:

  • Eine Zeile = ein Datensatz. Die Felder sind mit Semikolon getrennt.
  • Das erste Feld ist die Satzart — ein einzelner Buchstabe, der sagt, was in der Zeile steht.
  • Beträge stehen in Cent, nicht in Euro. 1250 heißt 12,50 Euro.
  • Verbreitet sind die Versionen 4.0 und 5.0; 5.0 kennt zusätzliche Felder wie EAN/GTIN und Matchcode.
SatzartWas drinsteht
VVorlaufsatz: Datum, Version, Währung, Info zum Lieferanten — die Kopfzeile der Datei
AArtikel-Hauptsatz: Artikelnummer, Kurztext, Preiskennzeichen, Preiseinheit, Preis, Mengeneinheit, Rabattgruppe, Warengruppe
BArtikel-Zusatzsatz (v5): EAN/GTIN, Gewicht, alternative Mengeneinheit
PPreissatz: nur Artikelnummer und neuer Preis — das Herz der Preisdatei
TLangtext, mehrzeilig, über einen Langtextschlüssel mit dem Artikel verbunden
DDimensions- und Maßangaben
ZRabatt- und Zuschlagsätze zu den Rabattgruppen
S / WWarengruppen: Code und Klartextbezeichnung

Zwei Felder verdienen besondere Aufmerksamkeit, weil an ihnen die meisten Fehlimporte hängen:

  • Die Preiseinheit (Bezugsmenge). Sie sagt, für wie viele Einheiten der Preis gilt: für eine, für zehn, für hundert oder für tausend. Bei Kabel, Rohr und Kleinteilen ist 100 oder 1000 der Normalfall. Der Meterpreis ergibt sich erst aus Preis geteilt durch Bezugsmenge.
  • Das Preiskennzeichen. Es unterscheidet, ob der Preis ein Listenpreis ist, auf den dein Händlerrabatt noch angewendet wird, oder bereits dein Nettopreis. Wer das verwechselt, kalkuliert entweder deutlich zu teuer oder deutlich zu billig. Die Belegung ist zwischen Großhändlern nicht immer gleich — frag einmal nach, welches Kennzeichen deine Datei verwendet, und notier dir die Antwort für die nächsten Jahre.

Welche Datei wofür da ist

DateiInhaltWann du sie brauchst
DATANORM.001 Vollartikeldatei: Artikel, Texte, Mengeneinheiten, Preise beim ersten Import und ein- bis zweimal jährlich zur Grundaktualisierung
DATPREIS.001 reine Preissätze zu bestehenden Artikelnummern bei jeder Preisrunde — schnell, klein, legt aber keine neuen Artikel an
DATANORM.WRG Warengruppen: Code und Bezeichnung im Klartext damit im Katalog „10 — Installationsmaterial“ steht und nicht nur „10“
DATANORM.RAB Rabatt- und Zuschlagsgruppen wenn dein Rabatt je Warengruppe unterschiedlich ist
*.002, *.003 Fortsetzungsdateien derselben Lieferung immer gemeinsam mit der .001 einspielen, nie einzeln

Die Endung ist dabei nur Konvention, kein Gesetz — manche Großhändler benennen die Dateien abweichend oder packen alles in ein ZIP. Verlass dich im Zweifel nicht auf den Namen, sondern öffne die Datei kurz: Stehen dort lange Zeilen mit A; am Anfang, ist es eine Artikeldatei; überwiegen Zeilen mit P;, ist es eine Preisdatei.

BMEcat: dasselbe in XML

BMEcat kommt aus dem allgemeinen Beschaffungswesen und ist deshalb strukturierter, aber auch schwerer: Eine XML-Datei mit demselben Katalog ist leicht um ein Vielfaches größer als die DATANORM-Variante. Üblich sind die Versionen 1.2 und 2005.

Was du davon kennen musst, ist im Wesentlichen der Transaktionstyp im Kopf der Datei:

  • T_NEW_CATALOG — ein vollständiger Katalog. Entspricht der DATANORM-Vollartikeldatei.
  • T_UPDATE_PRICES — nur Preisänderungen zu bestehenden Artikeln. Entspricht DATPREIS.
  • T_UPDATE_PRODUCTS — geänderte und neue Artikel, ohne den ganzen Katalog zu ersetzen.

Innerhalb der Datei hängt jeder Artikel als ARTICLE mit Beschreibung, Mengeneinheit und einem Preisblock. Auch hier gibt es eine Preisbezugsmenge — dieselbe Falle wie bei DATANORM, nur mit anderem Namen. Zusätzlich transportiert BMEcat Dinge, die DATANORM nicht kennt: Produktbilder und Datenblätter als Verweise, Staffelpreise und Klassifikationen nach ETIM oder eCl@ss. Für die Angebotserstellung im kleinen Betrieb brauchst du davon meist wenig — nett ist die Klassifikation trotzdem, weil sich damit gezielt einzelne Warengruppen importieren lassen.

Ein Import, Schritt für Schritt

  1. Datei anfordern. Beim Großhändler nachfragen, meist im Kundenportal oder beim Außendienst. Frag gleich drei Dinge mit: Version, Zeichensatz und ob die Preise Listen- oder Nettopreise sind.
  2. Zeichensatz einstellen. CP850 oder ISO-8859-1 sind die Regel, UTF-8 bei neueren Exporten. In der Vorschau einen Artikel mit Umlaut ansehen — „Anschlußstück“ statt „Anschlu?stück“.
  3. Warengruppen auswählen. Lieber 4.000 Artikel aus deinen Gruppen als 400.000 aus allen. Die Suche im Angebot dankt es dir täglich.
  4. Rabatt und Aufschlag festlegen. Der Einkaufspreis kommt aus der Datei, der Verkaufspreis aus deiner Kalkulation. Definier den Aufschlag je Warengruppe, nicht je Artikel.
  5. Importieren und kontrollieren. Danach gezielt prüfen: ein Meterware-Artikel, ein Kleinteil aus einer Packung, ein Artikel mit Umlaut. Stimmen diese drei, stimmt in aller Regel der Rest.
  6. Bestehende Artikel aktualisieren oder nicht? Beim ersten Import egal, bei jedem weiteren die entscheidende Frage. Wer eigene Preise gepflegt hat, will sie nicht von der nächsten Lieferantendatei überschrieben bekommen.

In Buchl läuft genau dieser Ablauf mit Vorschau vor dem Speichern: Version und Satzarten werden erkannt, Zeichensatz und Aufschlag wählst du selbst, große Dateien werden in Blöcken verarbeitet. Eine reine Preisdatei erkennt der Import als solche und aktualisiert dann nur Preise, statt halbe Artikel anzulegen.

Datei-Spickzettel und Import-Checkliste

Welche Datei was enthält, welche Satzart wofür steht und die Checkliste für einen sauberen Import — auf einem Blatt zum Danebenlegen. Kostenlos, ohne Anmeldung.

Spickzettel öffnen

Die typischen Stolperfallen

SymptomUrsacheAbhilfe
Umlaute als Fragezeichen oder Kästchen falscher Zeichensatz — die Datei ist CP850 oder Latin-1, gelesen wurde UTF-8 Zeichensatz beim Import umstellen und neu einlesen
Preise um Faktor 100 oder 1000 daneben Preiseinheit/Bezugsmenge ignoriert Meterware gegen die Preisliste prüfen, Import wiederholen
Alle Preise viel zu hoch Listenpreise als Nettopreise übernommen — dein Händlerrabatt fehlt Preiskennzeichen klären, Rabatt je Warengruppe hinterlegen
Neue Artikel tauchen nie auf es wurde nur die Preisdatei eingespielt einmal jährlich die Vollartikeldatei einlesen
Artikel ohne Bezeichnung, nur mit Nummer Langtexte stehen in eigenen T-Sätzen oder in einer separaten Datei alle Dateien der Lieferung gemeinsam einspielen
Warengruppen heißen nur „10“, „20“, „30“ die Warengruppendatei fehlt Warengruppendatei nachfordern und nachimportieren
Import bricht bei großer Datei ab Datei zu groß für die Verarbeitung in einem Stück in Blöcken importieren oder auf einzelne Warengruppen einschränken

Preispflege, die nicht ausufert

Der häufigste Fehler ist nicht der misslungene erste Import, sondern der zweite, der nie kommt. Ein Rhythmus, der sich bewährt hat:

  • Preisdatei einspielen, wenn der Großhändler eine Preisrunde ankündigt — bei den meisten Lieferanten ein- bis viermal im Jahr.
  • Vollartikeldatei einmal jährlich, damit Neuheiten und ausgelaufene Artikel nachziehen.
  • Aufschläge je Warengruppe hinterlegen statt je Artikel — sonst pflegst du bei jeder Preisrunde tausende Verkaufspreise von Hand.
  • Eigene Sets und Standardleistungen getrennt halten. Deine „Steckdose tauschen inklusive Material“ ist deine Kalkulation und darf von keiner Lieferantendatei überschrieben werden.
  • Nach jedem Import drei Stichproben. Das kostet zwei Minuten und hat schon manche Baustelle gerettet, die sonst mit einem Materialpreis von vorgestern kalkuliert worden wäre.

Kurz zusammengefasst

DATANORM ist Text mit Semikolon, BMEcat ist XML — beide bringen Artikel und Preise vom Großhandel in deinen Katalog. Die Vollartikeldatei legt an, die Preisdatei aktualisiert nur. Drei Fallen entscheiden über Erfolg oder Chaos: Zeichensatz, Preiseinheit und die Frage, ob die Preise Listen- oder Nettopreise sind. Alle drei klärst du in einem Telefonat mit dem Großhändler.

Häufige Fragen

Was ist der Unterschied zwischen DATANORM und BMEcat?
DATANORM ist ein älteres, zeilenbasiertes Textformat aus dem Bauhandwerk: eine Zeile ist ein Datensatz, die Felder sind mit Semikolon getrennt, das erste Feld nennt die Satzart. Verbreitet sind die Versionen 4.0 und 5.0. BMEcat ist ein XML-Format aus dem allgemeinen Beschaffungswesen, üblich in den Versionen 1.2 und 2005, und transportiert mehr Zusatzinformationen wie Bilder, Klassifikationen und Staffelpreise. Für die Preispflege im Handwerk leisten beide dasselbe: Artikelstamm und Preise vom Großhandel in deinen Katalog.
Welche Datei brauche ich vom Großhändler?
Für den ersten Import die Vollartikeldatei, üblicherweise DATANORM.001 — sie enthält Artikelnummern, Bezeichnungen, Mengeneinheiten, Warengruppen und Preise. Für spätere Preisänderungen genügt die Preisdatei DATPREIS.001. Dazu kommen optional die Warengruppendatei mit den Klartextbezeichnungen der Gruppen und die Rabattgruppendatei. Bei BMEcat bekommst du stattdessen eine einzige XML-Datei, deren Transaktionstyp angibt, ob es ein Vollkatalog oder ein Preisupdate ist.
Warum sind nach dem Import alle Umlaute kaputt?
Weil DATANORM-Dateien historisch in CP850 (DOS) oder ISO-8859-1 (Latin-1) geliefert werden und nicht in UTF-8. Wird die Datei mit dem falschen Zeichensatz gelesen, werden aus Umlauten Fragezeichen oder Kästchen. Beim Import lässt sich der Zeichensatz meist auswählen — probier CP850 zuerst, dann ISO-8859-1. Prüf das Ergebnis an einem Artikel mit Umlaut in der Vorschau, bevor du tausende Datensätze speicherst.
Warum ist ein Artikel nach dem Import hundertmal zu teuer?
Das ist fast immer die Preiseinheit. DATANORM liefert den Preis in Cent, dazu ein Feld für die Bezugsmenge: Der Preis kann für 1, 10, 100 oder 1000 Einheiten gelten. Bei Kabel, Rohr, Schrauben und Kleinteilen ist eine Bezugsmenge von 100 oder 1000 der Normalfall. Wird sie ignoriert, ist der Meterpreis um den Faktor 100 oder 1000 daneben. Kontrolliere nach jedem Import gezielt zwei, drei Meterware-Artikel gegen die Preisliste.
Legt eine Preisdatei auch neue Artikel an?
Nein. Eine reine Preisdatei enthält nur Preissätze und aktualisiert die Preise bereits vorhandener Artikel. Artikel, die du noch nicht im Katalog hast, werden dadurch nicht angelegt — sie fehlen einfach weiter. Wer nur Preisdateien einspielt und sich wundert, dass Neuheiten nie auftauchen, braucht einmal im Jahr eine vollständige Artikeldatei.
Muss ich den ganzen Katalog des Großhändlers importieren?
Nein, und meistens ist es die schlechtere Idee. Ein voller Elektro- oder Sanitärkatalog hat schnell mehrere hunderttausend Artikel; die Suche im Angebot wird dadurch unübersichtlich. Sinnvoller ist der Import ausgewählter Warengruppen — jener, aus denen du tatsächlich verbaust — und daneben ein eigener Stamm mit deinen Sets und Standardleistungen.

Quellen und weiterlesen

Der Katalog, aus dem das Angebot entsteht

Buchl liest DATANORM (4.0 und 5.0) und BMEcat ein, mit Vorschau, Zeichensatzwahl und Aufschlag je Warengruppe — und aus dem Katalog wird das Angebot, aus dem Angebot die Rechnung. 14 Tage gratis, ohne Kreditkarte.

Keine Kreditkarte · in 2 Minuten startklar · monatlich kündbar

Das könnte dich auch betreffen

Alle Beiträge im Ratgeber