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:
| Element | Inhalt | Pflicht im Schema |
|---|---|---|
SUPPLIER_ | Artikelnummer des Lieferanten, höchstens 32 Zeichen | ja |
DESCRIPTION_ | Kurzbeschreibung, in PRODUCT_ | ja |
ORDER_ | Bestelleinheit, etwa C62 für Stück | ja |
PRODUCT_ | mindestens ein Preisblock mit Preisart (price_) | ja |
DESCRIPTION_ | Langtext | nein |
INTERNATIONAL_ | GTIN, früher EAN genannt | nein |
MANUFACTURER_, MANUFACTURER_ | Herstellernummer und Hersteller | nein |
PRODUCT_ | Klassifikation und Merkmale | nein |
MIME_ | Bilder und Dokumente | nein |
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 Attributprev_versionnennt 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
| Fassung | Erschienen | Was sie ausmacht |
|---|---|---|
| 1.0 und 1.01 | ab 1999 | Die ersten Fassungen, beschrieben als DTD statt als XML-Schema. |
| 1.2 | 2001 | Klassifikationssysteme wie eCl@ss und ETIM lassen sich übertragen. Artikel heißen ARTICLE, die Artikelnummer SUPPLIER_. |
| 2005 | November 2005 | Gründlich überarbeitet: Aus ARTICLE wird PRODUCT. Neu sind mehrsprachige Kataloge, Logistikangaben, konfigurierbare Produkte, Preisformeln und Kataloge mehrerer Lieferanten in einer Datei. |
| 2005.1 | nach 2005 | Merkmalsgruppen (FEATURE_), verschachtelte Merkmale und LOCALE für eine Sprache mit Landesangabe. |
| 2005.2 | nach 2005 | Aktualisierte 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.2 | BMEcat 2005 |
|---|---|
ARTICLE | PRODUCT |
SUPPLIER_ | SUPPLIER_ |
ARTICLE_ | PRODUCT_ |
EAN | INTERNATIONAL_ |
MANUFACTURER_ | MANUFACTURER_ |
ARTICLE_ | PRODUCT_ |
ARTICLE_ | PRODUCT_ |
ARTICLE_, ARTICLE_ | PRODUCT_, PRODUCT_ |
ARTICLE_, ART_ | PRODUCT_, PROD_ |
| — | PRODUCT_ |
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.
Kostenlos, ohne Konto, ohne Upload — die Datei bleibt auf Ihrem Rechner.