Dev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

1. PunchOut process and design overview

Describes the PunchOut process and design overview in Optimizely Configured Commerce.

This article is the first in a series of five articles that outlines the Optimizely Configured Commerce cXML/PunchOut integration design:

  1. PunchOut/cXML process and design
  2. PunchOut/cXML configuration and data requirements
  3. PunchOut setup request and response
  4. PunchOut order Message (that is Cart information)
  5. Order request (that is Purchase Order)

They provide the technical information necessary to support Configured Commerce PunchOut/cXML implementations. The design of these interfaces assumes that an integration partner will serve as a translator between Configured Commerce and the end Customer's procurement system.

The base Configured Commerce platform supports four major PunchOut/cXML interfaces, connecting a Configured Commerce site with any number of Customers' environments. Depending on each Customer's requirements and systems, only certain interfaces may be used for a given implementation. The following PunchOut/cXML interfaces are built into the base Configured Commerce platform:

  • PunchOut Setup Request and Response
  • PunchOut Order Message (that is Cart Information)
  • Order Request (that is Purchase Order)

Configured Commerce's PunchOut/cXML features are built around standard cXML data structures and processes (www.cxml.org), although not all standard cXML structures and process are supported by Optimizely. This document helps identify the specific cXML data elements that ISC uses within these interfaces.

PunchOut/cXML process and design overview

The implementation of PunchOut within Configured Commercewas the foundation for the cXML integration. From a PunchOut perspective, the general user flow is outlined in the diagram below.

Essentially a buyer is directed to the Configured Commerce site from their procurement system, where they can look at the seller's online catalog and add items to their cart. Once the user has completed adding items to their cart, they do not go through the typical checkout process; they do not select the shipping address nor do they see the review and pay page. Instead, the site process ends at the cart page and the items in the cart - including ERP Part #, description, unit of measure and price - get sent back to the procurement system for review and approval. Once an order is formalized in the procurement system, the data is sent to Configured Commerce for processing and triggering an order submission job to the seller's ERP.

The following diagram outlines the detailed PunchOut process flows and interfaces, including the responsibilities of the various systems.

The integration between the Integration Partner and Configured Commerce is executed through RESTful API calls. The Integration Partner will POST cXML documents to Configured Commerce endpoints, and Configured Commerce will POST cXML back to the Integration Partner when appropriate.

Some implementations, be it PunchOut or other cXML integrations, may only involve some of these interfaces. For example, a PunchOut Customer may only choose to use the PunchOut Setup Request/Response and PunchOut Order Message (that is cart). The final order submission may go through a different channel, like EDI. Another example is the Insite partnership with Conexiom, where only the Order Request Message interface is used to translate email orders (PDF/CSV/XLS/and so on) for processing through Configured Commerce.