Eezee Developers

Eezee Developers

  • What is Punchout
  • API Docs
  • Blog
  • Help

›How To

Overview

  • What is Punchout?

Getting Started

  • Punchout Prerequisites
  • Implementation

How To

  • Edit a PunchOut Session

Edit a PunchOut Session

Your users may need to edit their punchout session because they may have forgotten to add something into their Purchase Request(PR) or their managers may have rejected a line item from their PR resulting in the need to remove a product from the session.

To proceed, make sure that your app has successfully made a Punch Out Order Message(POOM).

Overview

The "edit" process is the same as the normal punchout process with a slight tweak to step 1. Punch Out Setup Request

Implementation

1. POSReq in edit mode

Send a POSReq in edit mode to your supplier's punchout url. The API details, required fields and sample XML document are available below.

API Details

The table below details the HTTP request to the PUNCHOUT_URL_PROVIDED_BY_SUPPLIER.

PropertyValue
URLPUNCHOUT_URL_PROVIDED_BY_SUPPLIER
Request Type"POST"
Content-Type"application/xml"
BODY CONTENTXML Document ( See Below )

POSReq XML Document Required Fields

The table below documents all required fields for the POSReq "edit" operation to be valid.

As it can be quite tough documenting XML documents, please search under column # from the table below to find where it is in the POSReq sample xml document.

#PropertyDescription
{POSReq1}*.From.Credential.IdentityBuyer's Id
{POSReq2}*.To.Credential.IdentitySupplier's Id
{POSReq3}*.Sender.Credential.IdentitySystem's Id
{POSReq4}*.Sender.Credential.SharedSecretShared secret
{POSReq5}*.PunchOutSetupRequest.BuyerCookieA cookie that will be passed back in the POOM when the user has confirmed their cart.
{POSReq6}*.PunchOutSetupRequest.Extrinsic[name="UserEmail"]The user's email
{POSReq7}*.PunchOutSetupRequest.Extrinsic[name="UniqueName"]The user's name
{POSReq8}*.PunchOutSetupRequest.BrowserFormPost.URLThe webhook endpoint to send the POOM.
{POSReq9}*.PunchOutSetupRequest.ShipTo.Address[addressID]The address identifier of the place where the goods will be delivered to.
{POSReq10}*.ItemOut[quantity]The quantity requested
{POSReq11}*.ItemOut[lineNumber]The n-th line
{POSReq12}*.ItemOut.ItemID.SupplierPartIDSupplier's product unique id received from {POOM8}
{POSReq13}*.ItemOut.ItemID.SupplierPartAuxiliaryIDSupplier's cart unique id received from {POOM9}
{POSReq14}*.ItemOut.SupplierIDSupplier's Id. Same as {POSReq2}

Sample POSReq edit XML Document

<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.038/cXML.dtd">
<cXML payloadID="0a109a9d-5302-4a06-9d6d-d9756bc77b96" timestamp="2019-05-16T21:26:43-07:00" xml:lang="en_US">
    <Header>
        <From>
            <Credential domain="NetworkID">
                <!-- {POSReq1} --> 
                <Identity>EZ01098002779-T</Identity> 
            </Credential>
        </From>
        <To>
            <Credential domain="NetworkID">
                <!-- {POSReq2} -->
                <Identity>EZ01459860382-T</Identity>
            </Credential>
        </To>
        <Sender>
            <Credential domain="AribaNetworkUserId">
                <!-- {POSReq3} -->
                <Identity>sysadmin@ariba.com</Identity>
                <!-- {POSReq4} -->
                <SharedSecret>YOUR_SHARED_SECRET</SharedSecret>
            </Credential>
            <UserAgent>CAN BE ANYTHING</UserAgent>
        </Sender>
    </Header>
    <Request>
        <PunchOutSetupRequest operation="edit">
            <!-- {POSReq5} -->
            <BuyerCookie>your_unique_browser_cookie_to_identify_user_later</BuyerCookie>
            <Extrinsic name="CostCenter">670</Extrinsic>
            <!-- {POSReq6} -->
            <Extrinsic name="UserEmail">test@eezee.com.sg</Extrinsic>
            <!-- {POSReq7} -->
            <Extrinsic name="UniqueName">catalog_tester</Extrinsic>
            
            <BrowserFormPost>
                <!-- {POSReq8} -->
                <URL>https://example-eezee.com.sg/handle-punchout-order-message-endpoint</URL>
            </BrowserFormPost>

            <SupplierSetup>
                <URL>https://api.eezee.sg/api/link-to-punchout</URL>
            </SupplierSetup>

            <ShipTo>
                <!-- {POSReq9} -->
                <Address addressID="26"></Address>
            </ShipTo>


            <!-- {POSReq10} ItemOut.quantity -->
            <!-- {POSReq11} ItemOut.lineNumber -->
            <ItemOut quantity="1" lineNumber="1">
                <ItemID>
                    <!-- {POSReq12} -->
                    <SupplierPartID>5b35b4af4c8c63033d8aea45</SupplierPartID>
                    <!-- {POSReq13} -->
                    <SupplierPartAuxiliaryID>5d8b2c564500c71e5a586abf</SupplierPartAuxiliaryID>
                </ItemID>
                <!-- {POSReq14} -->
                <SupplierID domain="networkid">EZ01459860382-T</SupplierID>
            </ItemOut>

            <!-- {POSReq10} ItemOut.quantity -->
            <!-- {POSReq11} ItemOut.lineNumber -->
            <ItemOut quantity="10" lineNumber="2">
                <ItemID>
                    <!-- {POSReq12} -->
                    <SupplierPartID>5cffb0bd99d56933baf1ddaf</SupplierPartID>
                    <!-- {POSReq13} -->
                    <SupplierPartAuxiliaryID>5d8b2c564500c71e5a586abf</SupplierPartAuxiliaryID>
                </ItemID>
                <!-- {POSReq14} -->
                <SupplierID domain="networkid">EZ01459860382-T</SupplierID>
            </ItemOut>

        </PunchOutSetupRequest>
    </Request>
</cXML>

2. Next Steps

After making a successful Punch Out Setup Request, a response known as a POSRes will be returned. Continue to Step 2 of the standard punch out process to learn how to handle the POSRes and eventually update the PR in your procurement system.

Last updated on 3/8/2021 by Jasper Yap
← Implementation
  • Prerequisite
  • Overview
  • Implementation
    • 1. POSReq in edit mode
    • 2. Next Steps
Eezee Developers
Docs
What is Punchout?Punchout PrerequisitesHow to implement punchout?
We Built

Eezee B2B MarketplaceEezee Seller Center
Copyright © 2022 Eezee Pte Ltd