Handling different supplier shopping basket with punch out catalogs

In a previous post we looked at the return URL and some things you need to look at setting up for different suppliers. Once you have that configured there might be differences in the data that is sent back in the shopping basket from the suppliers web site. This video walks through an example where you will have to modify the OCI protocol handler class to handle the basket data. This class is called the message handler and as you can see in this example you may need to modify in an implementation.

You will see in this example the suppliers shopping basket data has the product number I the field NEW_ITEM-VENDORMAT where in the sample OCI handler class in AX uses NEW_ITEM-EXT_PRODUCT_ID.

This is the example message that comes back from the suppliers you saw in the video.


<form action=”http://intranet.contoso.com/sites/DynamicsAx/EmployeeServices/Procurement/Enterprise%20Portal/CatExternalCatalogPurchase.aspx?WMI=CatExternalCatalogPurchase&WKEY_XC=16928090779&WKEY_ERC4XC=22565420942&WCMP=USMF&WDPK=INITIAL&WHPV=3079DB034264AE5E8B976A676A54A49B3B4889DD53AFBF871DB1606109611479&#8243; method=”post” name=”PostBack”>

<input type=”hidden” name=”NEW_ITEM-DESCRIPTION[1]” value=”STRIPS,REPLCMENT,COMMAND,WE”>

<input type=”hidden” name=”NEW_ITEM-MATGROUP[1]” value=””>

<input type=”hidden” name=”NEW_ITEM-VENDOR[1]” value=””>

<input type=”hidden” name=”NEW_ITEM-LEADTIME[1]” value=””>

<input type=”hidden” name=”NEW_ITEM-UNIT[1]” value=”PK”>

<input type=”hidden” name=”NEW_ITEM-LONGTEXT[1]” value=””>

<input type=”hidden” name=”NEW_ITEM-QUANTITY[1]” value=”1″>

<input type=”hidden” name=”NEW_ITEM-PRICE[1]” value=”4.9″>

<input type=”hidden” name=”NEW_ITEM-CURRENCY[1]” value=”USD”>

<input type=”hidden” name=”NEW_ITEM-VENDORMAT[1]” value=”MMM17200CL”>

<input type=”hidden” name=”Submit” value=”Submit Order”>





This is an example of a return message from another supplier has a fully filled out set of fields included the optional custom fields. But you will see in this example the item number is populated in 3 fields NEW_ITEM-MANUFACTMAT, NEW_ITEM-VENDORMAT, NEW_ITEM-EXT_PRODUCT_ID



<form action=”http://intranet.contoso.com/sites/DynamicsAx/EmployeeServices/Procurement/Enterprise%20Portal/CatExternalCatalogPurchase.aspx?WMI=CatExternalCatalogPurchase&WKEY_XC=16928090029&WKEY_ERC4XC=22565420942&WCMP=USMF&WDPK=INITIAL&WHPV=12A1E5837404A82596EB7DAFF28966BB050294FB417F3F9D73310B2072F4D475&#8243; method=”POST”>

<input type=”hidden” name=”~OKCODE” value=”ADDI”/>

<input type=”hidden” name=”~caller” value=”CTLG”/>

<input type=”hidden” name=”NEW_ITEM-DESCRIPTION[1]” value=”Batteries and Adapters: 45 WHr 4-C”/>

<input type=”hidden” name=”NEW_ITEM-UNIT[1]” value=”EA”/>

<input type=”hidden” name=”NEW_ITEM-PRICE[1]” value=”92.79″/>

<input type=”hidden” name=”NEW_ITEM-QUANTITY[1]” value=”1″/>

<input type=”hidden” name=”NEW_ITEM-CURRENCY[1]” value=”USD”/>

<input type=”hidden” name=”NEW_ITEM-LEADTIME[1]” value=””/>

<input type=”hidden” name=”NEW_ITEM-MANUFACT[1]” value=”aaa”/>

<input type=”hidden” name=”NEW_ITEM-MANUFACTMAT[1]” value=”aaa8935595273\1″/>

<input type=”hidden” name=”NEW_ITEM-VENDORMAT[1]” value=”aaa8935595273\1″/>

<input type=”hidden” name=”NEW_ITEM-MATGROUP[1]” value=”7101″/>

<input type=”hidden” name=”NEW_ITEM-EXT_PRODUCT_ID[1]” value=”aaa8935595273\1″/>

<input type=”hidden” name=”NEW_ITEM-LONGTEXT_1:132[]”/>

<input type=”hidden” name=”SUPPLIERMPID[1]”/>

<input type=”hidden” name=”NEW_ITEM-VENDOR[1]” value=””/>

<input type=”hidden” name=”NEW_ITEM-CONTRACT[1]” value=””/>

<input type=”hidden” name=”NEW_ITEM-CUST_FIELD1[1]” value=””/>

<input type=”hidden” name=”NEW_ITEM-CUST_FIELD2[1]” value=””/>

<input type=”hidden” name=”NEW_ITEM-CUST_FIELD3[1]” value=””/>

<input type=”hidden” name=”NEW_ITEM-CUST_FIELD4[1]” value=””/>

<input type=”hidden” name=”NEW_ITEM-CUST_FIELD5[1]” value=””/>





If you look at the OCI documentation there could actually be a few different fields that represent the product number. Some suppliers web sites will send the basket data back with all of the different version filled out.


Also you see in the video I use Fiddler to look at the web data from the suppliers site. You can download that from here http://www.telerik.com/fiddler



2 responses to “Handling different supplier shopping basket with punch out catalogs

  1. Pingback: Compile of posts on External Catalog AKA Punch-Out Catalogs | OrganicAX·

  2. Pingback: cXML punchOut message logging | OrganicAX·

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s