OCI vs cXML — Key Differences

cXMLOCI (SAP Ariba)
FormatXML documentHTTP form POST / URL params
AuthSharedSecret HMACShared username + password
Return methodPunchOutOrderMessage XML POSTHTML form fields POST to HOOK_URL
Session initiationSupplier receives POST requestBrowser GET with query params
Primary platformOracle, Coupa, JaggaerSAP Ariba

SAP Ariba sends the buyer to your store via a GET request with parameters including ~Username, ~Password, and HOOK_URL (the return address). Your store validates the credentials, creates a session, and when the buyer checks out, POSTs structured item data back to HOOK_URL as form fields.

OCI Field Mapping in PunchOutHub

PunchOutHub maps your PrestaShop product data to OCI return fields automatically:

OCI FieldPrestaShop Source
NEW_ITEM-DESCRIPTIONProduct name
NEW_ITEM-MATNRProduct reference
NEW_ITEM-QUANTITYCart quantity
NEW_ITEM-UNITUnit of measure
NEW_ITEM-PRICEBuyer-specific price
NEW_ITEM-CURRENCYStore currency
NEW_ITEM-VENDORMATSupplier product ID
NEW_ITEM-LONGTEXTProduct description (HTML stripped)

No custom development required — field mapping is handled inside the module. Custom mappings are available in the Enterprise tier.

Configuring SAP Ariba OCI in PunchOutHub

In the Buyers dashboard, select SAP Ariba (OCI) as the platform. Enter the username and password your SAP Ariba contact will use.

PunchOutHub generates your catalog URL automatically:

https://yourstore.com/module/punchouthub/catalog

This URL goes into the Ariba Network supplier profile as the "Catalog URL". Ariba appends ~Username, ~Password, and HOOK_URL dynamically on each session.

Testing OCI Directly in a Browser

Unlike cXML (which requires Postman), OCI can be tested directly in a browser. Visit:

https://yourstore.com/module/punchouthub/catalog
  ?~Username=testuser
  &~Password=testpass
  &HOOK_URL=https://httpbin.org/post

Browse products, add to cart, click checkout. You will see the OCI POST fields sent to httpbin.org/post — confirming your integration is working before connecting live Ariba.

Expected fields in the POST response:

NEW_ITEM-DESCRIPTION[1] = Industrial Storage Device 1TB
NEW_ITEM-MATNR[1]       = SKU-SSD-1000
NEW_ITEM-QUANTITY[1]    = 2
NEW_ITEM-UNIT[1]        = EA
NEW_ITEM-PRICE[1]       = 89.99
NEW_ITEM-CURRENCY[1]    = USD

Same Module, Two Protocols

PunchOutHub handles both cXML and OCI from one installation. A single PrestaShop store can serve:

Each buyer is configured independently with their own credentials, customer group, and catalog filter. There is no conflict between protocols. Note: SAP Ariba (OCI) requires the Business tier or higher.

Common OCI Issues

IssueCauseFix
~Password rejectedWhitespace or special chars in passwordUse alphanumeric + symbols only, no spaces
Items not returned to AribaHOOK_URL blocked by firewallTest with httpbin.org first to verify outbound POST works
Wrong pricing returnedBuyer not mapped to correct customer groupCheck buyer config in PunchOutHub dashboard
Session not createdURL encoding issue in HOOK_URLEnsure Ariba sends URL-encoded HOOK_URL
Empty cart returnedCart was emptied before checkoutVerify that the session timeout is long enough for shopping and return testing

Ariba Network vs Ariba PunchOut Direct

SAP Ariba supports two PunchOut models:

PunchOutHub supports both — the OCI catalog URL works identically in both scenarios.

Frequently Asked Questions

Does SAP Ariba use cXML or OCI?

SAP Ariba commonly uses OCI for catalog punchout in many environments, while other procurement systems may use cXML.

Can one PrestaShop installation support both cXML and OCI?

Yes, if the module separates the protocol handlers and maps the cart correctly for each buyer.

Is OCI an add-on in PunchOutHub?

OCI availability depends on the selected package or add-on license.