openTrans
openTrans – Eingang und Ausgang. Der offene XML-Standard für B2B-Transaktionen. Kein Zusatz-Addon erforderlich.
Überblick
openTrans ist ein freier XML-basierter Standard für Geschäftsdokumente. Viele deutsche ERP- und Warenwirtschaftssysteme (Sage, ProALPHA, abas, Microsoft Dynamics) können openTrans importieren oder exportieren – Orderport unterstützt openTrans sowohl als Eingang (wenn ein Partner openTrans liefert) als auch als Ausgang (wenn Ihr ERP openTrans erwartet).
Typische Anwendungsfälle:
- Ausgang: Eine cXML- oder Shopware-6-Bestellung wird nach openTrans XML übersetzt und an Ihr ERP gesendet.
- Eingang: Ein Partner liefert openTrans-XML, Orderport normalisiert und reicht es weiter – z. B. in ein anderes Zielsystem oder als JSON.
Kompatibilität
Unterstützte Versionen
| Bereich | Version |
|---|---|
| openTrans-Spezifikation | 2.1 |
| Content-Type | application/xml oder text/xml |
| Zeichenkodierung | UTF-8 |
Bekannte Einschränkungen
- Keine Invoice / Quotation / Shipping-Notice. Nur das Transaktions-Dokument
ORDERwird unterstützt, nichtINVOICE,QUOTATION,DISPATCHNOTIFICATIONusw. - Keine Attachments.
ATTACHMENT-Blöcke werden ignoriert. - Custom-Extensions (
USERDEFINED_EXTENSIONS) werden durchgereicht, aber nicht in Standard-Mappings berücksichtigt. - Validierung: Orderport validiert gegen die openTrans-DTD nicht strikt; fehlende Pflichtfelder werden erst vom empfangenden System bemerkt.
Authentifizierung
openTrans selbst trägt keine Authentifizierung. Absichern über:
- Bearer Token oder Shared-Secret-Header an der Orderport-Webhook-URL (Eingang)
- Basic-Auth oder OAuth am ausgehenden Transport (Ausgang)
Einrichten in Orderport
Pipeline anlegen – openTrans als Ausgang
- Pipelines → Neue Pipeline
- Eingabeformat: Ihre Quelle (cXML, Shopware 6, EDIFACT, …), Ausgabeformat: openTrans
- Auto-Mapping deckt Standard-Felder ab
- Transport wählen: HTTP POST oder REST API an Ihr ERP (oft mit Basic-Auth)
Pipeline anlegen – openTrans als Eingang
- Pipelines → Neue Pipeline
- Eingabeformat: openTrans, Ausgabeformat: JSON (oder ein anderes XML)
- Auto-Mapping
- Credential (Bearer Token / Shared-Secret-Header) anlegen, URL an den Absender geben
Technische Details
Beispiel (Ausgang)
<?xml version="1.0" encoding="UTF-8"?>
<ORDER version="2.1" type="standard">
<ORDER_HEADER>
<ORDER_INFO>
<ORDER_ID>PO-2024-001</ORDER_ID>
<ORDER_DATE>2024-03-15</ORDER_DATE>
<PARTIES>
<PARTY>
<bmecat:PARTY_ID type="buyer_specific">BUYER-01</bmecat:PARTY_ID>
<PARTY_ROLE>buyer</PARTY_ROLE>
<ADDRESS>
<NAME>Muster GmbH</NAME>
<STREET>Hauptstr. 1</STREET>
<ZIP>80331</ZIP>
<CITY>München</CITY>
<COUNTRY_CODED>DE</COUNTRY_CODED>
</ADDRESS>
</PARTY>
</PARTIES>
<ORDER_CURRENCY>EUR</ORDER_CURRENCY>
</ORDER_INFO>
</ORDER_HEADER>
<ORDER_ITEM_LIST>
<ORDER_ITEM>
<LINE_ITEM_ID>1</LINE_ITEM_ID>
<ARTICLE_ID>
<SUPPLIER_AID>WIDGET-001</SUPPLIER_AID>
<DESCRIPTION_SHORT>Premium Widget Blau</DESCRIPTION_SHORT>
</ARTICLE_ID>
<QUANTITY>10</QUANTITY>
<ORDER_UNIT>PCE</ORDER_UNIT>
<ARTICLE_PRICE>
<PRICE_AMOUNT>150.00</PRICE_AMOUNT>
</ARTICLE_PRICE>
</ORDER_ITEM>
</ORDER_ITEM_LIST>
<ORDER_SUMMARY>
<TOTAL_ITEM_NUM>1</TOTAL_ITEM_NUM>
<TOTAL_AMOUNT>1500.00</TOTAL_AMOUNT>
</ORDER_SUMMARY>
</ORDER>
Zielfelder (wichtige Pfade)
| Pfad | Bedeutung |
|---|---|
ORDER_INFO.ORDER_ID |
Bestellnummer |
ORDER_INFO.ORDER_DATE |
Bestelldatum |
ORDER_INFO.ORDER_CURRENCY |
Währung |
ORDER_INFO.PARTIES.BUYER.NAME / .STREET / .ZIP / .CITY / .COUNTRY_CODED |
Käufer |
ORDER_INFO.PARTIES.SUPPLIER.* |
Lieferant |
ORDER_INFO.PARTIES.DELIVERY.* |
Lieferadresse |
ORDER_ITEM_LIST.ORDER_ITEM[].LINE_ITEM_ID |
Positionsnummer |
ORDER_ITEM_LIST.ORDER_ITEM[].ARTICLE_ID.SUPPLIER_AID |
Artikelnummer |
ORDER_ITEM_LIST.ORDER_ITEM[].ARTICLE_ID.DESCRIPTION_SHORT |
Beschreibung |
ORDER_ITEM_LIST.ORDER_ITEM[].QUANTITY |
Menge |
ORDER_ITEM_LIST.ORDER_ITEM[].ORDER_UNIT |
Mengeneinheit |
ORDER_ITEM_LIST.ORDER_ITEM[].ARTICLE_PRICE.PRICE_AMOUNT |
Einzelpreis |
ORDER_SUMMARY.TOTAL_AMOUNT |
Gesamtbetrag |
Endpoint (Eingang)
Webhook-URL je Pipeline: https://orderport.app/api/v1/webhook/{token}.
Fehlerbehebung
| Symptom | Ursache | Lösung |
|---|---|---|
| ERP lehnt XML ab („DTD-Validierung fehlgeschlagen") | Pflichtfeld im Mapping nicht belegt | Im Mapping-Editor prüfen, welche ORDER_INFO-/ORDER_ITEM-Felder unbesetzt sind; per Static-Mapping füllen |
| Umlaute falsch dargestellt | ERP erwartet ISO-8859-1 statt UTF-8 | Transport auf HTTP POST mit Content-Type: application/xml; charset=ISO-8859-1 konfigurieren (derzeit nicht UI-gestützt – manuelle Anpassung in Transport-Config) |
| Mengeneinheiten inkonsistent | Quelle liefert EA, openTrans-Kunden erwarten PCE |
Transform-Mapping (uppercase + Static-Fallback) einbauen |