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.

Empfangen Sie Bestellungen unterschiedlicher cXML-Kunden und definieren Sie Ihr eigenes Datenformat für unsere REST-API. Achtung: Diese Funktion steht 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.

Dazu wechseln Sie zunächst in den Bereich Bestellprofile und klicken dort auf "Neues Bestellprofil erstellen". Jetzt haben Sie die Möglichkeit, einen Namen für Ihr Profil zu vergeben und eine cXML-Datei vom Typ "OrderRequest" hochzuladen.

Im nächsten Schritt erstellen Sie ein Datenmodell für Ihr Bestellprofil, wobei wir für jedes neue Bestellprofil einen Vorschlag auf Basis des cXML-Datenmodells generieren.

Ü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 die u.g. Adresse übertragen werden. Die Adresse ist für alle Ihre Kunden identisch und verwendet die normale Authentifizierung des cXML-Standards.

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 Emfpang 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>
    <From>
        <Credential domain="AribaNetworkUserId">
            <Identity>admin@acme.com</Identity>
        </Credential>
    </From> 
    <To>
        <Credential domain="DUNS">
            <Identity>114315195</Identity>
        </Credential>
    </To>
    <Sender>
        <Credential domain="AribaNetworkUserId">
            <Identity>sysadmin@ariba.com</Identity>
            <SharedSecret>abracadabra</SharedSecret>
        </Credential>
        <UserAgent>Network Hub V1.1</UserAgent>
    </Sender>
</Header>
<Request>
    <OrderRequest>
        <OrderRequestHeader orderID="DO102880" orderDate="2012-08-03T08:49:09+07:00" type="new">
            <Total>
                <Money currency="USD">86.50</Money>
            </Total>
            <ShipTo>
                <Address isoCountryCode="US" addressID="1000467">
                    <Name xml:lang="en">Acme, Inc.</Name>
                    <PostalAddress name="default">
                        <DeliverTo>John Q. Smith</DeliverTo>
                        <DeliverTo>Buyers Headquarters</DeliverTo>
                        <Street>123 Main Street</Street>
                        <City>Mountain View</City>
                        <State isoStateCode="US-CA">CA</State>
                        <PostalCode>94089</PostalCode>
                        <Country isoCountryCode="US">United States</Country>
                    </PostalAddress>
                    <Email name="default">john_smith@acme.com</Email>
                    <Phone name="work">
                        <TelephoneNumber>
                            <CountryCode isoCountryCode="US">1</CountryCode>
                            <AreaOrCityCode>800</AreaOrCityCode>
                            <Number>5555555</Number>
                        </TelephoneNumber>
                    </Phone>
                </Address>
            </ShipTo>
            <BillTo>
                <Address isoCountryCode="US" addressID="12">
                    <Name xml:lang="en">Acme Accounts Payable</Name>
                    <PostalAddress name="default">
                        <Street>124 Union Street</Street>
                        <City>San Francisco</City>
                        <State isoStateCode="US-CA">CA</State>
                        <PostalCode>94128</PostalCode>
                        <Country isoCountryCode="US">United States</Country>
                    </PostalAddress>
                    <Phone name="work">
                        <TelephoneNumber>
                            <CountryCode isoCountryCode="US">1</CountryCode>
                            <AreaOrCityCode>415</AreaOrCityCode>
                            <Number>6666666</Number>
                        </TelephoneNumber>
                    </Phone>
                </Address>
            </BillTo>
            <LegalEntity>
                <IdReference domain="CompanyCode" identifier="CH01">
                  <Description>SAP AG</Description>
                </IdReference>
            </LegalEntity>
            <OrganizationalUnit>
                <IdReference domain=" PurchasingOrganization" identifier="SCP">
                    <Description> SCPM Purchasing Org </Description>
                </IdReference>
            </OrganizationalUnit>
            <OrganizationalUnit>
                <IdReference domain=" PurchasingGroup" identifier="0001">
                    <Description> PGP Buyer </Description>
                </IdReference>
            </OrganizationalUnit>
            <Shipping>
                <Money currency="USD">10.00</Money>
                <Description xml:lang="en-US">FedEx 2-day</Description>
            </Shipping>
            <Tax>
                <Money currency="USD">1.5</Money>
                <Description xml:lang="en">CA State Tax</Description>
            </Tax>
            <Payment>
              <PCard number="1234567890123456" expiration="2015-03-12"/>
            </Payment>
        </OrderRequestHeader>
            <ItemOut quantity="2" lineNumber="1">
                <ItemID>
                    <SupplierPartID>220-3165</SupplierPartID>
                    <SupplierPartAuxiliaryID>E000028901</SupplierPartAuxiliaryID>
                </ItemID>
                <ItemDetail>
                    <UnitPrice>
                        <Money currency="USD">55.00</Money>
                        <Modifications>
                            <Modification>
                                <OriginalPrice>
                                    <Money currency = "USD">50.00</Money>
                                </OriginalPrice>
                                <AdditionalCost>
                                    <Money currency = "USD">5</Money>
                                </AdditionalCost>
                                <ModificationDetail endDate = "2013-11-30T10:15:00-08:00" name = "Royalties" startDate = "2012-08-03T10:15:00-08:00">
                                    <Description xml:lang = "en-US">Charge for Royalties</Description>
                                </ModificationDetail>
                            </Modification>
                        </Modifications>
                    </UnitPrice>
                    <Description xml:lang="en">Laptop Computer Notebook Pentium® II
                    processor w/AGP, 300 MHz, with 12.1&quot; TFT XGA
                    Display</Description>
                    <UnitOfMeasure>EA</UnitOfMeasure>
                    <Classification domain="UNSPSC">43171801</Classification>
                    <URL>http://www.supplier.com/Punchout.asp</URL>
                    <Extrinsic name="ExtDescription">Enhanced keyboard</Extrinsic>
                </ItemDetail>
                <Distribution>
                    <Accounting name="DistributionCharge">
                        <AccountingSegment id="7720">
                            <Name xml:lang="en-US">Account</Name>
                            <Description xml:lang="en-US">Office Supplies
                            </Description>
                        </AccountingSegment>
                        <AccountingSegment id="610">
                            <Name xml:lang="en-US">Cost Center</Name>
                            <Description xml:lang="en-US">Engineering Management
                            </Description>
                        </AccountingSegment>
                    </Accounting>
                    <Charge>
                        <Money currency="USD">20.00</Money>
                    </Charge>
                </Distribution>
            </ItemOut>
        </OrderRequest>
    </Request>
</cXML>

Beispiel-Antwort

Unser System antwortet, wenn kein Fehler bei der Verarbeitung der Bestellung auftritt, mit dem nachfolgenden (beispielhaften) Response als Bestätigung des Eingangs der Bestellung. 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

Abfrage einer Liste aller eingegangenen Bestellungen:

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"
        },
        {
            "id": "b8f7e5e1-b4da-4bc6-b4b1-7f2e85d3b99d",
            "customer_id": "69f14942-178d-4d57-b6d5-fdd9d4aee407",
            "customer": "Mraz Inc",
            "created_at": "2022-10-03T13:20:29.000000Z",
            "link": "https://punchcommerce.local/api/v1/profile/4a152855-1a26-4059-a637-4d56cc151d9e/order/b8f7e5e1-b4da-4bc6-b4b1-7f2e85d3b99d"
        },
        {
            "id": "f09473fc-876b-4005-bd7e-df8bdd53ccbc",
            "customer_id": "69f14942-178d-4d57-b6d5-fdd9d4aee407",
            "customer": "Mraz Inc",
            "created_at": "2022-10-03T13:12:15.000000Z",
            "link": "https://punchcommerce.local/api/v1/profile/4a152855-1a26-4059-a637-4d56cc151d9e/order/f09473fc-876b-4005-bd7e-df8bdd53ccbc"
        },
        {
            "id": "e7eed80a-6d0d-4657-8d85-ae4e4c9f13ae",
            "customer_id": "69f14942-178d-4d57-b6d5-fdd9d4aee407",
            "customer": "Mraz Inc",
            "created_at": "2022-09-19T09:43:09.000000Z",
            "link": "https://punchcommerce.local/api/v1/profile/4a152855-1a26-4059-a637-4d56cc151d9e/order/e7eed80a-6d0d-4657-8d85-ae4e4c9f13ae"
        },
        {
            "id": "3b379913-77a0-441a-af57-d45308a94738",
            "customer_id": "69f14942-178d-4d57-b6d5-fdd9d4aee407",
            "customer": "Mraz Inc",
            "created_at": "2022-09-19T09:43:07.000000Z",
            "link": "https://punchcommerce.local/api/v1/profile/4a152855-1a26-4059-a637-4d56cc151d9e/order/3b379913-77a0-441a-af57-d45308a94738"
        }
    ]
}

Details zu einer Bestellung

Achtung, die Antwort auf diesen Request ist abhängig vom Datenmodell, dass Sie für das zugehörige Bestellprofil in unserem System konfiguriert haben.

{{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"
            }
        ]
    }
}
PunchCommerce® ist ein Produkt der Netzdirektion GmbH