• Zuletzt bearbeitet am: 30 March 2023

Punchout- Kataloge

Punchout-Kataloge verwenden cXML und erstellen eine direkte Verbindung zwischen der Coupa-Instanz des Kunden und der E-Commerce-Website des Lieferanten.

Einleitung

Mit einem Punchout gelangen Coupas Nutzer über einen Link auf die e-Commerce-Website des Lieferanten, auf der sie wie gewohnt Einkäufe tätigen. Wenn ein Nutzer zur Kasse geht, wird er zurück zu Coupa geleitet und findet die ausgewählten Kaufartikel im Coupa-Einkaufswagen wieder. Die Nutzer können dann eine Anforderung in Coupa mit den Artikeln, Kosten und Angaben der Lieferanten-Website einreichen.

Einkäufer-Vorteile

  • Geringer Einrichtungs- und Wartungsaufwand
  • Alle vom Verkäufer angebotenen Artikel sind käuflich zu erwerben
  • Einfache Konfiguration/Anpassung von Artikeln wie Laptops oder Visitenkarten

Vorteile für Lieferanten

  • Sofortige Änderungen an Katalogartikeln
  • Es müssen keine Kataloge für verschiedene Kunden gepflegt werden
Hinweis

Wenn Sie planen, einen Punchout zu implementieren, sollten Sie den Coupa cXML-Lieferantenfragebogen ausfüllen und an Ihren Kunden weitergeben.

So funktioniert es

Sie müssen Ihren Punchout einrichten, um Coupa-Benutzer zu erkennen. Sie müssen auch in Coupa eingerichtet sein und einen Vertrag mit Ihrem Kunden haben. Bevor Ihr Kunde Sie einrichten kann, müssen Sie Ihrem Kunden die folgenden Informationen zur Verfügung stellen:

Artikel Beschreibung
Firmenlogo Das Logo dient als Link zu Ihrem Punchout. Es wird auf dem Coupa-Startbildschirm im Bereich Shop Online angezeigt. Das Bild sollte ein JPG oder PNG mit einer Größe von 150 x 50 Pixeln sein.
Stempel-URL Die vollständige Routing-URL, die erforderlich ist, um Bestellungen in Coupa zu erhalten.
Kundendomäne und -identität Normalerweise eine DUNS oder NetworkID.
Domäne und Identität des Lieferanten Normalerweise eine DUNS oder NetworkID.
Shared Secret Ein Passwort, das den Käufer beim Lieferanten validiert. Dies ist ein erforderlicher Berechtigungsnachweis.

Sobald Sie die Punchout-Informationen bereitgestellt haben, kann Ihr Kunde den Punchout in Coupa einrichten.

Hinweis

Normalerweise stellen Lieferanten zwei Informationssätze zur Verfügung: einen Satz für Tests und einen Satz für die Produktion.

Die grundlegende Punchout-Sequenz lautet wie folgt:

  1. Wenn ein Coupa-Benutzer auf den Punchout-Link des Lieferanten klickt, sendet Coupa ein PunchoutSetupRequest-cXML-Dokument mit der Einkäufer-ID (Von, Absender und SharedSecret).
  2. Der Punchout authentifiziert den Benutzer und gibt ein PunchoutSetupResponse cXML-Dokument mit der Zielseiten-URL zurück.
  3. Wenn der Benutzer auscheckt, sendet der Punchout ein PunchoutOrderMessage-cXML-Dokument an Coupa mit den Artikeln, die der Benutzer seinem Einkaufswagen hinzugefügt hat.
  4. Coupa erstellt eine Anforderung aus den in der Bestellnachricht enthaltenen Informationen.

Diagramm, das den Punchout-Workflow zeigt.

Unterstütztes cXML

cXML-Dokument Beschreibung
PunchOutSetupRequest

Die folgenden Elemente einschließen:

  • Stempel-URL
  • Zu/Absender/Von Domäne und Identität
  • Shared Secret
  • Firmenlogo

Wir unterstützen nur das Erstellen und Prüfen.

PunchOutSetupResponse Buchen Sie Ihre cXML zurück zu Coupa, wenn Sie PunchOutSetupRequest erhalten. Dieses Dokument enthält die URL der Zielseite.
PunchOutOrderMessage Buchen Sie Ihre cXML zurück <BrowserFormPost> in PunchoutSetupRequest.
cXML-Begriff Definition
<BuyerCookie> Wenn ein Benutzer zum ersten Mal die Punchout-Site eines Lieferanten aufruft, erstellt Coupa eine BuyerCookieID, die für jede Kombination aus Benutzer- und Lieferanten-Punchout-Site einzigartig ist. Dieser Wert ändert sich nie. Die BuyerCookieID wird verwendet, um zu bestätigen, dass die BuyerCookieID mit dem übereinstimmt, was als Teil der PunchOutSetupRequest gesendet wurde, wenn der Benutzer die Lieferanten-Punchout-Site verlässt und mit der PunchOutOrderMessage zu Coupa zurückkehrt.

Dieses Feld wird in der Bestellung nicht übergeben (auch bekannt als: OrderRequest).
<cXML Payload ID>

Eine PayloadID identifiziert eindeutig jedes cXML-Dokument, das Coupa versendet. Es wird zur Punchout-Zeit in PunchoutSetupRequest generiert und wenn wir die Bestellung in der OrderRequest versenden.

Lieferanten müssen die PayloadID nicht angeben, wenn sie die PunchOutOrderMessage an Coupa zurücksenden, die die Artikel im Einkaufswagen enthält.

Lieferanten müssen die PayloadID angeben, wenn sie StatusUpdateRequest an Coupa zurücksenden, um den Eingang von OrderRequest oder PurchaseOrder zu bestätigen.

PayloadID kann max. 180 Zeichen lang sein.

<SupplierPartAuxiliaryID>

Dies ist ein optionales Tag auf Einzelpostenebene in PunchOutOrderMessage to Coupa.

Lieferanten können einen beliebigen Wert für SupplierPartAuxiliaryID übergeben und Coupa gibt den gleichen Wert in OrderRequest an den Lieferanten weiter.

SupplierPartAuxiliaryID kann max. 765 Zeichen lang sein.

Beispiele

Anfrage zur Beispiel-Punchout-Einrichtung

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">

<cXML xml:lang="en-US" payloadID="1591126611.9325364@stg1302app4.int.coupahost.com" timestamp="2020-06-02T14:36:51-05:00">

  <Header>

    <From>

      <Credential domain="DUNS">

        <Identity>COUPA1</Identity>

      </Credential>

    </From>

    <To>

      <Credential domain="DUNS">

        <Identity>079928354</Identity>

      </Credential>

    </To>

    <Sender>

      <Credential domain="DUNS">

        <Identity>COUPA1</Identity>

        <SharedSecret>ALD</SharedSecret>

      </Credential>

      <UserAgent>Coupa Beschaffung 1.0</UserAgent>

    </Sender>

  </Header>

  <Request>

    <PunchOutSetupRequest operation="create">

      <BuyerCookie>99ea3c4c8cf9f6dc905a6b6772daa0d1</BuyerCookie>

      <Extrinsic name="FirstName">Mary Anne</Extrinsic>

      <Extrinsic name="LastName">Krzeminski</Extrinsic>

      <Extrinsic name="UniqueName">maryanne.krzeminski@coupa.com</Extrinsic>

      <Extrinsic name="UserEmail">maryanne.krzeminski@coupa.com</Extrinsic>

      <Extrinsic name="User">maryanne.krzeminski@coupa.com</Extrinsic>

      <Extrinsic name="BusinessUnit">COUPA</Extrinsic>

      <BrowserFormPost>

        <URL>https://mwilczek-demo.coupacloud.com/punchout/checkout?id=2</URL>

      </BrowserFormPost>

      <Contact role="endUser">

        <Name xml:lang="en-US">maryanne.krzeminski@coupa.com</Name>

        <Email>maryanne.krzeminski@coupa.com</Email>

      </Contact>

      <SupplierSetup>

        <URL>https://uttest.free.beeceptor.com</URL>

      </SupplierSetup>

    </PunchOutSetupRequest>

  </Request>

</cXML>

Antwort auf die Beispiel-Punchout-Einrichtung

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.1.010/cXML.dtd">

<cXML version="1.1.007" xml:lang="en-US" payloadID="200303450803006749@b2b.euro.com" timestamp="2020-06-02T14:36:53-05:00">

  <Response>

    <Status code="200" text="OK" />

    <PunchOutSetupResponse>

      <StartPage>

        <URL>https://mygreatpunchoutsite.com/punchoutLogin.asp</URL>

      </StartPage>

    </PunchOutSetupResponse>

  </Response>

</cXML>

Muster-Bestellnachricht Punchout

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">

<cXML payloadID="9949494@cxml.Comergent.com" xml:lang="en-US" timestamp="--T+00:00" version="1.2.0.14">

  <Header>

    <From>

      <Credential domain="NetworkID">

        <Identity />

      </Credential>

    </From>

    <To>

      <Credential domain="NetworkId">

        <Identity>user@coupa.com</Identity>

      </Credential>

    </To>

    <Sender>

      <Credential domain="NetworkID">

        <Identity />

      </Credential>

      <UserAgent />

    </Sender>

  </Header>

  <Message deploymentMode="production">

    <PunchOutOrderMessage>

      <BuyerCookie>f5d75ddbc9e75b6346b36ee5c28c5e8b</BuyerCookie>

      <PunchOutOrderMessageHeader operationAllowed="edit" quoteStatus="final">

        <Total>

          <Money currency="USD">271,88</Money>

        </Total>

        <Shipping>

          <Money currency="USD">0,00</Money>

          <Description xml:lang="en-US">Unbekannt</Description>

        </Shipping>

        <Tax>

          <Money currency="USD">21,88</Money>

          <Description xml:lang="en-US">Unbekannt</Description>

        </Tax>

      </PunchOutOrderMessageHeader>

      <ItemIn quantity="1">

        <ItemID>

          <SupplierPartID>AM2692</SupplierPartID>

          <SupplierPartAuxiliaryID>A_B:5008937A_B:</SupplierPartAuxiliaryID>

        </ItemID>

        <ItemDetail>

          <UnitPrice>

            <Money currency="USD">250,00</Money>

          </UnitPrice>

          <Description xml:lang="en-US">ANTI-RNase (15-30 U/ul)</Description>

          <UnitOfMeasure>EA</UnitOfMeasure>

          <Classification domain="UNSPSC">41106104</Classification>

          <ManufacturerPartID>AM2692</ManufacturerPartID>

          <ManufacturerName xml:lang="en">Acme Inc.</ManufacturerName>

          <ManufacturerName />

          <LeadTime>0</LeadTime>

        </ItemDetail>

      </ItemIn>

    </PunchOutOrderMessage>

  </Message>

</cXML>