BMEcat Viewer BMEcat 1.2 · 2005 · ETIM
Zum Werkzeug

Was ist BMEcat?

BMEcat ist ein XML-Format, mit dem Hersteller und Lieferanten ihre Produktkataloge elektronisch an Händler und Einkäufer übergeben: Artikelnummern, Texte, Preise, Merkmale und Bildverweise in einer einzigen Datei. Hier steht, wie eine BMEcat-Datei aufgebaut ist, welche Fassungen es gibt und was ETIM und eCl@ss damit zu tun haben.

Woher BMEcat kommt

BMEcat entstand 1999 auf Initiative des Bundesverbands Materialwirtschaft, Einkauf und Logistik (BME), zusammen mit Unternehmen wie Bayer, BMW, SAP und Siemens. Ausgearbeitet haben es das Fraunhofer IAO und die Universität Essen, heute Duisburg-Essen. Der Gedanke dahinter: Ein Einkäufer, der Kataloge von hundert Lieferanten bekommt, soll nicht hundert Dateiformate lesen müssen. BMEcat legt deshalb fest, wie ein Katalog als XML aussieht — welche Elemente es gibt, in welcher Reihenfolge sie stehen und welche Werte erlaubt sind. Im deutschsprachigen B2B-Handel ist es bis heute eines der verbreitetsten Formate für Katalogdaten, vor allem im technischen Großhandel: Elektro, Sanitär und Heizung, Werkzeug, Industriebedarf.

So ist eine BMEcat-Datei aufgebaut

Jede Datei hat zwei Teile: einen Kopf mit Angaben zum ganzen Katalog und eine Transaktion mit den Artikeln. Das Gerüst einer Datei nach BMEcat 2005 sieht so aus:

<?xml version="1.0" encoding="UTF-8"?>
<BMECAT version="2005" xmlns="http://www.bmecat.org/bmecat/2005">
  <HEADER>
    <!-- Sprache, Katalognummer, Version, Währung -->
    <CATALOG>…</CATALOG>
    <!-- Käufer, freiwillig -->
    <BUYER>…</BUYER>
    <!-- Lieferant -->
    <SUPPLIER>…</SUPPLIER>
  </HEADER>
  <T_NEW_CATALOG>
    <PRODUCT mode="new">
      <!-- Artikelnummer -->
      <SUPPLIER_PID>…</SUPPLIER_PID>
      <!-- Texte, GTIN, Hersteller -->
      <PRODUCT_DETAILS>…</PRODUCT_DETAILS>
      <!-- Klassifikation, Merkmale -->
      <PRODUCT_FEATURES>…</PRODUCT_FEATURES>
      <!-- Einheiten, Mengen -->
      <PRODUCT_ORDER_DETAILS>…</PRODUCT_ORDER_DETAILS>
      <!-- Preise -->
      <PRODUCT_PRICE_DETAILS>…</PRODUCT_PRICE_DETAILS>
      <!-- Bilder, Datenblätter -->
      <MIME_INFO>…</MIME_INFO>
      <!-- Erweiterungen -->
      <USER_DEFINED_EXTENSIONS>…</USER_DEFINED_EXTENSIONS>
      <!-- Zubehör, Nachfolger -->
      <PRODUCT_REFERENCE>…</PRODUCT_REFERENCE>
      <!-- Zoll, Herkunft, Maße -->
      <PRODUCT_LOGISTIC_DETAILS>…</PRODUCT_LOGISTIC_DETAILS>
    </PRODUCT>
    <!-- … beliebig viele weitere Artikel … -->
  </T_NEW_CATALOG>
</BMECAT>

Drei Eigenheiten muss man kennen. Die Reihenfolge ist vorgeschrieben: Wer PRODUCT_PRICE_DETAILS vor PRODUCT_ORDER_DETAILS schreibt, hat eine ungültige Datei, auch wenn jede Angabe stimmt. Jeder Artikel steht weitgehend für sich: Anders als in einer Datenbank verteilen sich seine Angaben nicht auf verknüpfte Tabellen, fast alles steht im Element PRODUCT. Vieles darf mehrfach vorkommen: mehrere Preise mit Staffeln, mehrere Merkmalsblöcke, mehrere Bilder. Genau das macht BMEcat schwer in eine Tabelle mit einer Zeile je Artikel zu bringen. Ein vollständiges, gültiges Beispiel mit allen üblichen Angaben steht auf der Seite BMEcat-Beispieldatei.

Was Pflicht ist und was nicht

Das Schema verlangt erstaunlich wenig. Je Artikel sind nur vier Angaben vorgeschrieben:

ElementInhaltPflicht im Schema
SUPPLIER_PIDArtikelnummer des Lieferanten, höchstens 32 Zeichenja
DESCRIPTION_SHORTKurzbeschreibung, in PRODUCT_DETAILSja
ORDER_UNITBestelleinheit, etwa C62 für Stückja
PRODUCT_PRICEmindestens ein Preisblock mit Preisart (price_type)ja
DESCRIPTION_LONGLangtextnein
INTERNATIONAL_PIDGTIN, früher EAN genanntnein
MANUFACTURER_PID, MANUFACTURER_NAMEHerstellernummer und Herstellernein
PRODUCT_FEATURESKlassifikation und Merkmalenein
MIME_INFOBilder und Dokumentenein

Im Kopf sind Sprache (LANGUAGE), Katalognummer (CATALOG_ID), Katalogversion (CATALOG_VERSION) und die Angabe des Lieferanten Pflicht. Alles Weitere legt nicht BMEcat fest, sondern der Empfänger. Genau dafür gibt es Branchenregeln wie die ETIM-Guideline: Sie macht aus vielen freiwilligen Feldern Pflichtfelder.

Die drei Transaktionen

Unter dem Kopf steht genau eine von drei Transaktionen. Sie sagt dem Empfänger, was er mit den Artikeln tun soll:

  • T_NEW_CATALOG — ein vollständiger Katalog. Er ersetzt beim Empfänger den bisherigen Stand.
  • T_UPDATE_PRODUCTS — Änderungen an einem bestehenden Katalog. Jeder Artikel trägt dann mode="new", "update" oder "delete", und das Attribut prev_version nennt den Katalogstand, auf den sich die Änderung bezieht.
  • T_UPDATE_PRICES — nur neue Preise. Ein Artikel besteht dann im Kern aus Artikelnummer und Preisblöcken.

Viele Lieferanten schicken einfach in regelmäßigen Abständen den vollständigen Katalog. Das ist robuster: Geht ein Änderungspaket verloren, merkt das sofort nur ein Empfänger, der prev_version auswertet. Alle anderen merken es erst, wenn Preise nicht stimmen oder Artikel fehlen.

Die Fassungen: 1.2, 2005, 2005.1 und 2005.2

FassungErschienenWas sie ausmacht
1.0 und 1.01ab 1999Die ersten Fassungen, beschrieben als DTD statt als XML-Schema.
1.22001Klassifikationssysteme wie eCl@ss und ETIM lassen sich übertragen. Artikel heißen ARTICLE, die Artikelnummer SUPPLIER_AID.
2005November 2005Gründlich überarbeitet: Aus ARTICLE wird PRODUCT. Neu sind mehrsprachige Kataloge, Logistikangaben, konfigurierbare Produkte, Preisformeln und Kataloge mehrerer Lieferanten in einer Datei.
2005.1nach 2005Merkmalsgruppen (FEATURE_GROUP), verschachtelte Merkmale und LOCALE für eine Sprache mit Landesangabe.
2005.2nach 2005Aktualisierte Währungsliste und frei wählbare MIME-Typen. Die jüngste Fassung.

Maßgeblich ist in der Praxis BMEcat 2005: Die ETIM-Guideline baut darauf auf, und die meisten Empfänger erwarten diese Fassung. Kataloge im Format 1.2 kommen trotzdem noch vor, vor allem aus älteren Warenwirtschaften. Welche Fassung eine Datei hat, steht im Attribut version des Wurzelelements.

1.2 und 2005 im Vergleich

Wer einen alten Katalog liest oder einen Import für beide Fassungen baut, braucht vor allem diese Zuordnung:

BMEcat 1.2BMEcat 2005
ARTICLEPRODUCT
SUPPLIER_AIDSUPPLIER_PID
ARTICLE_DETAILSPRODUCT_DETAILS
EANINTERNATIONAL_PID type="gtin"
MANUFACTURER_AIDMANUFACTURER_PID
ARTICLE_FEATURESPRODUCT_FEATURES
ARTICLE_ORDER_DETAILSPRODUCT_ORDER_DETAILS
ARTICLE_PRICE_DETAILS, ARTICLE_PRICEPRODUCT_PRICE_DETAILS, PRODUCT_PRICE
ARTICLE_REFERENCE, ART_ID_TOPRODUCT_REFERENCE, PROD_ID_TO
—PRODUCT_LOGISTIC_DETAILS

Mit Umbenennen allein wird aus einem 1.2-Katalog trotzdem kein guter 2005-Katalog, denn mit BMEcat 2005 ist einiges neu hinzugekommen. Nebenbei: Das Schema 2005 lässt die alten ARTICLE-Elemente der Abwärtskompatibilität wegen weiterhin zu.

Klassifikation: ETIM und eCl@ss

BMEcat selbst ist branchenneutral und kennt keine Produktklassen. Welche Art Produkt ein Artikel ist und welche technischen Merkmale er hat, kommt aus einem Klassifikationssystem. In der Datei steht davon im Block PRODUCT_FEATURES nur die Referenz:

<PRODUCT_FEATURES>
  <REFERENCE_FEATURE_SYSTEM_NAME>ETIM-9.0</REFERENCE_FEATURE_SYSTEM_NAME>
  <REFERENCE_FEATURE_GROUP_ID>EC000042</REFERENCE_FEATURE_GROUP_ID>
  <FEATURE>
    <FNAME>EF000227</FNAME>
    <FVALUE>16</FVALUE>
  </FEATURE>
</PRODUCT_FEATURES>

Das heißt: Klasse EC000042 (Leitungsschutzschalter) nach ETIM 9.0, Merkmal EF000227 (Bemessungsstrom) mit dem Wert 16. Die Einheit Ampere ergibt sich aus dem Merkmal selbst. Die Klartextnamen der Codes stehen nicht in der Datei, sie gehören zum Klassifikationsmodell.

ETIM ist das Klassifikationsmodell des Elektro-, Sanitär- und Heizungsgroßhandels, inzwischen auch für Werkzeuge, Baustoffe und Schiffbau. ETIM International gibt dazu die ETIM BMEcat Guideline heraus, aktuell in der Fassung 5.0. Sie legt fest, welche Felder über das Schema hinaus Pflicht sind, je Land verschieden in 23 Länderspalten, und ergänzt den Erweiterungsblock UDX.EDXF für Verpackungseinheiten, Rabattgruppen, REACH-Angaben und Produktbilder. eCl@ss, heute ECLASS geschrieben, ist das branchenübergreifende Gegenstück, verbreitet in Industrie und Einkauf, mit eigenen Regeln für BMEcat. Ein Katalog darf beide tragen, mit je einem PRODUCT_FEATURES-Block pro System.

Neben BMEcat bietet ETIM inzwischen ein eigenes Austauschformat auf JSON-Basis an, ETIM xChange. Abgelöst ist BMEcat damit nicht: ETIM führt beide Formate nebeneinander.

Eine BMEcat-Datei öffnen und prüfen

Eine BMEcat-Datei ist reiner Text, jeder Editor öffnet sie. Lesbar ist sie damit noch nicht, denn ein Lieferantenkatalog hat schnell zehntausende Artikel und mehrere hundert Megabyte. Für den Überblick öffnen Sie die Datei in diesem Werkzeug: Es zeigt Kennzahlen und alle vorkommenden Felder, prüft gegen das offizielle Schema und die ETIM-Guideline und wandelt nach Excel oder CSV um. Die Datei bleibt dabei auf Ihrem Rechner.

Was ist BMEcat?

BMEcat ist ein XML-basiertes Standardformat für den Austausch elektronischer Produktkataloge zwischen Unternehmen, 1999 auf Initiative des BME entstanden. Eine BMEcat-Datei enthält einen Kopf mit Angaben zum Katalog und eine Transaktion mit den Artikeln, je Artikel Nummer, Texte, Preise, Einheiten, Merkmale und Bildverweise.

Welche BMEcat-Version ist aktuell?

Die jüngste Fassung ist BMEcat 2005.2. Maßgeblich ist in der Praxis BMEcat 2005, auf dem auch die ETIM BMEcat Guideline 5.0 aufbaut. Ältere Kataloge liegen teils noch im Format 1.2 vor.

Was ist der Unterschied zwischen BMEcat 1.2 und 2005?

In BMEcat 2005 heißt ein Artikel PRODUCT statt ARTICLE und die Artikelnummer SUPPLIER_PID statt SUPPLIER_AID. Neu hinzugekommen sind unter anderem mehrsprachige Kataloge, Logistikangaben, konfigurierbare Produkte und Preisformeln.

Katalogdatei jetzt öffnen

Kostenlos, ohne Konto, ohne Upload — die Datei bleibt auf Ihrem Rechner.