PrestaShop 9 + Oracle Fusion iProcurement
Oracle Fusion iProcurement is one of the most widely deployed enterprise procurement systems globally. When a supplier runs PrestaShop 9, connecting the two systems requires a cXML PunchOut integration. This guide explains exactly how that connection works — and what you need to get it live.
How Oracle Fusion iProcurement Uses PunchOut
When a buyer inside Oracle Fusion wants to purchase from an approved supplier, they click a "Shop" link inside iProcurement. This triggers a PunchOutSetupRequest — a signed XML message containing the buyer's identity, their BuyerCookie, and the supplier's SharedSecret credential.
The supplier's system validates the request, creates a session, and returns a PunchOutSetupResponse with a one-time URL. The buyer is redirected to that URL and lands directly inside the supplier's store — with their negotiated pricing and approved catalog already loaded.
When the buyer is done shopping, they click "Checkout" or "Return to iProcurement". Instead of placing an order, the cart is serialized into a cXML PunchOutOrderMessage and posted back to Oracle. The buyer's procurement workflow — approval routing, budget checks, PO creation — continues entirely inside Oracle.
What Oracle Requires from the Supplier
Oracle Fusion iProcurement mandates:
- cXML 1.2 compliance — strict adherence to the open standard
- SharedSecret HMAC authentication (SHA-256) — per-buyer credentials
- HTTPS endpoint — TLS 1.2+ with a CA-signed certificate
- BuyerCookie echo — the same cookie returned in
PunchOutOrderMessage - Response time under 10 seconds — for session creation
Non-compliance causes the session to fail silently inside Oracle — a frustrating experience that often delays supplier onboarding by weeks.
Setting Up the Oracle Fusion Connection in PunchOutHub
In the PunchOutHub Buyers dashboard, create a new buyer and select Oracle Fusion iProcurement as the platform. Enter the NetworkID provided by your Oracle contact (typically in the format networkid:AN01234567890) and your agreed SharedSecret.
PunchOutHub generates the endpoint URL automatically:
https://yourstore.com/module/punchouthub/punchout
Give this URL to your Oracle procurement contact. They configure it in:
iProcurement → Procurement → Manage Stores → Add Store URL
Sample PunchOutSetupRequest
This is the request your endpoint will receive when an Oracle buyer clicks your store link:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">
<cXML payloadID="12345@buyer.com" timestamp="2026-05-05T00:00:00+00:00">
<Header>
<From>
<Credential domain="NetworkID">
<Identity>buyer_id</Identity>
</Credential>
</From>
<To>
<Credential domain="NetworkID">
<Identity>supplier_id</Identity>
</Credential>
</To>
<Sender>
<Credential domain="NetworkID">
<Identity>buyer_id</Identity>
<SharedSecret>your_shared_secret</SharedSecret>
</Credential>
</Sender>
</Header>
<Request>
<PunchOutSetupRequest operation="create">
<BuyerCookie>test_cookie_001</BuyerCookie>
<Extrinsic name="UserEmail">buyer@company.com</Extrinsic>
<BrowserFormPost>
<URL>https://buyer.erp.com/return</URL>
</BrowserFormPost>
</PunchOutSetupRequest>
</Request>
</cXML>
A successful response from PunchOutHub returns HTTP 200 with a PunchOutSetupResponse containing a StartPage URL — the buyer's session entry point.
Production Reference
A Thailand-based enterprise supplier uses this exact flow with Oracle Fusion iProcurement. Their buyers punch out, browse 1,000+ storage products with real-time pricing, and return structured order messages — all without any manual intervention on the supplier side.
Setup time was quickly, and there have been zero technical incidents since go-live.
Common Oracle Fusion PunchOut Errors
| Error | Cause | Fix |
|---|---|---|
| Authentication Failed | SharedSecret mismatch | Verify exact character match — case sensitive, no leading/trailing whitespace |
| Session URL Expired | BuyerCookie not echoed in PunchOutOrderMessage | Verify PunchOutHub version is current; the dashboard log shows the actual cookie |
| Blank page on redirect | SSL cert not trusted by Oracle | Use Cloudflare proxy (orange cloud ON) or CA-signed certificate |
| Invalid cXML | Content-Type header mismatch | Ensure endpoint returns text/xml with UTF-8 charset |
| HTTP 500 on response | PHP error or DB constraint | Check PunchOutHub diagnostic dashboard for stack trace |
What Oracle Fusion Returns After Approval
Once the buyer's procurement workflow approves the requisition, Oracle generates a purchase order and transmits it back to your store via the configured PO receiver endpoint. PunchOutHub's Order Receiver (Business tier and up) accepts inbound cXML OrderRequest messages and creates orders in PrestaShop automatically.
Frequently Asked Questions
Can Oracle Fusion connect to a PrestaShop catalog?
Yes, when the PrestaShop store supports Oracle-compatible cXML PunchOut setup and cart return.
Is cXML 1.1.x a problem?
Not usually. Some Oracle environments send legacy cXML versions. Correct handling of required fields is more important than the version string alone.
What Oracle fields are most important?
Sender credentials, SharedSecret, BuyerCookie, BrowserFormPost URL, and accepted cart item fields are critical.
Try Oracle Fusion in the live demo
Run a real PunchOutSetupRequest against our demo environment — see the full Oracle flow including return cart with cXML OrderMessage.
Open Demo →