Add-On: Coupa-Anbindung
Mit dem Modul "Coupa" kann jeder Shop der PRINT LOUNGE direkt an eine externe Coupa-Instanz angebunden und somit der Bestell- und Freigabevorgang direkt in bestehende Prozesse integriert werden.
Damit eine Anmeldung aus einer Coupa-Instanz heraus möglich ist, muss innerhalb der PRINT LOUNGE auch das Modul "SSO" aktiviert und konfiguriert werden. Hierüber werden die übergebenen Benutzer sicher in dem jeweiligen Shop-System angemeldet. So kann der Zugriff auf unterschiedliche Produkte und Warengruppen direkt über die Administration konfiguriert werden.
Konfiguration des Moduls
Für die Konfiguration der Coupa-Anbindung muss zunächst ein Shared Secret in der Coupa-Instanz angelegt werden. Anschließend stehen die folgenden Einstellungen in der Modulkonfiguration der PRINT LOUNGE zur Verfügung:
Einstellung | Beschreibung |
---|---|
Hostname des COUPA-Systems | Hier muss die externe URL der Coupa-Instanz hinterlegt werden, um bspw. einen Rücksprung in das externe System nach Bestellabschluss zu ermöglichen. |
Shared Secret | Der in der Coupa-Instanz erzeugte Shared Secret muss hier hinterlegt werden, um den Zugriff sicher zu authentifizieren. Hinweis: Diese Einstellung wird in der Datenbank verschlüsselt abgespeichert und wird bei der Verwendung wieder entschlüsselt. |
PunchOutOrderMessage-Template | Das PunchOutOrderMessage-Template (POOM) wird nach Bestellabschluss an die Coupa-Instanz übermittelt und sollte alle Informationen zu dem Warenkorb enthalten. Dieses Template kann mithilfe von Smarty dynamisch konfiguriert werden, wobei verschiedene Variablen mit Informationen zu der Bestellung zur Verfügung stehen. |
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd"> <cXML payloadID="{$punchOutSetupRequest->payloadId}" xml:lang="{$punchOutSetupRequest->language}" timestamp="{$punchOutSetupRequest->timestamp->format('c')}" version="1.2.0.14"> <Header> <From> <Credential domain="{$punchOutSetupRequest->fromCredential->domain}"> <Identity>{$punchOutSetupRequest->fromCredential->identity}</Identity> </Credential> </From> <To> <Credential domain="{$punchOutSetupRequest->toCredential->domain}"> <Identity>{$punchOutSetupRequest->toCredential->identity}</Identity> </Credential> </To> <Sender> <Credential domain="{$punchOutSetupRequest->senderCredential->domain}"> <Identity>{$punchOutSetupRequest->senderCredential->identity}</Identity> </Credential> <UserAgent/> </Sender> </Header> <Message deploymentMode="production"> <PunchOutOrderMessage> <BuyerCookie>{$punchOutSetupRequest->requestBody->buyerCookie}</BuyerCookie> <PunchOutOrderMessageHeader operationAllowed="edit" quoteStatus="final"> <Total> <Money currency="{$order->total->getCurrency()}">{($order->totalWithVat)|number_format:2:'.':''}</Money> </Total> <Shipping> <Money currency="{$order->shipping->shippingCost->getCurrency()}">{($order->shipping->shippingCost->getAmount()/100)|number_format:4:'.':''}</Money> </Shipping> <Tax> <Money currency="{$order->total->getCurrency()}">{($order->vat)|number_format:2:'.':''}</Money> </Tax> </PunchOutOrderMessageHeader> {foreach from=$orderItems item=orderItem} <ItemIn quantity="{$orderItem->quantityValue}"> <ItemID> <SupplierPartID>{$orderItem->id}</SupplierPartID> <SupplierPartAuxiliaryID>{$order->id}</SupplierPartAuxiliaryID> </ItemID> <ItemDetail> <UnitPrice> <Money currency="{$orderItem->total->getCurrency()}">{($orderItem->total->getAmount()/100)|number_format:4:'.':''}</Money> </UnitPrice> <Description xml:lang="{$punchOutSetupRequest->language}">{$orderItem->name}</Description> </ItemDetail> </ItemIn> {/foreach} </PunchOutOrderMessage> </Message> </cXML>
Endpunkte der Schnittstelle
Bezeichnung | Endpunkt / URL |
---|---|
Login-Sprung in die PRINT LOUNGE Hierzu wird ein PunchOutRequest-Dokument an diesen Endpunkt gesendet. | /coupa/processDocument |
Einlieferung einer Bestellung Für die Einlieferung & Bestätigung einer Bestellung wird ein OrderRequest-Dokument an diesen Endpunkt gesendet. | /coupa/processOrder |