Procurement Integration for eCommerce: How Enterprise Buyers Order Through Their Own Systems
Your largest buyers are not browsing your storefront. A procurement manager at a company spending six figures a year with you opens SAP Ariba or Coupa, selects your name from an approved vendor list, and lands in your catalog through a session their own system opened. They fill a cart, send it back, and the...
Last updated: 24 Aug 2026
CONTENTS
Your largest buyers are not browsing your storefront. A procurement manager at a company spending six figures a year with you opens SAP Ariba or Coupa, selects your name from an approved vendor list, and lands in your catalog through a session their own system opened. They fill a cart, send it back, and the order becomes a requisition inside a workflow you never see. If your store cannot participate in that sequence, you are competing for the portion of their budget that survives an exception process.
This is punchout, and it is the integration most eCommerce teams have never scoped. The mechanics are well established and not especially exotic. The part that consumes a project is rarely the protocol.

What actually happens in a punchout session
Six steps, and it is worth reading them in order because each one places a requirement on your store.
- The buyer selects you from their approved vendor list. This happens inside their procurement platform. You are not being discovered; you are being retrieved from a list you had to get onto first.
- Their system sends a setup request to your endpoint. It carries identity and authentication context: which organisation, which user, sometimes which cost centre or contract.
- Your endpoint authenticates and returns a session. The response is a URL that will open your storefront in a state specific to that buyer.
- The buyer shops inside your store, without logging in. They see the catalog you have decided this organisation should see, at the prices agreed with them, with no additional credentials.
- The cart returns to their system, formatted in the protocol they use, item by item, with the identifiers their system needs to process it.
- Approval and the purchase order happen on their side. Your order arrives afterwards, already authorised, matched to a budget and a contract.
Notice what steps three and four require. Your store has to resolve an incoming machine identity into a specific commercial relationship, then render an entitled catalog and entitled prices for it, on demand, without a human login. That is the whole engineering problem in one sentence.
Driver one: the approved vendor list decides who is considered
Procurement exists to reduce discretion. Once a category has approved suppliers, buying outside that list requires justification, and justification is friction that most buyers will not spend on a supplier who is merely convenient.
This produces an effect worth stating plainly: for enterprise accounts, catalog availability inside their system functions as distribution. A supplier who is punchout-enabled is present at the moment of purchase. A supplier who is not becomes a manual exception, quoted by email, entered by hand, and reviewed by someone whose job is to reduce exactly that.
The intervention point is commercial before it is technical. Being on the list involves supplier onboarding, contract terms, and frequently a registration in the buyer’s network. The integration work follows that conversation rather than preceding it, which is why building punchout speculatively is rarely the right sequence.
Driver two: the protocols, and what each one carries
Punchout is a process rather than a standard. Two formats carry it, and their differences determine what your integration can and cannot do.
| OCI | cXML | |
| Origin | SAP standard | Developed by Ariba, XML-based |
| Mechanism | Catalog data passed via URL parameters | Structured XML documents exchanged between systems |
| Typical systems | SAP environments | Cloud procurement platforms including SAP Ariba and Coupa |
| Scope | Session and cart return | Session, cart return, and further documents such as purchase orders, order confirmations, advance shipping notices, and invoices |
| Implementation weight | Lighter | Heavier, with more capability |
The practical guidance from practitioners is consistent: build cXML first, because modern procurement platforms support it and it extends past the punchout session into the documents that follow. Implement OCI when a specific customer running SAP requires it. In some European trade sectors a third format appears, IDS Connect, which is worth knowing exists rather than planning around.
There is one distinction inside cXML that changes scope estimates. Level 1 covers the punchout session and cart return. Level 2 adds deeper catalog interaction, and support for it is a question to ask your buyer rather than to assume. Confirming which level and which documents a customer actually requires, before scoping, removes the most common source of rework.
Driver three: entitlement is the real integration
Everything above is transport. The requirement that makes procurement integration a project rather than a plugin is that your commerce system must answer, for an anonymous inbound session, a chain of questions that most storefronts never face.
Which organisation is this, given a machine credential rather than a login. What contract governs them. Which SKUs is this organisation entitled to see, since enterprise agreements routinely cover a subset of your catalog. What price applies, per SKU, per organisation, possibly per volume tier and per contract period. Which of their users can order what, and up to what value. Which identifiers do their systems require on the returned cart, since a buyer’s procurement system frequently needs their own part numbers rather than yours.
Each of those is a data model question. Your platform either represents company-level entitlement natively, or the punchout layer has to reconstruct it, and reconstruction is where budgets go.
The identifier question deserves particular attention because it is easy to miss during scoping and expensive to discover during testing. A large buyer’s system may key on their internal material number. If your catalog cannot carry a customer-specific part number per SKU per organisation, the returned cart will not reconcile on their side, and the integration will be technically complete and commercially unusable.

The bottleneck: your data model, not the protocol
Cause and effect resolve here. The protocols are documented, stable, and implemented by many suppliers before you. What varies between a six-week integration and a two-quarter one is whether your commerce platform already holds company accounts, contract pricing, entitled catalogs, and buyer-specific identifiers as first-class data.
Where a platform supports company-level B2B structures natively, punchout becomes a translation layer over capability that already exists. Where it does not, the punchout layer becomes a shadow commerce system holding the entitlement logic, and every future price change has to be applied in two places. That second outcome is the one worth designing away from, because it converts a one-time integration cost into a permanent operational one.
This connects directly to the wider integration picture. Contract pricing usually originates in an ERP rather than in the storefront, and product identifiers usually originate in a PIM. Our guides to Shopify and ERP or PIM connections and to API documentation for ERP integration cover the layer underneath this one, and the source-of-truth question they raise is the same question punchout will ask you to answer explicitly.
Where punchout breaks
The mechanism is stable. The places it produces surprises follow from the sequence itself, and all of them are cheaper to plan for than to discover in user acceptance testing.
The gap between cart return and purchase order. Approval happens after the cart leaves your store, and it can take days. If your prices, stock, or promotions moved in that window, the purchase order arriving on your side will not match what the buyer approved. Decide in advance whether returned carts hold a price for a defined period, and make that rule explicit to the buyer rather than discovering the mismatch through a rejected order.
Tax and shipping. Many procurement systems calculate or apply their own tax and freight treatment after the cart returns, so totals presented in your storefront can differ from what the buyer’s system records. Agree early on which side is authoritative for each figure, because a difference of a few percent on the total is enough to hold an order in review.
Line items the buyer’s system rejects. A returned cart is validated against their catalog rules, budget codes, and identifier expectations. A line with a missing part number, an unrecognised unit of measure, or a category the buyer’s system does not accept can be dropped silently. The buyer sees an incomplete requisition and reports it as your problem.
Session expiry and re-entry. Punchout sessions time out, and buyers frequently step away mid-cart. Whether an expired session resumes, restarts empty, or errors is a design decision. Restarting empty on a hundred-line requisition is the version buyers remember.
Non-catalog and configured items. Buyers regularly want something not in the entitled catalog, or a configured product whose price depends on options. Both need a defined path, since the default behaviour is that the item cannot be ordered through the integration at all and reverts to a manual exception, which is the outcome the integration existed to remove.
Multi-entity buyers. A single customer can punch out from several legal entities, each with its own contract, currency, delivery terms, and approval chain. If entity is not part of your entitlement model, the second entity will surface it.
None of these are protocol problems. They are commercial rules that have to exist somewhere, and punchout has a way of revealing that they never did.
Scoping a procurement integration
Six decisions, best made before development starts.
Which buyer, which platform, which protocol. Scope against a named customer with a stated requirement. Punchout built generically tends to be rebuilt on contact with the first real buyer.
Which documents are in scope. Punchout session and cart return is the minimum. Purchase orders, order confirmations, advance shipping notices, and invoices each add integration surface, and each is a separate conversation with the buyer’s team.
Where entitlement lives. Decide whether company accounts, contract prices, and catalog entitlement are represented in your commerce platform or in the middleware. This single decision drives most of the cost difference between implementations.
How identifiers map. Establish whether the buyer requires their own part numbers on the returned cart, and where that mapping will be stored and maintained.
Platform reality. Some commerce platforms carry punchout capability natively; others reach it through middleware or an app. On Shopify, punchout is not built into the platform, and suppliers implement it through connector apps or a custom middleware layer. Publicly listed pricing for punchout connectors on the Shopify App Store runs to several hundred dollars per month per connection, with additional connections and document types priced separately, so the running cost scales with the number of enterprise buyers rather than sitting flat.
Who tests it. Procurement integrations are validated in the buyer’s system, on their timeline, by their team. Testing access is a dependency to negotiate early, since a supplier ready to test and a buyer with no test window is a common stall.
Flatline’s custom development team scopes procurement integrations as part of enterprise commerce engagements, and the pattern that repeats is the one described above: the protocol work is predictable, and the entitlement model decides the timeline.
Frequently Asked Questions
What is the difference between punchout and EDI?
Punchout covers the buying session: the buyer shops your catalog from inside their procurement system and returns a cart. EDI covers structured document exchange between systems, typically purchase orders, confirmations, shipping notices, and invoices. They frequently coexist, with punchout handling selection and a document layer handling everything after approval. cXML can carry both parts, which is one reason it is usually the better starting point.
Does Shopify support punchout?
Not natively. Suppliers running on Shopify implement punchout through connector apps or custom middleware that handles the setup request, session authentication, and cart return, while the storefront renders the entitled catalog. The capability is available and the cost is recurring rather than one-off, which belongs in the business case.
How long does a punchout integration take?
The protocol work is the predictable part, often weeks. The variable is whether your platform already models company accounts, contract pricing, and entitled catalogs. Where it does, integration timelines are measured in weeks. Where the punchout layer has to reconstruct entitlement, expect quarters, and expect ongoing maintenance in two systems.
Is it worth building punchout before a customer asks?
Usually not. The requirement is specific to the buyer’s platform, protocol, document set, and identifier scheme, and a generic implementation tends to be reworked against the first real requirement. The work that does pay in advance is the data foundation: company accounts, contract pricing, and clean product identifiers, all of which are useful regardless of which procurement platform arrives first.
Key Takeaways
- Punchout is how enterprise buyers reach your catalog: selected from an approved vendor list, opened as a session by their procurement system, shopped without a login, and returned as a cart into their approval workflow.
- Two protocols carry it. cXML is the broader starting point and extends into purchase orders, confirmations, shipping notices, and invoices. OCI is the SAP-oriented format to implement when a specific customer requires it.
- The protocol is not the hard part. Resolving a machine identity into an organisation, a contract, an entitled catalog, entitled prices, and buyer-specific part numbers is the actual engineering, and it is a data model question.
- Where a platform models company-level B2B structures natively, punchout is a translation layer. Where it does not, the connector becomes a second commerce system holding pricing logic, and the cost becomes permanent rather than one-time.
Procurement integration reads as a technical topic and behaves as a commercial one. The supplier who appears inside a buyer’s system at the moment of purchase is participating in a process designed to keep purchasing inside a short list, and being on that list is worth more than most storefront optimisation the same budget could buy.
POPULAIR ARTICLES
GET IN TOUCH
To speak with us, call (+31) 613 326 179, send us an email, or reach out to us by chat or What’s App.