Skip to content
SyncMyShop

PunchOut

Level 2 PunchOut: your items in the buyer's own search

With Level 2 PunchOut your items appear in the search of the procurement system, from an index catalog you supply. A click on a result opens your store on that product page through the SelectedItem element, logged in and at the buyer's contract price. The store has to handle the landing, the index has to stay current, and edit and inspect sessions have to work.

Updated

What Level 2 PunchOut is

In a Level 1 session the buyer clicks your tile in the procurement system and lands on the home page of your store. In Level 2 the buyer searches in the procurement system itself, sees your items among the results of every supplier, and lands on the product page of the item they clicked. Two things make that work: an index catalog that you supply and the buyer's system loads, and a SelectedItem element in the PunchOutSetupRequest that tells your store which item was clicked.

Level 1 Level 2
Where the buyer starts your tile in the procurement system the search of the procurement system
What you supply beforehand a PunchOut URL the URL and an index catalog of your items
What the setup request adds nothing SelectedItem with the SupplierPartID from the index
Where the buyer lands your home page the product page, or a short list for a shelf item
What stays the same the login, the contract prices, the cart in a PunchOutOrderMessage the same

The term comes from SAP's cXML Solutions Guide for SAP Business Network. The cXML reference guide, version 1.2.071, defines the parts: the PunchOut index catalog, the punchoutLevel attribute and SelectedItem. Both were checked on October 3, 2026.

How a Level 2 order starts

A buyer at Bakker Installatie B.V. needs 120 receptacles.

  1. Your integration builds an index catalog from the store and uploads it to SAP Business Network, by hand in your account or with a CatalogUploadRequest.
  2. The buyer's procurement system downloads it, usually once a day, and adds the items to its local search.
  3. The buyer searches for "receptacle" and sees item 10482 without a price, next to items of other suppliers.
  4. The buyer clicks Buy from Supplier. The procurement system sends a PunchOutSetupRequest through the network to your endpoint, with SelectedItem 10482.
  5. Your store opens product page 10482, logged in as customer 10432, at the contract price of 9.60 USD.
  6. The buyer enters 120 and adds the item and returns, or browses on for more items.
Level 2 PunchOut from the index catalog to the product page The supplier uploads an index catalog to SAP Business Network. The procurement system downloads it, usually once a day, and adds the items to its own search. A buyer searches, finds item 10482 without a price and clicks Buy from Supplier. The setup request carries SelectedItem 10482 and the store opens that product page at the contract price of 9.60. The cart returns as a PunchOutOrderMessage. Your store and integration SAP Business Network SAP Ariba at the buyer Buyer index catalog upload download, about daily search: receptacle item 10482, no price Buy from Supplier PunchOutSetupRequest with SelectedItem 10482 product page 10482 at 9.60 USD Add and return The cart goes back as a PunchOutOrderMessage, through the buyer's browser, as in any PunchOut session.
Level 2 adds two steps before the session: the index upload and the search at the buyer.

The part of the setup request that differs from Level 1:

<PunchOutSetupRequest operation="create">
  <BuyerCookie>7XQ2M91LKP3</BuyerCookie>
  <BrowserFormPost><URL>https://procure.bakker.example/return</URL></BrowserFormPost>
  <SelectedItem>
    <ItemID>
      <SupplierPartID>10482</SupplierPartID>
    </ItemID>
  </SelectedItem>
</PunchOutSetupRequest>

The procurement system copies the ItemID from the index, SupplierPartID and SupplierPartAuxiliaryID when the index has one. Without SelectedItem, the reference says, the store presents its entire offering, as in Level 1.

The index catalog

The index lists the items a buyer can find, with a description, a commodity code and a pointer to your PunchOut site, and no price is required. One product-level item in cXML:

<Index>
  <SupplierID domain="NetworkId">AN01000000001</SupplierID>
  <IndexItem>
    <IndexItemPunchout>
      <ItemID><SupplierPartID>10482</SupplierPartID></ItemID>
      <PunchoutDetail punchoutLevel="product">
        <Description xml:lang="en-US">Duplex receptacle 20 A, white, tamper resistant, 125 V, NEMA 5-20R</Description>
        <URL>https://store.example.com/punchout</URL>
        <Classification domain="UNSPSC">39121406</Classification>
      </PunchoutDetail>
    </IndexItemPunchout>
  </IndexItem>
</Index>

SAP's guide gives the fields per catalog type. For a Level 2 index, in CIF or cXML:

Field Required for Level 2 Limit
Supplier ID yes 255 characters
Supplier Part ID yes, unique together with the auxiliary ID 255 characters
Item Description yes, searchable text 1,000 characters
SPSC Code (UNSPSC) yes, detailed for shelf and product items 40 characters
Supplier URL yes 255 characters; a dummy URL is enough for Ariba Buyer 8.x compatibility
PunchOut Enabled yes, in CIF TRUE or FALSE
PunchOutLevel yes store, aisle, shelf or product
Unit Price, Market Price no an estimate, shown for product-level items only
Image no 255 characters; a thumbnail for product-level items only

The description does the selling here. For store, aisle and shelf items SAP Ariba shows only the first 50 characters; the receptacle above has 66, and the buyer reads "Duplex receptacle 20 A, white, tamper resistant, 1". A product-level item shows in full. The integration cuts longer descriptions at the 1,000 of SAP's table and logs which items were cut.

Store, aisle, shelf and product

punchoutLevel What it points to What SAP Ariba Buying and Invoicing does
store a search page for everything you sell punches out without item details, at the top of categories
aisle a page for a small number of categories punches out without item details
shelf a page of similar products to choose from shows item details, then punches out
product the page of one item or SKU shows item details, then punches out

Levels can be mixed: one store-level item plus a product-level item for each of your 50 best sellers is 1 + 50 = 51 index items. An item without the attribute counts as a store-level item. A shelf item has to land on a short list the buyer can pick from straight away, without further filtering.

What the store has to support

SAP lists minimum site requirements for Level 2. Each one is work in the store or the integration:

Requirement What it takes
Direct access to the item or shelf from the index resolve SelectedItem to a product page or a filtered list, in the session of that customer
One-click return a button that adds the viewed item and posts the cart at once
Continue shopping a second button that keeps the session open for more items
edit sessions reopen the cart from the ItemOut lines, let the buyer change, remove or add
inspect sessions show the cart read-only to requisitioners and approvers
Orders from several sessions match a purchase order to lines that came from different sessions

The last row is the one SAP flags: matching orders to sessions through the supplier cookie in SupplierPartAuxiliaryID is harder with Level 2 than with store-level PunchOut, because a buyer collects items in several short sessions. The integration matches each purchase order line by part number, price and the auxiliary ID when it is present. A session that never returns a cart ends after six hours on SAP Ariba's side.

Keeping the index current

Each upload replaces what the buyer's system searches. SAP gives one update a quarter as best practice, suggests monthly, weekly or daily uploads for Level 2 depending on how often the assortment changes, and notes that buyers' systems usually fetch new catalogs once a day.

The arithmetic for a store with 4,000 product-level items that discontinues 40 a month:

  • uploaded once a quarter: up to 3 x 40 = 120 items in the buyer's search that open no product
  • uploaded weekly: 40 x 12 / 52 = 9.2, so about 9 at any time
  • uploaded daily: about 40 / 30 = 1.3, cleared within a day

The integration rebuilds the index from the store, compares it with the last upload, and uploads when items were added, removed or renamed. An item that is removed from the store still gets a landing page for clicks from an old index: its category, or a search for the part number.

Level 2 and OCI

OCI has no SelectedItem and no index catalog in the cXML sense. SAP's OCI 5.0 specification has its own way into the buyer's search: catalog items are replicated to SAP SRM in JSON, and an item marked CATALOG_MANAGED=X appears in the search without a price and with a "Go to Catalog" button that opens the store on that item with FUNCTION=DETAILADD. The cart comes back in the usual OCI fields. Details are on the OCI page.

What this means for your store

Level 2 is a Level 1 connection plus three jobs: an index that is built from the store and uploaded on a schedule, a landing that resolves every SelectedItem, and edit and inspect sessions that rebuild the cart. We build these on your existing store and run the uploads, with a log of every index version and every click that hit an item no longer for sale.

The cXML documents of the session are on cXML PunchOut, and the SAP Business Network side on PunchOut for Ariba. The overview is the PunchOut hub. Tell us which procurement system your customer uses.

Frequently asked questions

Does my price show in the buyer's search?

Not as a binding price. A PunchOut item in the index needs no price; the cXML reference calls any price in it approximate. SAP's guide allows a Unit Price or Market Price as an estimate on product-level items only. The real price is the one the store shows in the session, which is why the session has to start as the buyer's customer account.

Which procurement systems support Level 2?

SAP documents it for Ariba Buyer and SAP Ariba Buying and Invoicing, with the index loaded through SAP Business Network. The punchoutLevel attribute is read only by SAP Ariba Buying and Invoicing, from cXML 1.2.016. For another system, ask the administrator at the buyer whether it loads PunchOut index items into its search and in which format.

CIF or cXML for the index?

SAP Ariba accepts both. For Level 2 SAP names cXML the preferred format because the file is smaller than the CIF equivalent. A CIF index marks each PunchOut item with PunchOut Enabled set to TRUE; a cXML index uses IndexItemPunchout elements. The CIF format itself is covered in the CIF catalog.

What happens when a buyer clicks an item I no longer sell?

The setup request carries a SupplierPartID the store cannot resolve. Without handling, the buyer lands on a missing page inside their procurement session. The store should open the nearest category or a search for that part number, and the item should leave the index at the next upload.

How long may a Level 2 session stay open?

SAP Ariba ends a PunchOut session that has not returned a PunchOutOrderMessage after six hours. A buyer who opens a product page, leaves it open over lunch and comes back still has a session; one who returns the next morning starts again from the search.

Tell us what you need

Tell us which systems you use and what needs to work better. We reply personally within one working day. We help you define the work, then agree the price and timing before you commit.

  • You know the price and the timeline before you commit to anything
  • We work out the connection that takes the work off your hands
  • We handle the build, hosting, monitoring and maintenance
  • Your team has less information to retype and fewer discrepancies to chase

Suppliers, products, orders per day, a rough estimate is fine.

Or email directly: carsten@syncmyshop.com