This video is embedded in YouTube/s extended data protection mode, which blocks the setting of YouTube cookies until you actively click on playback. By clicking on the play button, you give your consent for YouTube to set cookies on the end device you are using, which can also be used to analyze usage behavior for market research and marketing purposes. You can find more information about the use of cookies by YouTube in Google/s cookie policy at https://policies.google.com/technologies/types?hl=de.
With PunchCommerce’s revamped order module, you can securely receive incoming orders from various systems – particularly in cXML format – and forward them seamlessly to your target systems.
Orders are automatically confirmed as received upon receipt. You then have two options:
This significantly reduces manual effort, prevents data transfer errors and makes collaboration with your customers’ e-procurement systems more efficient.
Please note: The functions for defining your own data formats and managing multiple order profiles are currently only available to selected customers under our Enterprise contracts.
Order profiles are at the heart of our order module. Here, you can define your own data model and make it available via a REST API. An order profile can be assigned to one or more customers.
Procurement systems such as Ariba® or Coupa can be configured so that new orders from your customers are automatically sent as cXML OrderRequest documents to the following address:
https://<instance>.enterprise.punchcommerce.de/api/v1/orders/cxml
The endpoint expects a cXML OrderRequest document in accordance with the specification in Chapter 7 of the cXML Reference Guide.
Important: Orders can only be received for customers to whom you have assigned an order profile. Orders for unknown customers, or customers without a profile, are automatically rejected and are not available for processing via our API.
<?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>
Provided no errors occur whilst processing the order, our system will respond with the following response to confirm receipt. No commercial obligation arises at this stage:
<cXML payloadID="9949494" xml:lang="en" timestamp="1999-03-12T18:39:09-08:00">
<Response>
<Status code="200" text="OK"/>
</Response>
</cXML>
For each order profile, individual access credentials in the form of a token and a URL for our REST API are generated.
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"
},
...
]
}
}
The response depends on the data model you have configured for the corresponding order profile in our system.
GET {{punchcommerce_host}}/api/v1/profile/{{profile_id}}/order/{{order_id}}
Example 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 - ACCOUNTS DEPARTMENT",
"street": "Walter-Flex-Str. 27",
"postcode": "24000",
"city": "Hamburg",
"country": "Germany"
},
"shipping": {
"company": "FOOBAR GMBH",
"street": "Walter-Flex-Str. 27",
"postcode": "65428",
"city": "Rüsselsheim",
"country": "Germany"
},
"items": [
{
"index": 1,
"ordernumber": "FOOBAR_VK-deutsch_up",
"quantity": 100,
"name": "FOOBAR Business Card (German)",
"unit_price": "0.17",
"unit": "EA"
}
]
}
}
}
In addition to simply retrieving orders via the REST API, orders can also be automatically forwarded to shop systems. We currently support Shopware 6 in particular. Support for further systems is in the pipeline.
PUNCH- in the order number.Note: IDs for payment methods or delivery methods that have been deleted in Shopware may trigger errors. Please retest and save the connection in PunchCommerce after making changes in Shopware.
Why are no options visible after refreshing the page? The lists only load after clicking ‘Test’. However, your saved values are retained.
Can I configure multiple target systems? Yes, one target system per profile. Multiple profiles are possible.
Do I have to fill in all the additional fields? No, but it is recommended. Default values make the process more robust.
Why is there ‘PUNCH-’ in the order number? This makes it easy to identify orders from PunchCommerce in the Shopware backend.
How secure is my data? Secrets are stored confidentially; only encrypted connections (HTTPS) are permitted.
POST /api/oauth/token?Technical note: The connection test records partial successes. It may be marked as “successful” even though individual option lists have not been loaded. The notes in the results will then provide further details.
Please have the following information to hand when contacting support:
This will enable us to assist you quickly and accurately.