• Dernière modification le: 30 March 2023

Catalogues Punchout

Les catalogues Punchout utilisent cXML et créent un lien direct entre l'instance Coupa du client et le site de commerce électronique du fournisseur.

Introduction

Avec un punchout, les utilisateurs de Coupa suivent un lien vers le site de commerce électronique du fournisseur, où ils font leurs achats normalement. Lorsqu'un utilisateur passe à la caisse, il est ramené à Coupa, avec les articles qu'il a choisis dans son panier Coupa. Les utilisateurs peuvent ensuite soumettre une demande dans Coupa, en utilisant les articles, les coûts et les détails du site Web du fournisseur.

Avantages pour l'acheteur

  • Faible effort de mise en place et de maintenance
  • Tous les articles proposés par le vendeur sont disponibles à l'achat
  • Configuration/personnalisation facile d'articles tels que des ordinateurs portables ou des cartes de visite

Avantages pour les fournisseurs

  • Modifications immédiates des articles du catalogue
  • Pas besoin de maintenir des catalogues pour différents clients
Remarque

Si vous envisagez de mettre en œuvre un punchout, vous devrez remplir le questionnaire fournisseur Coupa cXML et le remettre à votre client.

Comment ça marche

Vous devrez configurer votre punchout pour reconnaître les utilisateurs de Coupa. Vous devrez également être configuré dans Coupa et avoir un contrat avec votre client. Avant que votre client puisse vous configurer, vous devrez fournir à votre client les informations suivantes :

Article Description
Logo de l'entreprise Le logo agira comme un lien vers votre punchout. Il apparaîtra sur l'écran d'accueil de Coupa dans la section Boutique en ligne. L'image doit être au format JPG ou PNG d'une taille de 150 x 50 pixels.
URL de Punchout L'URL de routage complète requise pour recevoir des bons de commande dans Coupa.
Domaine et identité du client Généralement un DUNS ou NetworkID.
Domaine et identité du fournisseur Généralement un DUNS ou NetworkID.
Secret partagé Un mot de passe qui valide l'acheteur chez le fournisseur. Ceci est un justificatif d'identité requis.

Une fois que vous avez fourni les informations de punchout, votre client peut configurer le punchout dans Coupa.

Remarque

Normalement, les fournisseurs fournissent deux ensembles d'informations : un ensemble pour les tests et un ensemble pour la production.

La séquence de punchout de base est la suivante :

  1. Lorsqu'un utilisateur de Coupa clique sur le lien punchout du fournisseur, Coupa envoie un document cXML PunchoutSetupRequest contenant l'ID de l'acheteur (From, Sender et SharedSecret).
  2. Le punchout authentifie l'utilisateur et renvoie un document cXML PunchoutSetupResponse avec l'URL de la page de destination.
  3. Lorsque l'utilisateur sort, le punchout envoie un document cXML PunchoutOrderMessage à Coupa, avec les articles que l'utilisateur a ajoutés à son panier.
  4. Coupa crée une demande à partir des informations contenues dans le message de commande.

Diagramme montrant le flux de travail du punchout.

CXML pris en charge

document cXML Description
PunchOutSetupRequest

Inclure les éléments suivants :

  • URL de Punchout
  • Vers/Expéditeur/Du domaine et de l'identité
  • Secret partagé
  • Logo de l'entreprise

Nous prenons en charge la création et l'inspection uniquement.

PunchOutSetupResponse Publiez votre cXML à nouveau sur Coupa lorsque vous recevez PunchOutSetupRequest. Ce document comprend l'URL de la page de destination.
PunchOutOrderMessage Publiez votre cXML <BrowserFormPost> dans PunchoutSetupRequest.
terme cXML Définition
<BuyerCookie> La première fois qu'un utilisateur se rend sur le site de punchout d'un fournisseur, Coupa crée un BuyerCookieID unique à chaque combinaison de site de punchout utilisateur et fournisseur. Cette valeur ne change jamais. Le BuyerCookieID est utilisé pour valider que lorsque l'utilisateur quitte le site de punchout du fournisseur et retourne à Coupa avec le PunchOutOrderMessage, le BuyerCookieID correspond à ce qui a été envoyé dans le cadre du PunchOutSetupRequest.

Ce champ n'est pas passé dans le bon de commande (alias : OrderRequest).
<cXML Payload ID>

Un ID de charge utile identifie de manière unique tout document cXML que Coupa envoie. Il est généré au moment du punchout dans PunchoutSetupRequest et lorsque nous envoyons le bon de commande dans OrderRequest.

Les fournisseurs n'ont pas besoin de faire référence à payloadID lorsqu'ils renvoient PunchOutOrderMessage à Coupa contenant les articles du panier.

Les fournisseurs doivent faire référence à payloadID lorsqu'ils renvoient StatusUpdateRequest à Coupa pour accuser réception de OrderRequest ou PurchaseOrder.

L'ID de la charge utile peut être de 180 caractères max.

<SupplierPartAuxiliaryID>

Il s'agit d'une balise facultative au niveau de l'élément de ligne dans PunchOutOrderMessage vers Coupa.

Les fournisseurs peuvent transmettre n'importe quelle valeur pour SupplierPartAuxiliaryID et Coupa transmettra la même valeur dans OrderRequest au fournisseur.

SupplierPartAuxiliaryID peut contenir 765 caractères max.

Exemples

Exemple de demande de configuration de punchout

<?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 Procurement 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>

Exemple de réponse de configuration de Punchout

<?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>

Exemple de message de commande 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">Inconnu</Description>

        </Shipping>

        <Tax>

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

          <Description xml:lang="en-US">Inconnu</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>