SAP OCI
Open Catalog Interface · SAP's catalog interface
SAP OCI (Open Catalog Interface) is an interface defined by SAP through which a procurement system such as SAP SRM or SAP S/4HANA calls a supplier's online catalog and gets back the cart filled there. SAP OCI is a punchout procedure: the buyer switches from SAP to the supplier's shop, selects items there and transfers them to their SAP system as a purchase requisition, where approval and ordering take place.
Last updated:
- Publisher
- SAP
- Versions
- OCI 4 and OCI 5
- Functions
- Cart; DETAIL, VALIDATE, SOURCING, BACKGROUND_SEARCH, DOWNLOADJSON
- Transfer
- HTML form fields via the buyer's browser; with OCI 5, JSON as well
- Buyer systems
- SAP SRM, SAP S/4HANA and other OCI-capable systems
- Related
- Punchout, cXML
/01
How the call works
In the SAP system, the supplier's catalog is stored with its address and fixed call parameters. When the buyer picks the catalog, SAP opens that address in the browser and passes login data and the HOOK_URL, the address the cart is to be returned to. The shop logs the buyer in and shows them the range with their terms.
Once the cart is complete, the shop posts a form to the HOOK_URL through the browser. Each item is carried in fields following the pattern NEW_ITEM-<field>[n], such as NEW_ITEM-DESCRIPTION[1], NEW_ITEM-QUANTITY[1], NEW_ITEM-UNIT[1], NEW_ITEM-PRICE[1] and NEW_ITEM-CURRENCY[1]. SAP creates a purchase requisition from these fields.
/02
Versions and functions
The versions in use are mainly OCI 4 and OCI 5. Besides shopping with the cart returned, the specification describes additional functions the procurement system triggers through the FUNCTION parameter:
DETAIL shows an item that is already in the procurement system in the catalog's detail view again.
VALIDATE fetches an item's current data in the background, for example when it is taken from a template, with the quantity for scale prices.
SOURCING calls the catalog with a search term and opens it straight on the matching hits.
BACKGROUND_SEARCH searches the catalog in the background; the procurement system lists the hits of all catalogs together.
DOWNLOADJSON, new in OCI 5, loads the catalog data page by page as JSON into the procurement system's search index.
Which of them are used is up to the customer's procurement system; the base case is always the cart.
/03
Where SAP OCI is used
SAP OCI is used mainly in SAP SRM and SAP S/4HANA for catalog purchasing. Procurement platforms outside SAP connect supplier catalogs via OCI as well. For suppliers, SAP OCI matters when business customers buy through SAP and want to take items with the agreed prices straight from the shop instead of maintaining catalogs as files.
/04
SAP OCI and cXML
SAP OCI and cXML solve the same task: both bring the cart from the supplier's shop into the customer's procurement system. SAP OCI transfers the items as form fields; cXML uses XML documents, opens the session with a PunchOutSetupRequest from system to system and returns the cart as a PunchOutOrderMessage. The procurement system decides which protocol applies: SAP SRM and SAP S/4HANA rely on SAP OCI, SAP Ariba, Coupa and many others on cXML.
In both cases the order itself is not part of the punchout. It follows after approval by a route of its own, for example as an IDoc ORDERS05, a cXML OrderRequest or an openTRANS ORDER.
/05
SAP OCI with orcamultimedia and punchout.dev
orcamultimedia offers SAP OCI in three ways: as a plugin for Adobe Commerce, Magento 1/2, Shopware 5/6, WooCommerce, OroCommerce and OXID eShop (the SAP OCI interface), as an OCI catalog in a complete package that the orcamultimedia team sets up and connects, and with punchout.dev, which turns any shop into an SAP OCI and cXML supplier through a single script tag.
orcamultimedia's SAP OCI plugins support DETAIL, VALIDATE, SOURCING, BACKGROUND_SEARCH and DOWNLOADJSON besides the cart. With the last two, the buyer finds the supplier's products in their procurement system's search without opening the catalog.
/06 questions
What does OCI stand for?
OCI stands for Open Catalog Interface, SAP's catalog interface. Through SAP OCI an SAP procurement system calls a supplier's online catalog and takes over the cart filled there.
What is the HOOK_URL in SAP OCI?
The HOOK_URL is the return address the SAP system passes to the catalog in the OCI call. The shop posts the cart back to that address as a form with NEW_ITEM fields.
Does a shop need a plugin for SAP OCI?
A shop needs an extension for SAP OCI that accepts the call and posts the cart back in the OCI format. That can be a plugin for the shop system in question, or punchout.dev, which does the job through a script tag.
