Skip to content

Punchout Catalog - Commerce

Purpose of this document is to provide development related information on punchout in IFS Commerce solution.

Punchout Authentication

The punchout authentication information can be found here.

cXML Protocol

There are some initial authentication transactions happen when the cXML protocol is being used. PunchOutSetupRequest cXML document is used to initiate the punchout process and PunchOutOrderMessage cXML document is used to POST data back to the procurement system.

PunchOutSetupRequest

Information related to the PunchOutSetupRequest document HEADER elements can be found here.

PunchoutSession Logical Unit

The information received in initial PunchOutSetupRequest document will be stored in PunchoutSession logical unit in SALBB component. e.g: SessionId, UserId, BuyerCookie, BrowserFormPostUrl, ContactName, ContactEmail, FromDomain

  • SessionId
    The authenticated user’s session Id at IFS Commerce.

  • BuyerCookie
    A unique Id is generated to from procurement solution in order to identify the transaction uniquely.

  • BrowserFormPost
    The endpoint where the list of checked out items be posted back to procurement solution.

  • IsActive
    This is used to control the validity of the punchout session per user.

Note: There can be multiple punchout requests from multiple devices, hence there can be multiple punchout session but there shall be only 1 active punchout session per user. IFS Commerce does not support multiple shopping carts.

PunchOutOrderMessage

Once the user checks-out products from the IFS Commerce shopping cart, the cXML document which contains checked-out lines will be posted to the endpoint provided in the BrowserFormPost which is a service endpoint deployed in APPSVC container. A sample PunchOutOrderMessage elements in cXML document would look like below:

<PunchOutOrderMessage>
    <BuyerCookie>Text</BuyerCookie>
    <PunchOutOrderMessageHeader operationAllowed="create">
        <Total>
            <Money currency="Text">Number</Money>
        </Total>
        <Shipping>
            <Money currency="Text">Number</Money>
            <Description xml:lang="Text">Text</Description>
        </Shipping>
        <Tax>
            <Money currency="Text">Number</Money>
            <Description xml:lang="Text">Number</Description>
        </Tax>
    </PunchOutOrderMessageHeader>
    <ItemIn quantity="Number">
        <ItemID>
            <SupplierPartID>Text</SupplierPartID>
            <SupplierPartAuxiliaryID>Text</SupplierPartAuxiliaryID>
        </ItemID>
        <ItemDetail>
            <UnitPrice>
                <Money currency="Text">Number</Money>
            </UnitPrice>
            <Description xml:lang="Text">Text</Description>
            <UnitOfMeasure>Text</UnitOfMeasure>
            <Classification domain="Text">Text</Classification>
            <ManufacturerPartID>Text</ManufacturerPartID>
            <ManufacturerName xml:lang="Text">Text</ManufacturerName>
            <ManufacturerName />
            <LeadTime>Number</LeadTime>
        </ItemDetail>
    </ItemIn>
</PunchOutOrderMessage>

Documentation for Administration guide on punchout for IFS Commerce can be found here Documentation for Development guide on punchout for IFS Procurement can be found here