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