The gateway mode enables direct purchasing within your e-commerce application without having to deal with the cXML protocol on a technical level.
Management of customers
You initially create and later update customers via the PunchCommerce web interface. You have to maintain the following parameters for each customer:
Parameters |
Description |
field mapping |
Field mapping to be used for the customer |
entry address |
Address to which the customer is forwarded after successful authentication |
Customer ID |
Value that is passed to the entry address to identify the customer |
Supported cXML functionality
PunchCommerce supports PunchOut Level 1 and 2 directly from Ariba or other systems that use the cXML protocol.
Authentication and forwarding in supplier system
The authentication at our gateway takes place as usual by calling up the PunchCommerce entry address and transferring the following parameters. After the customer has been successfully authenticated, it is forwarded to the entry address defined in the customer configuration (see customer management).
The entry address is extended by the parameters sID (session identifier) and uID (customer ID), so that the final URL is structured according to the following scheme:
https://{hostname}.{domain}.{tld}?sID={UUID}&uID={customer.identifier}
The supplier is responsible for authentication in the supplier system. For Shopware 5 and 6 we provide plugins via the Shopware Store:
Transmission of the shopping cart (PunchOut)
After the customer has completed their shopping process, the supplier's e-commerce application must transmit the shopping cart as a JSON object together with the session identifier (sID) back to our gateway solution.
A http-POST-Request to the address https://www.punchcommerce.de/gateway/v3/return?sID={UUID} is to be executed here. The request body should contain the shopping cart in the same way as the structure below.
{
"basket":[
{
"product_ordernumber": "10001",
"product_name": "Klettergerüst",
"quantity": 1.50,
"item_price": 100,
"price": 178.50,
"price_net": 150,
"tax_rate": 19,
"product": {
"id": "42",
"ordernumber": "10001",
"brand": "Netzdirektion",
"brand_ordernumber": "999999",
"customer_ordernumber": "2342343295649586"
"title": "Klettergerüst",
"category": "Kinderspielgeräte",
"description": "Ein pädagogisch wertvolles Klettergerüst.",
"description_long": "Nullam quis risus eget urna mollis ornare vel eu leo. Donec ullamcorper nulla non metus auctor fringilla. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Vestibulum id ligula porta felis euismod semper. Donec id elit non mi porta gravida at eget metus.",
"image_url": "",
"price": 2623,
"tax_rate": 19,
"purchase_unit": null,
"reference_unit": null,
"unit": null,
"unit_name": null,
"packaging_unit": "Palette",
"weight": 230,
"shipping_time": 23,
"classification_type": "ECLASS",
"classification": "90909090",
"custom_field1": "0.19",
"custom_field2": "BX",
...
"custom_field10": null
}
}
]
}
PunchCommerce applies the field mapping defined for your customer to the shopping cart and transmits the shopping cart to the calling ERP system via the cXML protocol.
Swagger documentation
The current API specification can be found at: https://www.punchcommerce.de/swagger