We are on company holidays from December 20th, 2024 to January 10th, 2025 and until then we wish you a Merry Christmas and a Happy New Year 2025.

PunchOut via cXML-Gateway

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

PunchCommerce® ist ein Produkt der Netzdirektion GmbH