SHOPIFY × OCI / SAP

OCI punchout for Shopify (SAP, DACH)

European buyers run OCI. Connect your Shopify catalog with HOOK_URL round trips, contract pricing, and the custom NEW_ITEM fields their ERP demands.

HOOK_URL=https://buyer-erp.example.com/oci/return
USERNAME=shop_user
PASSWORD=***
OCI_VERSION=4.0
returntarget=_parent

cXML gets the attention, but a large share of European procurement, above all in DACH, runs SAP's Open Catalog Interface. OCI is older and simpler: the ERP calls your catalog URL with a HOOK_URL return address, the buyer shops, and the cart posts back as NEW_ITEM form fields.

Simple is where the trouble hides. Every ERP speaks its own field dialect: ISO units, material groups, MATNR blank or filled, and the custom NEW_ITEM extensions that decide whether a cart books cleanly into a requisition or lands on a support desk. PunchRelay maps fields per buyer instead of hardcoding one SAP's expectations.

No punchout vendor covers Shopify plus OCI seriously today. If your buyers run SAP SRM, S/4HANA or Onventis and your store runs Shopify, this page exists for you.

Works with

PO acknowledgment
<150ms
protocols, cXML + OCI
2
cXML documents, full round trip
4
contract pricing from Shopify B2B catalogs
100%

How it works with OCI

  1. 01

    The ERP calls your OCI URL

    SAP SRM, S/4HANA or another OCI system opens your PunchRelay URL by HTTP GET or form POST, passing HOOK_URL, USERNAME, PASSWORD and OCI_VERSION. We validate the credentials and open a session mapped to the buyer's Shopify B2B company location.

  2. 02

    The buyer shops at contract prices

    The buyer works in your Shopify storefront with their company location's catalog and price list applied. Contract prices come from Shopify B2B, the same place you manage them for every other channel.

  3. 03

    The cart posts back as NEW_ITEM fields

    PunchRelay renders the self-submitting return form to HOOK_URL: NEW_ITEM-DESCRIPTION, VENDORMAT, QUANTITY, ISO units, PRICE, MATGROUP, indexed per line item, plus whatever custom fields your buyer's ERP requires.

  4. 04

    The requisition runs inside the ERP

    The transferred cart becomes a shopping cart or requisition (the BANF, in SAP terms) and goes through approval there. OCI itself only moves the cart. The purchase order is a separate step, on the buyer's terms.

  5. 05

    The PO returns on the channel the ERP supports

    If the buyer's system sends cXML OrderRequest, and many SAP setups can, the PO creates a Shopify order automatically with a sub-150ms acknowledgment. If it cannot, the transferred cart is one click in PunchRelay from becoming a Shopify draft order.

Built for the buyer's IT checklist

NEW_ITEM field mapping per buyer

ISO units, MATGROUP taxonomies, EXT_PRODUCT_ID, custom fields: each OCI buyer gets the exact field set their ERP demands, mapped from your Shopify product data, per connection.

Quantity rules enforced before transfer

Minimums, maximums and case increments from your B2B settings run in the cart, before the NEW_ITEM post fires. Carts arrive in the ERP already bookable.

Full session logs, both directions

Setup calls and NEW_ITEM posts are logged raw. When the buyer's SAP basis team asks what was sent, you forward the actual payload, field by field.

OCI punchout, asked and answered

What is OCI?
SAP's Open Catalog Interface, the punchout standard of the SAP world and still the default in DACH procurement. The ERP opens your catalog with a HOOK_URL return address, and the cart travels back as NEW_ITEM form fields. Versions 4.0 and 5.0 are what buyers run in practice.
GET or POST? Which OCI versions?
Both. OCI setup calls arrive as HTTP GET or form POST carrying USERNAME, PASSWORD, HOOK_URL and OCI_VERSION. PunchRelay handles the 4.0 and 5.0 dialects and the returntarget quirks between them.
Can you map custom NEW_ITEM fields?
Yes, per buyer. Some ERPs demand NEW_ITEM-EXT_PRODUCT_ID, a specific MATGROUP taxonomy, or in-house custom fields before a cart books cleanly. PunchRelay maps Shopify product data to the exact field set each buyer's ERP requires, per connection, without custom code.
How do purchase orders get back into Shopify?
OCI transfers carts, not purchase orders, so the honest answer depends on the buyer's ERP. If it can send a cXML OrderRequest, the PO becomes a Shopify order automatically. If it cannot, one click turns the transferred cart session into a Shopify draft order, with prices and quantities already matched.
Which SAP and German ERPs does this cover?
SAP SRM and S/4HANA are the core. Onventis and other OCI-speaking procurement platforms common in DACH work over the same interface. If your buyer's system can call an OCI catalog URL, it can call a Shopify store on PunchRelay.
Do you support cXML too?
Yes, both protocols in one app. In practice European suppliers often have one buyer on SAP OCI and the next on Ariba or Coupa cXML, and the store should not have to care which is which.

Get early access

We are onboarding a small group of Shopify B2B merchants and building their first buyer connections with them. Tell us where to reach you.

No spam. We reply personally.