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:

  1. Custom development — quoted at USD 25,000–40,000 over 3–4 months
  2. Middleware SaaS subscription — quoted at USD 400+/month, indefinitely
  3. 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

PhaseDurationOutcome
Module installation5 minutesModule uploaded via PrestaShop Module Manager, integrity manifest sealed
License activation2 minutesLicense key entered, RSA signature verified, domain bound
Buyer configuration5 minutesOracle Fusion buyer profile created with SharedSecret and customer group
Catalog filtering10 minutes1,000+ SKUs assigned to buyer's customer group with negotiated pricing
Postman test5 minutesSample PunchOutSetupRequest verified — 200 OK with valid session URL
Live cutover3 minutesEndpoint 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

1,000+
Active SKUs
Fast
Technical Setup
Less
Manual Re-entry
Low
Support Load

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:

  1. Buyer launches PunchOut from inside Oracle Fusion
  2. cXML PunchOutSetupRequest is sent to the supplier's PrestaShop endpoint
  3. PunchOutHub validates SharedSecret and creates a buyer-specific session
  4. Buyer browses the catalog with their negotiated pricing automatically applied
  5. UNSPSC codes are auto-detected and assigned to each cart line
  6. Cart is returned as cXML PunchOutOrderMessage
  7. Oracle approval workflow takes over — budget check, manager approval, PO creation
  8. 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

OptionInitial CostTime to ProductionOngoing Cost
Custom developmentUSD 25,000–40,0003–4 monthsUSD 5,000+/year maintenance
Middleware SaaSUSD 1,500 setup2–4 weeksUSD 4,800+/year subscription
PunchOutHubUSD 1,990 one-timeFast technical setup + buyer UATNo 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:

  1. Confirm the procurement system — Oracle Fusion / Ariba / Coupa / Jaggaer
  2. Confirm the protocol — cXML for most, OCI for SAP Ariba
  3. Get your customer's NetworkID or domain identifier from their procurement IT
  4. Agree on a SharedSecret — this is just a password, generate it together
  5. Install PunchOutHub and configure the buyer in the admin dashboard
  6. Test with Postman before connecting the live procurement system
  7. 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.