DE · AT · CHRatgeber

Punchout und E-Procurement-Anbindung im B2B-Shop

Rechtsstand: · Aktualisiert:

Gilt für: Geschäftskunden-Anbindungen in Onlineshops in Deutschland, Österreich und der Schweiz; Beispielrechnung in Euro

Kurz gesagt

Punchout verbindet das Beschaffungssystem des Kunden mit Ihrem Shop: Der Einkäufer füllt den Warenkorb in Ihrer Shop-Oberfläche, der als Bestellanforderung zurückgeht; die Bestellung erreicht Sie erst nach der Freigabe. Nötig ist die Anbindung, wenn der Kunde Ihren Shop aus seinem Beschaffungssystem heraus aufrufen soll; will er nur Produktdaten laden, genügt eine Katalogdatei. Der Aufruf folgt dem Format des Kundensystems: das SAP-Beschaffungssystem SRM unterstützt die Schnittstelle OCI, cXML-fähige Beschaffungssysteme und Netzwerke sprechen cXML; für Daten der bestellenden Personen gilt in Deutschland und Österreich die DSGVO, in der Schweiz das DSG.

Das Wichtigste

  • Punchout: Der Warenkorb entsteht in Ihrem Shop und geht als Bestellanforderung an das Beschaffungssystem zurück.
  • Ein Auftrag ist das noch nicht; die Bestellung sendet das Kundensystem erst nach seiner Freigabe.
  • cXML-Spezifikation 1.2.071 (Stand 14. August 2026): PunchOutSetupRequest, PunchOutOrderMessage, OrderRequest.
  • OCI 5.0 (Stand 4. Oktober 2012): Warenkorbdaten gehen als HTML-Formularfelder NEW_ITEM-… an das SAP-Beschaffungssystem SRM zurück.
  • BMEcat (aktuelle Version 2005.2, BME e.V.) überträgt Katalogdaten als Datei und kann darin auf einen externen Katalog verweisen; OpenTRANS ergänzt ihn um Belegtransaktionen.
  • Für Daten der bestellenden Personen gilt in Deutschland und Österreich die DSGVO, in der Schweiz das DSG.

Ein Einkäufer, dessen System einen Punchout-Aufruf kennt, bestellt nicht per E-Mail, sondern arbeitet in Ihrer Shop-Oberfläche und schickt den Warenkorb dorthin zurück. Ob Sie das brauchen, entscheidet das Beschaffungssystem des Kunden, nicht Ihre Shop-Version.

Wie eine Punchout-Sitzung abläuft

Der Einkäufer wählt in seinem Beschaffungssystem einen Lieferanten. In cXML schickt das System eine PunchOutSetupRequest an die Adresse des Lieferanten oder an einen Netzwerk-Hub, der sie weiterleitet, und öffnet ein Browserfenster mit der Startseite des Lieferanten, angemeldet auf ein Konto; die Operation heißt create für eine neue Sitzung, edit für eine erneute Bearbeitung, inspect für eine reine Ansicht und source für eine Ausschreibung. OCI kommt ohne diese Anforderung aus: Das System ruft die im SAP SRM hinterlegte Katalogadresse direkt mit seinen Parametern auf.

Danach läuft die Sitzung wie ein gewöhnlicher Einkauf, aber mit den Preisen und Beständen des Kundenkontos. Beim Abschluss entsteht kein Auftrag, sondern ein HTML-Formular mit dem Warenkorb, das der Browser an das Beschaffungssystem zurückschickt: in cXML ein verstecktes Feld mit einem PunchOutOrderMessage-Dokument, in OCI Felder mit dem Präfix NEW_ITEM-. Die Bestellung erreicht Sie erst, wenn die Bestellanforderung die Freigabe des Kunden passiert hat (in cXML ein OrderRequest).

Will der Kunde eine bereits übergebene Bestellanforderung ändern, kann er sie erneut in Ihrem Shop öffnen, sofern Sie die Bearbeitung zulassen; in cXML schickt sein System den Warenkorb dann mit der Operation edit zurück. Mengenänderungen können Steuer und Fracht verändern und werden deshalb im Shop nachgerechnet.

Wann Sie eine Anbindung brauchen

Nötig ist sie, wenn der Kunde über sein eigenes Beschaffungssystem bestellt und dabei Ihren Shop aufrufen soll: weil seine Einkaufsregeln nur Systembestellungen zulassen, weil er die Auswahl im laufenden Bestellvorgang in Ihrer Oberfläche treffen will oder weil Preise und Verfügbarkeit beim Aufruf aus Ihrem System kommen sollen.

Wer im Shop oder im Kundenportal bestellt, braucht keine Anbindung (B2B-Kundenportal); wer nur Produktdaten importieren will, kommt mit einer Katalogdatei aus. Ist der Kunde ein öffentlicher Auftraggeber, klären Sie Vergabe und Rechnung getrennt (Verkauf an Behörden).

Die vier Standards im Vergleich

Die vier Standards decken zwei Aufgaben ab: eine Sitzung übergeben oder Datenbestände austauschen.

Standard Was übertragen wird Technische Form Erwartet von
cXML Anforderung, Sitzung, Warenkorb und später die Bestellung XML über HTTP/HTTPS; Warenkorb als verstecktes HTML-Formularfeld (cxml-urlencoded oder cxml-base64) Beschaffungssystemen und Netzwerken mit cXML-Profil; Spezifikation 1.2.071, veröffentlicht über cxml.org
OCI 5.0 Aufrufparameter zum Start und Warenkorbdaten zurück HTML-Formular mit Feldern des Schemas NEW_ITEM-Feld[index]; Rücksprungadresse im Action-Attribut, der Parametername ist frei wählbar (HOOK_URL) SAP-Beschaffungssystemen; die Dokumentation beschreibt die Pflege im Customizing des SAP SRM
BMEcat 2005.2 vollständiger Produktkatalog als Datei, mit Preisen, Konfigurationsregeln und Klassifikation XML mit Beschreibung und XSD-Schemadatei, beides beim BME Einkaufssystemen, die Katalogdaten importieren; Version 1.2 stellte der BME 2001 vor, aktuelle Version ist 2005.2
OpenTRANS Belegtransaktionen wie Anfrage, Angebot, Auftrag, Auftragsbestätigung, Lieferavis und Rechnung XML mit DTD und XSD Systemen, die Belege als Datei austauschen; der BME verweist auf opentrans.de und verwaltet den Standard nicht mehr

BMEcat und OpenTRANS übertragen Dateien zu einem bestimmten Stand, cXML und OCI übergeben eine Sitzung. Der BME nennt für BMEcat 2005 zusätzlich die Unterstützung externer Kataloge und führt dabei unter anderem OCI, PunchOut und RoundTrip an; damit kann ein Katalog aus dem Beschaffungssystem heraus auf ein System des Lieferanten verweisen. Beispiel: Ein Kunde importiert seinen Grundkatalog als BMEcat-Datei und ruft für konfigurierbare Positionen Ihren Shop auf.

Was der Shop liefern muss

Bei OCI braucht der Kunde die Adresse Ihres Katalogs und die Parameter des Aufrufs; zurück gibt der Shop ein HTML-Formular, dessen Action-Attribut die Rücksprungadresse trägt und dessen Zeilen in Feldern wie NEW_ITEM-DESCRIPTION, NEW_ITEM-QUANTITY, NEW_ITEM-PRICE und NEW_ITEM-CURRENCY stehen. Bei cXML kommt die Antwort mit der Startseiten-Adresse, der Rücksprung (BrowserFormPost) und die Identität in den Elementen From, To und Sender hinzu; deren Credential enthält eine Identity und optional ein SharedSecret oder einen CredentialMac. Beides setzt voraus, dass Ihr Shop die Sitzung dem anfragenden Kunden zuordnet; braucht der Kunde abweichende Preise oder eine bestimmte Sprache, richten Sie am Kundenkonto eine passende Preisliste und Sprache ein (Kundenspezifische Preise und Staffeln).

Personenbezogene Daten in der Sitzung

Die cXML-Anforderung kann Extrinsic-Felder wie UserEmail, UniqueName und CostCenter mitgeben, und das Konto auf der Shop-Seite kann auf eine Region, ein Unternehmen, eine Abteilung oder eine Person zugeschnitten sein. Damit gelangen Name, E-Mail-Adresse und Kostenstelle der bestellenden Person in Ihren Shop; übertragen Sie nur die Felder, die die Bestellung braucht.

In Deutschland und Österreich gilt die Verordnung (EU) 2016/679 (Datenschutz-Grundverordnung, DSGVO) unmittelbar und ab dem 25. Mai 2018 (Art. 99 Abs. 2 DSGVO): Personendaten müssen auf das notwendige Maß beschränkt bleiben (Art. 5 Abs. 1 Buchst. c DSGVO), und die Verarbeitung braucht eine Erlaubnis. Die Vertragserfüllung nach Art. 6 Abs. 1 Buchst. b DSGVO trägt sie nur, wenn die betroffene Person selbst Vertragspartei ist, etwa ein Einzelunternehmer; bei Daten angestellter Einkäufer ist die Rechtsgrundlage gesondert zu bestimmen und zu benennen. Verarbeitet ein Dienstleister die Daten im Auftrag, braucht es einen Vertrag nach Art. 28 Abs. 3 DSGVO.

In der Schweiz gilt das Datenschutzgesetz (DSG, SR 235.1, Fassung Stand 7. Juli 2025, in Kraft seit 1. September 2023). Es erfasst Personendaten natürlicher Personen, nicht Daten der Firma als solcher. Ein Auftragsbearbeiter darf sie nach Art. 9 Abs. 1 DSG bearbeiten, wenn er es so tut, wie Sie selbst es dürften, und keine Geheimhaltungspflicht entgegensteht; nach Abs. 2 müssen Sie sich vergewissern, dass er die Datensicherheit gewährleisten kann. Einen Schweizer Shop kann die DSGVO nach Art. 3 Abs. 2 erfassen, wenn er Personen in der Union Waren oder Dienstleistungen anbietet.

Ein Rechenbeispiel

Die Zahlen sind erfundene Annahmen einer Beispielrechnung: 40 Stunden für Einrichtung und Test, 85,00 Euro je Stunde, 2 Stunden Pflege im Monat, 9 Minuten Erfassung von Hand gegen 1,5 Minuten in der Sitzung, 38,00 Euro je Arbeitsstunde.

Position Rechnung Wert
Einmaliger Aufwand 40 × 85,00 Euro 3.400,00 Euro
Laufender Aufwand im Jahr 2 × 85,00 Euro × 12 2.040,00 Euro
Zeitgewinn je Bestellung 7,5 Minuten = 0,125 Stunden × 38,00 Euro 4,75 Euro
Deckungsbedarf im ersten Jahr 3.400,00 + 2.040,00 Euro 5.440,00 Euro
Nötige Bestellungen im ersten Jahr 5.440,00 ÷ 4,75 Euro rund 1.145 Bestellungen

Rund 1.145 Bestellungen im ersten Jahr sind etwa 22 in der Woche. Gehen weniger Bestellungen dieses Kunden über den Shop, trägt der Zeitgewinn die Anbindung nicht. Datenpflege, Schulung und Änderungen am Shopsystem sind nicht gerechnet.

Typische Fehler

  1. Den Warenkorb als Bestellung verbuchen: Die Bestellung kommt erst nach der Freigabe im Kundensystem; vorher gebucht, stehen Aufträge im System, die nie eingehen.
  2. Den BuyerCookie als Sitzungsschlüssel speichern: Abschnitt 5.3.4 des cXML Reference Guide rät davon ab, weil der BuyerCookie für jede Sitzung neu vergeben wird, von create über inspect bis edit; der Shop muss ihn unverändert zurückgeben, damit das Beschaffungssystem die Bestellanforderung der ursprünglichen Anforderung zuordnen kann (Abschnitt 5.6.4.1).
  3. Preise doppelt pflegen: Der Shop ist laut Spezifikation die Informationsquelle aller Positionen; ein abweichender Katalogpreis erzeugt Nacharbeit.
  4. Den Rücksprung falsch adressieren: Ohne BrowserFormPost in cXML und ohne Rücksprungadresse im Action-Attribut der OCI-Formularseite bleibt der Warenkorb im Browser.
  5. Keinen Prüfturnus festlegen: Ohne Zählung der Sitzungen und der unzuordenbaren Bestellungen merken Sie einen Abbruch erst beim Anruf des Kunden.

So gehen Sie vor

  1. Klären Sie das System des Kunden: SAP-Beschaffungssystem, cXML-fähiges Netzwerk oder reiner Katalogimport. Daraus folgt der Standard, nicht aus Ihrem Wunsch.
  2. Holen Sie die Feldliste ein: Kundenkonto, Preisgruppe, Währung, Mengeneinheit, Sprache und die Felder, die sein System mitschickt.
  3. Richten Sie eine Adresse je Kunde ein, gebunden an ein Konto mit der richtigen Preisliste (Shopsystem für B2B auswählen).
  4. Legen Sie den Rückweg fest: Rücksprung des Warenkorbs und getrennt davon den Weg für Bestellung und Rechnung (E-Rechnung im B2B-Webshop).
  5. Schreiben Sie die Buchungsregel: Die Sitzung reserviert keinen Bestand und erzeugt keinen Auftrag (Angebote und Freigabeprozesse).
  6. Regeln Sie die Auftragsverarbeitung, wenn ein Dienstleister die Anbindung betreibt: in Deutschland und Österreich nach Art. 28 Abs. 3 DSGVO, in der Schweiz nach Art. 9 DSG.
  7. Testen Sie vier Fälle im Testmandanten des Kunden: erste Sitzung, Bearbeitung einer bereits übergebenen Bestellanforderung, Rücksprung mit zwei Positionen, doppeltes Absenden. Danach schalten Sie produktiv (Geschäftskunden freischalten).

Häufige Fragen

Ist die Punchout-Bestellung schon ein Auftrag?

Nein. Mit der Warenkorbübergabe erhalten Sie eine Bestellanforderung des Kunden, nicht seine Bestellung. Die cXML-Spezifikation hält ausdrücklich fest, dass der Lieferant zu diesem Zeitpunkt noch keine Bestellung erhalten hat und den Vorgang deshalb nicht buchen kann. Reservieren Sie keinen Bestand, und buchen Sie den Auftrag erst nach Eingang der Bestellung.

Wann reicht eine Katalogdatei statt einer Anbindung?

Wenn der Kunde nur Produktdaten in sein System laden und dort ohne Ihren Shop bestellen will. Dafür ist BMEcat gedacht; die aktuelle Version 2005.2 beschreibt der BME. BMEcat 2005 überträgt auch konfigurierbare Produkte und Preise, die erst bei der Bestellung berechnet werden, und sieht Produkt-, Preis-, Verfügbarkeits- und Angebotsanfragen sowie den Aufruf eines externen Katalogs vor. Braucht der Einkäufer dagegen den Einkauf in Ihrer Shop-Oberfläche, verlangt sein Beschaffungssystem den Aufruf Ihres Shops.

Kann ich die Anbindung mit jedem Shopsystem einrichten?

Das System muss drei Dinge können: eine Adresse je Kunde mit Anmeldung ausliefern, die Warenkorb- oder Katalogdaten in der erwarteten Form zurückgeben und die Sitzung einem Kundenkonto zuordnen. Prüfen Sie das im Angebot, bevor Sie zusagen, und lassen Sie sich die Kosten für Änderungen am Shopsystem nennen.

Wer trägt welchen Aufwand bei der Einrichtung?

Auf Ihrer Seite stehen Adresse, Anmeldung, Preislogik und Rücksprung; auf der Seite des Kunden die Konfiguration im Beschaffungssystem und die Freigaberegeln. Klären Sie vor dem Start, wer den Test im Testmandanten des Kunden durchführt und wer die Feldnamen und Werte liefert. Ohne diese Zuordnung beginnt jede Störung mit einer Suche.

Quellen

  1. cXML Reference Guide, Version 1.2.071, 14. August 2026 (PunchOut Transaction, Kapitel 5; Profile Transaction, Kapitel 4)SAP SE (cXML-Spezifikation, cxml.org) · abgerufen am
  2. SAP Open Catalog Interface (OCI), Release 5.0, SAP Online Help, 4. Oktober 2012SAP AG · abgerufen am
  3. OCI Documentation (Übersicht der von SAP veröffentlichten OCI-Dokumente)SAP SE, SAP Help Portal · abgerufen am
  4. BMEcat: Entstehung, Ziele und Versionen des Katalogstandards (einschließlich openTRANS)Bundesverband Materialwirtschaft, Einkauf und Logistik e.V. (BME) · abgerufen am
  5. BMEcat Downloads: aktuelle Version BMEcat 2005.2 mit Beschreibung und XSDBundesverband Materialwirtschaft, Einkauf und Logistik e.V. (BME) · abgerufen am
  6. Verordnung (EU) 2016/679 des Europäischen Parlaments und des Rates vom 27. April 2016 (Datenschutz-Grundverordnung), Amtsblatt L 119 vom 4. Mai 2016, S. 1Amt für Veröffentlichungen der Europäischen Union · abgerufen am
  7. Datenschutzgesetz (DSG), SR 235.1, amtliche konsolidierte Fassung, Stand am 7. Juli 2025Schweizerische Bundeskanzlei, Fedlex · abgerufen am