AUSSCHREIBUNGEine Ausschreibung gewonnen, die PunchOut verlangt?Tender Kit herunterladen

Ratgeber · Protokolle

cXML vs. OCI: So funktionieren die beiden PunchOut-Protokolle

In Kürze

cXML und OCI sind die beiden Protokolle hinter jedem PunchOut-Katalog. cXML (verwendet von SAP Ariba, Coupa, Jaggaer, Ivalua, Oracle) tauscht XML-Dokumente über HTTPS aus und überträgt auch die Bestellung. OCI (verwendet von SAP S/4HANA, SRM und ECC) gibt den Warenkorb als HTML-Formularfelder an die HOOK_URL des Kunden zurück. Welches Sie brauchen, entscheidet das System Ihres Kunden.

cXML und OCI im direkten Vergleich

cXML und OCI im Vergleich
cXMLOCI
Vollständiger NameCommerce eXtensible Markup LanguageOpen Catalog Interface
Gepflegt voncXML.org (ursprünglich Ariba)SAP
Verwendet vonSAP Ariba, Coupa, Jaggaer, Ivalua, Oracle, Workday…SAP S/4HANA, SAP SRM, SAP ECC, einige Marktplätze
FormatXML-Dokumente über HTTPSHTML-Formularfelder (NEW_ITEM-*)
Session-StartPunchOutSetupRequest → PunchOutSetupResponseHTTP-Aufruf mit Login-Parametern und HOOK_URL
Warenkorb-RückgabePunchOutOrderMessageFormular-POST an die HOOK_URL
BestellungOrderRequest (gleiches Protokoll)Ein separater, mit dem Kunden vereinbarter Kanal, zum Beispiel E-Mail oder sein Lieferantenportal
KlassifizierungClassification domain="UNSPSC"NEW_ITEM-MATGROUP
AuthentifizierungIdentitäten + Shared SecretBenutzer und Passwort oder Token im Aufruf

cXML-PunchOut: So funktioniert eine Session

Bei cXML ist jeder Schritt ein XML-Dokument, das über HTTPS gesendet wird. Das System des Kunden und Ihre Seite identifizieren sich gegenseitig mit Zugangsdaten im Header (bei SAP Ariba den Network IDs) und einem Shared Secret.

  1. Setup-Anfrage

    Der Kunde klickt auf Ihren Katalog; sein System sendet einen PunchOutSetupRequest mit Zugangsdaten, einem BuyerCookie und einer Rücksprung-URL.

  2. Setup-Antwort

    Ihre Seite antwortet mit einer StartPage-URL; der Browser des Kunden öffnet Ihren Shop.

  3. Einkauf

    Der Kunde sieht Vertragspreise und füllt den Warenkorb.

  4. Warenkorb-Rückgabe

    Eine PunchOutOrderMessage sendet den Warenkorb zur Freigabe an die Rücksprung-URL.

  5. Bestellung

    Nach der Freigabe kommt die Bestellung als OrderRequest an.

Beispiel · PunchOutSetupRequest (gekürzt)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.069/cXML.dtd">
<cXML payloadID="1729332000.4711@buyer.example.com" timestamp="2026-10-19T10:00:00+02:00">
  <Header>
    <From><Credential domain="NetworkID"><Identity>AN01000000001</Identity></Credential></From>
    <To><Credential domain="NetworkID"><Identity>AN01000000002</Identity></Credential></To>
    <Sender>
      <Credential domain="NetworkID">
        <Identity>AN01000000001</Identity>
        <SharedSecret>••••••••</SharedSecret>
      </Credential>
      <UserAgent>Buyer procurement system</UserAgent>
    </Sender>
  </Header>
  <Request>
    <PunchOutSetupRequest operation="create">
      <BuyerCookie>8f2c41d0a9</BuyerCookie>
      <BrowserFormPost><URL>https://buyer.example.com/punchout/return</URL></BrowserFormPost>
      <SupplierSetup><URL>https://gateway.example.com/setup</URL></SupplierSetup>
    </PunchOutSetupRequest>
  </Request>
</cXML>

Beispiel · PunchOutSetupResponse

<cXML payloadID="1729332001.88@gateway.example.com" timestamp="2026-10-19T10:00:01+02:00">
  <Response>
    <Status code="200" text="OK"/>
    <PunchOutSetupResponse>
      <StartPage><URL>https://gateway.example.com/session/7f3a…</URL></StartPage>
    </PunchOutSetupResponse>
  </Response>
</cXML>

Beispiel · PunchOutOrderMessage

<cXML payloadID="1729332555.12@gateway.example.com" timestamp="2026-10-19T10:09:15+02:00">
  <Header>…</Header>
  <Message>
    <PunchOutOrderMessage>
      <BuyerCookie>8f2c41d0a9</BuyerCookie>
      <PunchOutOrderMessageHeader operationAllowed="edit">
        <Total><Money currency="EUR">96.00</Money></Total>
      </PunchOutOrderMessageHeader>
      <ItemIn quantity="20">
        <ItemID><SupplierPartID>GLV-09</SupplierPartID></ItemID>
        <ItemDetail>
          <UnitPrice><Money currency="EUR">4.80</Money></UnitPrice>
          <Description xml:lang="en">Safety gloves, size 9</Description>
          <UnitOfMeasure>PR</UnitOfMeasure>
          <Classification domain="UNSPSC">46181504</Classification>
        </ItemDetail>
      </ItemIn>
    </PunchOutOrderMessage>
  </Message>
</cXML>

OCI-PunchOut: So funktioniert eine Session

OCI ist einfacher und älter im Stil: Es gibt kein XML. SAP öffnet Ihre Katalog-URL mit Login-Parametern und einer HOOK_URL; am Ende sendet Ihr Shop den Warenkorb als HTML-Formularfelder an diese Adresse.

  1. Aufruf

    SAP öffnet Ihre Katalog-URL mit Login-Parametern und der HOOK_URL.

  2. Einkauf

    Der Kunde kauft mit seinen Vertragspreisen ein.

  3. Warenkorb-Rückgabe

    Ihr Shop sendet den Warenkorb als NEW_ITEM-*-Felder an die HOOK_URL.

  4. Bestellung

    OCI überträgt keine Bestellung: Sie erhalten sie über einen mit dem Kunden vereinbarten Kanal, zum Beispiel per E-Mail oder über sein Lieferantenportal.

Beispiel · OCI-Aufruf mit HOOK_URL

https://shop.example.com/oci?USERNAME=acme&PASSWORD=••••
  &HOOK_URL=https%3A%2F%2Fsap.buyer.example.com%2Fsap%2Fbc%2Fsrm%2Foci_return
  &OCI_VERSION=4.0&returntarget=_top

Beispiel · OCI-Warenkorb-Rückgabe an die HOOK_URL

<form method="post" action="{HOOK_URL}">
  <input type="hidden" name="NEW_ITEM-DESCRIPTION[1]" value="Safety gloves, size 9">
  <input type="hidden" name="NEW_ITEM-QUANTITY[1]"    value="20">
  <input type="hidden" name="NEW_ITEM-UNIT[1]"        value="PR">
  <input type="hidden" name="NEW_ITEM-PRICE[1]"       value="4.80">
  <input type="hidden" name="NEW_ITEM-CURRENCY[1]"    value="EUR">
  <input type="hidden" name="NEW_ITEM-MATGROUP[1]"    value="46181504">
  <input type="hidden" name="NEW_ITEM-VENDORMAT[1]"   value="GLV-09">
</form>

Die Feldnamen sind nach Zeile indiziert ([1], [2]…). Die Dokumentation des Kunden sagt Ihnen, welche Felder Pflicht sind, zum Beispiel eine Lieferanten-Materialnummer, eine Lieferzeit oder ein Langtext.

Welches nutzt Ihr Kunde?

Protokoll nach Einkaufssystem
EinkaufssystemProtokollRatgeber
SAP AribacXMLSAP Ariba PunchOut
CoupacXMLCoupa PunchOut
SAP S/4HANA, SRM, ECCOCISAP OCI PunchOut
JaggaercXMLJaggaer PunchOut
Ivalua, Oracle, WorkdaycXMLAlle Systeme
Meplato, SimenoOCI (und cXML)Alle Systeme

Wenn Sie unsicher sind: Die Lieferantendokumentation des Kunden sagt es auf den ersten Seiten. Manche SAP-Kunden nutzen SAP Ariba für indirekte Ausgaben und OCI-Kataloge in S/4HANA für direktes Material: Dann brauchen Sie beides.

cXML-PunchOut-Katalog-Integration: Was sich in Ihrem Shop ändert

Unabhängig vom Protokoll braucht ein Shop dieselben fünf Dinge, um als PunchOut-Katalog zu funktionieren:

  • Ein kundenspezifischer Katalog und Preise pro Kunde
  • Ein Klassifizierungscode für jedes Produkt (UNSPSC oder ECLASS)
  • Öffnen im Frame des Kunden: Frame-Header, Cookies und Sicherheitseinstellungen
  • Mengeneinheiten, die den Codes des Kunden zugeordnet sind
  • Bestellimport mit cXML OrderRequest (Premium-Tarif)

Beide auf einem Shop unterstützen

Viele Lieferanten haben am Ende Kunden mit beiden Protokollen. Zwei Integrationen zu bauen verdoppelt die Arbeit; ein Gateway, das beide spricht, lässt einen Shop jeden Kunden bedienen. Mit PunchOut Rocket konfigurieren Sie jeden Kunden einmal im Dashboard, wählen cXML oder OCI, und das Plugin in Ihrem Shop bleibt dasselbe.

PunchOut auf dem Shop, den Sie schon haben

PunchOut Rocket verbindet WooCommerce, Magento, PrestaShop und nopCommerce über cXML oder OCI mit SAP Ariba, Coupa und SAP. Ab 163 €/Monat pro Shop, 30 Tage kostenlos testen.

FAQ

Fragen

Was ist der Unterschied zwischen cXML und OCI?

cXML sendet XML-Dokumente über HTTPS und deckt auch die Bestellung ab (OrderRequest). OCI ist das Protokoll von SAP: Der Warenkorb geht als HTML-Formularfelder an eine HOOK_URL zurück, und die Bestellung erreicht den Lieferanten über einen separaten Kanal.

Welches Protokoll nutzt SAP Ariba?

cXML. SAP S/4HANA, SRM und ECC nutzen OCI; Coupa, Jaggaer, Ivalua und Oracle nutzen cXML.

Kann ein Shop sowohl cXML als auch OCI unterstützen?

Ja. Mit PunchOut Rocket beantwortet derselbe WooCommerce-, Magento-, PrestaShop- oder nopCommerce-Shop cXML- und OCI-Sessions; das Gateway wählt das Protokoll pro Kunde.

Was ist eine cXML-PunchOut-Katalog-Integration?

Die Verbindung, über die ein Kunde Ihren Shop per cXML aus seinem Beschaffungssystem öffnet, einen Warenkorb füllt und ihn mit einer PunchOutOrderMessage zurückgibt. Die freigegebene Bestellung kommt dann als OrderRequest an.

Ist OCI älter als cXML?

Beide stammen aus den späten 1990er-Jahren, und beide sind noch aktuell. Welches Sie brauchen, entscheidet das System des Kunden, nicht der Lieferant.

Weiterlesen

Verwandte Ratgeber

30 Tage kostenlos testen · keine Kreditkarte

Ihr Kunde wartet. Legen wir los.

Installieren Sie das Plugin noch heute und führen Sie am Nachmittag Ihre erste Test-Session durch. Wenn Ihre Frist knapp ist, sagen Sie es uns: Wir bearbeiten Ihre Anfrage mit Priorität.