PunchOut via cXML gateway

Gateway mode enables direct purchasing within your e-commerce application without it having to deal with the cXML protocol on a technical level.

Management of customers

The initial creation and subsequent updating of customers is carried out by you via the PunchCommerce web interface. You must maintain the following parameters for each customer:

Parameter 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 transferred to the entry address to identify the customer

Supported cXML functionality

PunchCommerce supports PunchOut Level 1 and Level 2 directly from Ariba or other systems that support the cXML protocol.

Authentication and forwarding in supplier system

Authentication at our gateway is carried out as usual by calling up the PunchCommerce entry address and transferring the following parameters. After successful authentication of the customer, the forwarding to the entry address defined in the customer configuration (see customer management) takes place.

The entry address is extended by the parameters sID (session identifier) and uID (customer identifier) so that the final URL is structured according to the following scheme:

    https://{hostname}.{domain}.{tld}?sID={UUID}&uID={customer.identifier}

Authentication in the supplier system is the responsibility of the supplier. We provide plugins for Shopware 5 and 6 via the Shopware Store:

Transmission of the shopping basket (PunchOut)

After the customer has completed their purchasing process, the supplier's e-commerce application must transmit the shopping basket back to our gateway solution as a JSON object together with the session identifier (sID).

An http-POST request to the address https://www.punchcommerce.de/gateway/v3/return?sID={UUID} must be executed here. The request body should contain the shopping basket analogue to the following structure.

{
  "basket":[
        {
            "product_ordernumber": "10001",
            "product_name": "Climbing frame",
            "quantity": 1.50,
            "item_price": 100,
            "price": 178.50,
            "price_net": 150,
            "tax_rate": 19,
            "product": {
                "id": "42",
                "ordernumber": "10001",
                "brand": "network_direction",
                "brand_ordernumber": "999999",
                "customer_ordernumber": "2342343295649586"
                "title": "Climbing frame",
                "category": "Children's play equipment",
                "description": "An educational climbing frame.",
                "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": "pallet",
                "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 basket and transmits the shopping basket to the calling ERP system via the cXML protocol.

Swagger documentation

You can find the current API specification at: https://www.punchcommerce.de/swagger

PunchCommerce® ist ein Produkt der Netzdirektion GmbH