Gateway mode enables direct purchasing within your e-commerce application without it having to deal with the cXML protocol at a technical level.
You create customers initially and update their details later 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 |
| Landing page | Address to which the customer is redirected following successful authentication |
| Customer ID | Value passed to the landing page to identify the customer |
PunchCommerce supports PunchOut Level 1 and Level 2 directly from Ariba or other systems that support the cXML protocol.
Authentication at our gateway takes place as usual by calling the PunchCommerce entry URL and passing the following parameters. Once the customer has been successfully authenticated, they are redirected to the entry URL defined in the customer configuration (see Customer Management).
The entry URL is expanded to include 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 within the supplier’s system is the responsibility of the supplier. For Shopware 5 and 6, we provide plugins via the Shopware Store:
Once the customer has completed their purchase process, the supplier’s e-commerce application must send the shopping basket back to our gateway solution as a JSON object, together with the session identifier (sID).
An HTTP POST request must be sent to the address https://www.punchcommerce.de/gateway/v3/return?sID={UUID}; the request body should contain the shopping basket in accordance with the structure shown below.
{
"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": "Netzdirektion", "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.
The latest API specification can be found at: https://www.punchcommerce.de/swagger