Verarbeitung von cXML-Bestellungen (z. B. aus SAP Ariba®)

Dieses Video ist im erweiterten Datenschutzmodus von Youtube eingebunden, der das Setzen von Youtube-Cookies solange blockiert, bis ein aktiver Klick auf die Wiedergabe erfolgt. Mit Klick auf den Wiedergabe-Button erteilen Sie Ihre Einwilligung darin, dass Youtube auf dem von Ihnen verwendeten Endgerät Cookies setzt, die auch einer Analyse des Nutzungsverhaltens zu Marktforschungs- und Marketing-Zwecken dienen können. Näheres zur Cookie-Verwendung durch Youtube finden Sie in der Cookie-Policy von Google unter https://policies.google.com/technologies/types?hl=de.

Einleitung

Mit dem überarbeiteten Bestellmodul von PunchCommerce können Sie eingehende Bestellungen aus unterschiedlichen Systemen – insbesondere im cXML-Format – sicher entgegennehmen und nahtlos in Ihre Zielsysteme weiterleiten.

Bestellungen werden nach Eingang automatisch als empfangen bestätigt. Anschließend haben Sie zwei Optionen:

  1. Abruf über REST-API – Sie integrieren das Modul flexibel in eigene Systeme.
  2. Automatische Weiterleitung – z. B. in Shopware 6 oder andere Shopsysteme.

Damit reduziert sich manueller Aufwand erheblich, Übertragungsfehler werden vermieden, und die Zusammenarbeit mit den E-Procurement-Systemen Ihrer Kunden wird effizienter.

Achtung: Die Funktionen zur Definition eigener Datenformate und zum Betrieb mehrerer Bestellprofile stehen aktuell nur ausgewählten Kunden im Rahmen unserer Enterprise-Verträge zur Verfügung.


Erstellung eines Bestellprofils

Bestellprofile sind der Kern unseres Bestellmoduls. Hier haben Sie die Möglichkeit, ein eigenes Datenmodell zu definieren und dieses über eine REST-API zur Verfügung zu stellen. Ein Bestellprofil kann hierbei einem oder mehreren Kunden zugewiesen sein.

  1. Wechseln Sie in den Bereich Bestellprofile und klicken Sie auf Neues Bestellprofil erstellen.
  2. Vergeben Sie einen Namen für Ihr Profil.
  3. Laden Sie eine cXML-Datei vom Typ OrderRequest hoch.
  4. PunchCommerce generiert auf Basis des cXML-Datenmodells einen Vorschlag für das Datenmodell, den Sie bei Bedarf anpassen können.

Übermittlung von Bestellungen aus Drittsystemen

Procurement-Systeme wie z. B. Ariba® oder Coupa können so konfiguriert werden, dass neue Bestellungen Ihrer Kunden als cXML-OrderRequest automatisiert an folgende Adresse übertragen werden:

https://<instanz>.enterprise.punchcommerce.de/api/v1/orders/cxml

Der Endpunkt erwartet ein cXML-OrderRequest-Dokument gemäß Spezifikation in Kapitel 7 des cXML-Reference Guides.

Wichtig: Der Empfang von Bestellungen ist nur für Kunden möglich, denen Sie ein Bestellprofil zugewiesen haben. Bestellungen für unbekannte Kunden, oder Kunden ohne Profil, werden automatisch abgelehnt und stehen für eine Verarbeitung über unsere API nicht zur Verfügung.

Beispiel-Dokument

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">
<cXML xml:lang="en-US" payloadID="93369535150910.10.57.136" timestamp="2000-08-03T08:49:11+07:00">
  <Header>
    ...
  </Header>
  <Request>
    <OrderRequest>
      <OrderRequestHeader orderID="DO102880" orderDate="2012-08-03T08:49:09+07:00" type="new">
        ...
      </OrderRequestHeader>
      <ItemOut quantity="2" lineNumber="1">
        ...
      </ItemOut>
    </OrderRequest>
  </Request>
</cXML>

Beispiel-Antwort

Unser System antwortet, wenn kein Fehler bei der Verarbeitung der Bestellung auftritt, mit folgendem Response als Bestätigung des Eingangs. In diesem Schritt entsteht keine kaufmännische Verbindlichkeit:

<cXML payloadID="9949494" xml:lang="en" timestamp="1999-03-12T18:39:09-08:00">
  <Response>
    <Status code="200" text="OK"/>
  </Response>
</cXML>

Zugriff auf die Bestellungen über unsere REST-API

Für jedes Bestellprofil werden individuelle Zugangsdaten in Form eines Tokens und einer URL für unsere REST-API erzeugt.

Liste aller Bestellungen eines Profils

GET {{punchcommerce_host}}/api/v1/profile/{{profile_id}}

Response:

{
  "data": {
    "id": "4a152855-1a26-4059-a637-4d56cc151d9e",
    "name": "adsd",
    "customers": [
      {
        "uuid": "69f14942-178d-4d57-b6d5-fdd9d4aee407",
        "name": "Mraz Inc"
      }
    ],
    "orders": [
      {
        "id": "cb074373-60d9-4c1b-9453-988602da457e",
        "customer_id": "69f14942-178d-4d57-b6d5-fdd9d4aee407",
        "customer": "Mraz Inc",
        "created_at": "2022-10-03T13:21:16.000000Z",
        "link": "https://punchcommerce.local/api/v1/profile/4a152855-1a26-4059-a637-4d56cc151d9e/order/cb074373-60d9-4c1b-9453-988602da457e"
      },
      ...
    ]
  }
}

Details zu einer Bestellung

Die Antwort ist abhängig vom Datenmodell, das Sie für das zugehörige Bestellprofil in unserem System konfiguriert haben.

GET {{punchcommerce_host}}/api/v1/profile/{{profile_id}}/order/{{order_id}}

Beispiel-Response:

{
  "data": {
    "meta": {
      "request_id": "1637737323553.569506334.000002897@IrwnYChEL2oZa48FesaJ62+R18I=",
      "cxml_version": "1.2.044",
      "language": "en-US"
    },
    "order": {
      "total": "17",
      "currency": "EUR",
      "date": "2021-11-23T23:01:59-08:00",
      "reference": "EP686328",
      "version": 1,
      "billing": {
        "company": "FOOBAR GMBH - RECHNUNGSPRUEFUNG",
        "street": "Walter-Flex-Str. 27",
        "zip": "24000",
        "city": "Hamburg",
        "country": "Deutschland"
      },
      "shipping": {
        "company": "FOOBAR GMBH",
        "street": "Walter-Flex-Str. 27",
        "zip": "65428",
        "city": "Rüsselsheim",
        "country": "Deutschland"
      },
      "items": [
        {
          "index": 1,
          "ordernumber": "FOOBAR_VK-deutsch_up",
          "quantity": 100,
          "name": "FOOBAR Visitenkarte (Deutsch)",
          "unit_price": "0.17",
          "unit": "EA"
        }
      ]
    }
  }
}

Weiterleitung von Bestellungen

Neben dem reinen Abruf über die REST-API können Bestellungen auch automatisch an Shopsysteme weitergeleitet werden. Aktuell unterstützen wir insbesondere Shopware 6. Weitere Systeme befinden sich in Vorbereitung.

Funktionsweise

  1. Eingang einer Bestellung (z. B. cXML).
  2. PunchCommerce transformiert die Daten in ein internes Standardformat.
  3. Konfiguriertes Zielsystem (Shopware 6) wird über die Admin-API beliefert.
  4. PunchCommerce berücksichtigt dabei Fallbacks für Zahlungsarten, Versandarten, Währungen und Steuersätze.

Konfiguration

  • Zielsystem im Bestellprofil auswählen (z. B. Shopware).
  • Zugangsdaten hinterlegen: URL, Client-ID (Access Key), Client-Secret.
  • Verbindung testen (PunchCommerce prüft Authentifizierung und lädt Zahlungsarten, Versandarten, Währungen, Steuersätze).
  • Standardwerte konfigurieren, falls nicht eindeutig aus der Bestellung ableitbar.

Ergebnis

  • Bestellung erscheint direkt im Shopware-Backend mit dem Präfix PUNCH- in der Bestellnummer.
  • Fehlende Produkte können je nach Einstellung ignoriert oder als Fehler behandelt werden.
  • Prozess ist transparent: Erfolg und Fehler werden im PunchCommerce-Interface protokolliert.

Hinweis: IDs für Zahlungsarten oder Versandarten, die in Shopware gelöscht wurden, können Fehler auslösen. Bitte nach Änderungen in Shopware die Verbindung in PunchCommerce erneut testen und speichern.


Betrieb & Qualitätssicherung

  • Prüfen Sie regelmäßig die Erfolgsmeldungen im PunchCommerce-Interface.
  • Halten Sie Stammdaten (Produkte, Währungen, Steuern) aktuell.
  • Definieren Sie eine klare Regel für fehlende Produkte (ignorieren oder Abbruch).

Checkliste für den Go-Live

  • [ ] Verbindungstest erfolgreich
  • [ ] Zahlungsarten, Versandarten, Währungen, Steuersätze in Shopware gepflegt
  • [ ] Zusatzfelder in PunchCommerce gesetzt und gespeichert
  • [ ] cXML-Sender kennt den korrekten Endpoint und Authentifizierung
  • [ ] Prozess für fehlende Produkte definiert
  • [ ] Testbestellung erfolgreich angelegt

Häufige Fragen (FAQ)

Warum sind nach einem Reload keine Optionen sichtbar? Die Listen laden erst nach einem Klick auf „Testen“. Ihre gespeicherten Werte bleiben jedoch erhalten.

Kann ich mehrere Zielsysteme konfigurieren? Ja, pro Profil ein Zielsystem. Mehrere Profile sind möglich.

Muss ich alle Zusatzfelder ausfüllen? Nein, aber empfohlen. Defaults machen den Prozess robuster.

Warum „PUNCH-“ in der Bestellnummer? So lassen sich Bestellungen aus PunchCommerce im Shopware‑Backend leicht identifizieren.

Wie sicher sind meine Daten? Secrets werden vertraulich gespeichert, nur verschlüsselte Verbindungen (HTTPS) sind erlaubt.


Troubleshooting (Fehlersuche)

  • Verbindungstest schlägt fehl:
    • URL korrekt? Erreichbar über HTTPS?
    • Access Key/Secret richtig und mit ausreichenden Rechten?
    • Firewall/Proxy blockiert POST /api/oauth/token?
  • Optionen (Zahlung/Versand/Währung/Steuer) leer:
    • „Testen“ ausführen; in Shopware müssen entsprechende Entitäten existieren und aktiv sein.
  • Bestellung wird in Shopware abgelehnt wegen ungültiger IDs:
    • Alte IDs in PunchCommerce gespeichert? „Testen“ klicken, neue Optionen wählen, speichern.
  • cXML kommt an, aber Produkte fehlen:
    • Option „Nicht vorhandene Produkte ignorieren“ je nach Prozessanforderung setzen. Prüfen Sie Produktstammdaten in Shopware.
  • Zeitüberschreitungen:
    • Netzwerk prüfen; erneuter Versuch. Bei großen Optionstabellen kann der erste Test etwas länger dauern.

Technischer Hinweis: Der Verbindungstest sammelt Teil‑Erfolge. Es kann „erfolgreich“ sein, obwohl einzelne Optionslisten nicht geladen wurden. Die Hinweise im Ergebnis nennen dann Details.

Bitte halten Sie bei Supportanfragen bereit:

  • Shopware-Version & Shop-URL
  • Zeitpunkt & Fehlermeldung
  • Screenshots der Einstellungen (ohne Secret)
  • Beispiel einer cXML-Order (anonymisiert)

Damit können wir Ihnen schnell und präzise helfen.

PunchCommerce® ist ein Produkt der Netzdirektion GmbH