Bestehender Kunde? Anmelden
Sie betreiben Ihre E-Commerce-Plattform als Eigentwicklung? Das vorliegende Dokument unterstützt Sie bei der Implementierung der notwendigen Schnittstellen zu unserem PunchOut-Gateway.
Die initiale Anlage und die spätere Aktualisierung von Kunden erfolgt durch den Sie über die PunchCommerce-Weboberfläche. Für jeden Kunden werden durch den Lieferanten die nachfolgenden Parameter gepflegt:
Einsprungadresse Url des Onlineshops zu der der Kunde nach erfolgreicher Authentifizierung weitergeleitet wird
Kundenkennung (uID) Wert der zur Identifizierung des Kunden an die Einsprungadresse übergeben wird
Nach der erfolgreichen Authentifizierung des Kunden auf unserem Gateway erfolgt die Weiterleitung an die in der Kundenkonfiguration definierte Einsprungadresse.
PunchCommerce unterstützt zur Zeit den „klassischen“ PunchOut und den PunchOut in einem iFrame innerhalb des aufrufenden E-Procurement- oder ERP-Systems und den PunchOut in einem separaten Browser-Fenster.
Die Einsprungadresse wird hierbei um die Parameter sID (Session-Identifier) und uID (Kundenkennung) erweitert, so dass die endgültige URL nach dem nachfolgenden Schema aufgebaut ist:
https://{hostname}.{domain}.{tld}/punchcommerce/authenticate?sID={UUID}&uID= {customer.identifier}
Es muss sichergestellt werden, dass sämtliche Header, die eine Einbettung als iFrame und den Zugriff auf Cookies aus dem Hauptframe während der PunchOut-Session verhindern temporär entfernt werden, wenn der User angemeldet ist.
Der Benutzer in ihrem System ist so zu erweitern, dass die uID am Kunden gepflegt werden kann. Die sID wird von uns für jede PunchOut-Session generiert und entspricht einer UUID.
Da es sich typischerweise um einen Service-Benutzer handelt und im Rahmen des PunchOuts mehrere Personen den gleichen Service-Benutzer verwenden, muss sichergestellt werden, dass verschiedene Warenkörbe parallel in unterschiedlichen Sessions des gleichen Service-Benutzers verwendet werden können.
Der Warenkorb muss zu Beginn einer PunchOut-Session leer sein.
Nachdem der Kunde seinen Warenkorb abschließend gefüllt hat, muss der Warenkorb als JSON-Objekt gemeinsam mit dem Session-Identifer (sID) zurück an unser Gateway übermittelt werden. Zuschläge oder Rabatte werden als eigene Warenkorb-Position an unser Gateway übergeben - dies gilt auch für Versandkosten.
{
"basket":[
{
"product_ordernumber": "23762", "product_name": "Pergamentpapier", "quantity": 1,
"item_price": 2.623,
"price": 2.623,
"price_net": 2.2042016806723, "tax_rate": 19,
"product": {
"id": "21312432343",
"ordernumber": "23762",
"brand": "Netzdirektion",
"brand_ordernumber": "67906",
"title": "Pergamentpapier",
"category": "Testkategorie",
"description": "1/8 Bogen weiß",
"description_long": "67906 Pergamentpapier 1/8 Bogen weiß", "image_url": "",
"price": 2.623,
"tax_rate": 19,
"purchase_unit": 12.5, "reference_unit": 1,
"unit": "kg",
"unit_name": "kg", "packaging_unit": "Karton", "weight": 0,
"shipping_time": 8,
"classification_type": "ECLASS",
"classification": "90909090",
"custom_field1": "0.19",
"custom_field2": "BX",
...
"custom_field10": null
}
]
}
Hier ist ein http-POST-Request auf die nachfolgende Adresse auszuführen der Request-Body sollte den Warenkorb analog der nachfolgenden Struktur enthalten.
https://www.punchcommerce.de/gateway/v3/return?sID={UUID}
PunchCommerce wendet die für den Kunden definierte Feldzuordnung auf den Warenkorb an und übermittelt den Warenkorb an das aufrufende E—Procurement-System über das jeweilige PunchOut-Protokoll. Details können der aktuellen Swagger-Dokumentation entnommen werden.
Links