Thailand Supplier Case Study: Oracle PunchOut on PrestaShop
A Thailand-based enterprise supplier needed to connect their B2B PrestaShop 9 catalog to a major enterprise customer using Oracle Fusion iProcurement. The initial technical setup was completed quickly, followed by buyer UAT and field-mapping validation. More than 1,000 catalog items were prepared for the Oracle PunchOut flow.
The Challenge
The supplier is a Thailand-based company serving enterprise customers and procurement-driven accounts. Their B2B catalog runs on PrestaShop 9 with negotiated pricing, customer-specific SKU filtering, and a wide product range covering industrial supplies, IT equipment, and contract-priced B2B items.
One of their largest customers in Thailand uses Oracle Fusion iProcurement for all corporate purchasing. The customer's procurement team requested cXML PunchOut integration as a condition of continuing their supplier relationship. Without it, every order would need to be manually re-keyed by the customer's procurement staff — slow, error-prone, and unacceptable from an audit standpoint.
"They told us we either support PunchOut, or they move to a competitor who does."
The supplier had three options:
- Custom development — quoted at USD 25,000–40,000 over 3–4 months
- Middleware SaaS subscription — quoted at USD 400+/month, indefinitely
- Off-the-shelf PrestaShop module — limited options were available for PrestaShop 9 cXML PunchOut
The supplier selected PunchOutHub because it provided a PrestaShop-native implementation path instead of a long custom project.
Implementation Timeline
| Phase | Duration | Outcome |
|---|---|---|
| Module installation | 5 minutes | Module uploaded via PrestaShop Module Manager, integrity manifest sealed |
| License activation | 2 minutes | License key entered, RSA signature verified, domain bound |
| Buyer configuration | 5 minutes | Oracle Fusion buyer profile created with SharedSecret and customer group |
| Catalog filtering | 10 minutes | 1,000+ SKUs assigned to buyer's customer group with negotiated pricing |
| Postman test | 5 minutes | Sample PunchOutSetupRequest verified — 200 OK with valid session URL |
| Live cutover | 3 minutes | Endpoint URL shared with customer's Oracle admin; first live PunchOut completed |
Total: a fast technical setup before buyer-side UAT and production cutover.
Production Metrics
The Production Flow
The resulting procurement pattern is straightforward: the buyer launches the supplier catalog from Oracle Fusion iProcurement and shops the PrestaShop 9 store directly:
- Buyer launches PunchOut from inside Oracle Fusion
- cXML PunchOutSetupRequest is sent to the supplier's PrestaShop endpoint
- PunchOutHub validates SharedSecret and creates a buyer-specific session
- Buyer browses the catalog with their negotiated pricing automatically applied
- UNSPSC codes are auto-detected and assigned to each cart line
- Cart is returned as cXML
PunchOutOrderMessage - Oracle approval workflow takes over — budget check, manager approval, PO creation
- Inbound PO is received by PunchOutHub's Order Receiver and converted to a PrestaShop order
The supplier reduced manual re-entry and gave the buyer a procurement-friendly shopping path from Oracle into the PrestaShop catalog.
What Made the Difference
Several specific PunchOutHub capabilities made the difference between "works on paper" and "works in production":
1. Oracle-compatible cXML handling
Oracle Fusion is unforgiving with cXML format violations. Tiny issues — a missing namespace declaration, wrong content-type header, malformed BuyerCookie echo — cause silent failures. PunchOutHub is designed to follow Oracle-compatible cXML PunchOut requirements and make testing easier during buyer UAT.
2. Per-Buyer Customer Groups
The supplier needed 1,000+ SKUs to be visible to this specific customer with negotiated pricing — but invisible to other PrestaShop visitors. PunchOutHub's customer group integration uses PrestaShop's native pricing system, so no custom code was required.
3. Domain-Bound License
The supplier's IT team valued the RSA-SHA256 signed license format that prevents any module file from being copied to another domain. This helped support the supplier's internal security review.
4. Diagnostic Dashboard
During testing, every cXML request was visible in the PunchOutHub admin dashboard with masked XML payloads and HTTP status. This made debugging obvious — no need to dig through server logs or enable verbose error reporting.
5. Offline-First License Verification
The license verifies locally using a public RSA key embedded in the module — no dependency on a remote license server during PunchOut transactions. Even if the supplier's external internet was disrupted, internal procurement transactions can continue without relying on a real-time license server call.
Cost Comparison
| Option | Initial Cost | Time to Production | Ongoing Cost |
|---|---|---|---|
| Custom development | USD 25,000–40,000 | 3–4 months | USD 5,000+/year maintenance |
| Middleware SaaS | USD 1,500 setup | 2–4 weeks | USD 4,800+/year subscription |
| PunchOutHub | USD 1,990 one-time | Fast technical setup + buyer UAT | No mandatory subscription for the local-license package |
Lessons for Other PrestaShop 9 Suppliers
If your B2B PrestaShop 9 store has a customer asking about PunchOut support, the path is now well-defined:
- Confirm the procurement system — Oracle Fusion / Ariba / Coupa / Jaggaer
- Confirm the protocol — cXML for most, OCI for SAP Ariba
- Get your customer's
NetworkIDor domain identifier from their procurement IT - Agree on a SharedSecret — this is just a password, generate it together
- Install PunchOutHub and configure the buyer in the admin dashboard
- Test with Postman before connecting the live procurement system
- Cutover — share endpoint URL, run first live PunchOut
End-to-end timing depends on buyer UAT, security review, and catalog data quality. The key advantage is that the supplier starts from a working PrestaShop-native PunchOut foundation instead of building the entire flow from zero.
Frequently Asked Questions
Is the case study company named?
No. The case study is anonymized as a Thailand-based enterprise supplier to protect client confidentiality.
What was the main implementation goal?
The goal was to allow an enterprise buyer to launch the supplier catalog from Oracle and return selected cart items to procurement.
Can the same approach be used for other Thailand suppliers?
Yes, when the supplier has clean product data and a PrestaShop catalog suitable for B2B procurement.
Try the same Oracle flow in the demo
Run a PunchOutSetupRequest against the live demo. See exactly what the production environment looks like — same module, same flow.
Open Demo →