Customize configurations in Commerce using the CPQ Configuration API

You can customize the configurations of complex products in Oracle Commerce by using the Oracle Configure, Price, Quote Configuration API to avoid being redirected to a Oracle Configure, Price, Quote hosted iFrame.

You can now customize the configurations of complex products in Oracle Commerce without being redirected to a Oracle Configure, Price, Quote hosted iFrame.

You can now customize the configurations of complex products in Commerce without being redirected to a Oracle Configure, Price, Quote hosted iFrame which may have a separate and distinct user interface look and feel that creates a disjointed user experience. This capability, known as the Direct API Configuration feature, is provided to build out support in Commerce for API driven product configurations where the user interface experience is controlled by Commerce and can be customized by Commerce partners. At a high level, this feature lets you do the following:
  • Create brand specific configuration user interfaces and controls at the global level.
  • Create a specific user interface experience for individual customizable products at the product level.

The goal of this feature is to provide full support of the Oracle Configure, Price, Quote Configuration API on Commerce Storefront frameworks. This includes providing a mechanism to dynamically create user interface elements that let shoppers select customizable products. It then presents them with the appropriate user interface elements to complete the customization process and add the each item to the cart. These user interface elements are generated dynamically in response to the selections made by the shopper at each step of the customization. The functionality of this feature is fully compliant with current Commerce Storefront frameworks.

The principal benefits of the Direct API Configuration feature are the following:
  • iFrame is not required - The current functionality requires that the configuration system (Oracle Configure, Price, Quote) perform all of the configuration tasks. This means that the shopper's user interface experience is managed in 2 separate applications. Up to the point where the shopper selects a customizable product, their user interface experience is driven by Commerce. On the other hand, the configuration user experience is managed by Oracle Configure, Price, Quote and when the shopper adds the configured item to the cart the user experience reverts back to the control of Commerce. The addition of this feature means that customers will not be required to execute product configuration via an iFrame. This lets shoppers experience a consistent user interface with common look and feel across their storefront.
  • Decoupling of the user interface and the configuration process - This feature ensures that the user interface framework is decoupled from the configuration process. This lets customers do the following:
    • Build configuration user interface components using the Commerce Design Page based on the Store Front 1.0 Framework.
    • Build configuration user interface components using a non-Commerce design user interface framework.
  • Performance improvements - The use of the iFrame pattern also creates a performance concern. The former integration with Oracle Configure, Price, Quote functions well and the disjointed user experience can be managed to some extent with user interface customization. However, there is also no reliable evidence that this design pattern performs at the levels required for high volume customer-based Telco implementations, where hundreds of thousands of shoppers may be configuring complex Telco bundles at the same time. This feature attempts to address this concern.
The roles that Commerce and Oracle Configure, Price, Quote now take with this feature are the following:
  • Oracle Configure, Price, Quote remains the primary configurator and controls the following:
    • What needs to be configured
    • The sequence in which components/attributes are presented
    • The configuration values that are required or accepted
  • The Commerce client is responsible for how the configurator is displayed (without an iFrame).

Additional topics in the current chapter provide you with detailed use cases for this feature.

Understand the support of the Oracle Configure, Price, Quote Configuration APIs

This feature provides a downloadable extension to the Commerce application component that provides a collection of endpoints which lets the Storefront UI (regardless of which user interface framework you are using) do the following:
  • Retrieve the end to end UI flow for a given Oracle Configure, Price, Quote Configuration Model
  • Retrieve sufficient metadata to identify the user interface elements required for each attribute of the model. These elements include the following:
    • Input Controls (Radio Buttons, List Boxes, Toggles, Date/Time Pickers etc.)
    • Navigational Components (Breadcrumbs, Sliders, Image Carousels etc.)
    • Information Components (Progress Bars, Tool Tips etc.)
    • Containers such as accordion elements
  • Retrieve data required to correctly populate each user interface element. This includes Label Names, Selectable Options, and more
  • Create a product configuration
  • Update a product configuration
  • Update user interface flow
  • Update a user interface elements
  • Modify a product configuration
  • Upgrade a product configuration
  • Save a product configuration
  • Transform a BOM (bill of materials) to a Commerce cart item
  • Reconfigure a saved product configuration

This extension also handles the following management tasks:

  • Maintains the state of the configuration until such time as it is saved.
  • Makes sure that calls made from the user interface framework to the Commerce Extension are authorized.
  • Makes sure that calls made from the Commerce Extension to Oracle Configure, Price, Quote Configuration REST APIs are authorized.
  • Ensures that connections are made from the user interface framework to extension to Oracle Configure, Price, Quote REST APIs without OAIC (Oracle Integration) integration flows.
  • Manages BOM (Bill of Materials) data objects returned from Oracle Configure, Price, Quote when the configuration is saved.

This Commerce Extension supports any user interface client, including those built on Commerce Storefront 1.0.

Understand supported integration-specific configuration APIs

The Oracle Configure, Price, Quote (Configure, Price and Quote) Cloud solution supports the complete quote-to-cash process from customer inquiry to order fulfillment. It guides users to optimal product options and configurations from simple to complex, automatically applying discounts and relevant up-sell and cross-sell opportunities. Oracle Configure, Price, Quote exposes objects and data through REST APIs. By exposing objects and data through REST APIs, Oracle Configure, Price, Quote promotes simpler API calls and more robust integration using HTTP standards. For the Direct API Configuration feature and current Oracle Configure, Price, Quote Integration support, the following configuration APIs are mostly used:

  • Configuration Run-Time Data Services APIs - These endpoints expose information and perform an action for a configuration model. All Configuration Run-Time Data REST APIs follow a required product hierarchy starting with the product family then product line followed by the model. A variable name for the product entity is required. For example, /config{prodFamVarName}.(prodLineVarName}.{modelVarName}/ is the standard Configuration Run-Time Data product path for an endpoint URL.
  • Configuration Administration REST APIs - These APIs provide product configuration endpoints that expose configuration definition information for Configuration Product Families, Product Lines, Models, attributes, array sets, menu items, and translations. The information for these items is organized in a hierarchical structure. The Configuration Administration REST API query parameters are supported to include and exclude child resources in a given resource. The response for each level in the hierarchy can include the details of the sub resources based on the query parameter passed in the request.

Customer Configuration flows dictate how users go through the site pages and the options available as they create a Transaction. Configuration flow rules consist of a condition and flow attributes. Actions display based on which node in the flow that the user has available based on defined criteria. Beginning in Oracle Configure, Price, Quote Release 18D,Oracle Configure, Price, Quote transformed the current configuration definition as REST endpoints to support UI interfaces. These services are available v7 and higher RESTful services.

Refer to the Oracle Configure, Price, Quote REST API documentation for more complete information.

Understand how the Direct API Configuration feature enhances Asset Operations

As mentioned, this feature provides Commerce with support of the Oracle Configure, Price, Quote Configuration API Layer while using the Commerce and Oracle Configure, Price, Quote integration. This means providing functionality that lets customers, using any user interface framework, configure and/or reconfigure customizable products by invoking the following from Oracle Configure, Price, Quote:

  • Configuration Run-Time Data Services APIs
  • Configuration Administration REST APIs

Building on this foundation, the feature further supports some asset-based operations whereby the configuration model retrieved from Oracle CPQ represents an existing asset. This lets the shopper execute the following configuration-related Asset Operations via direct API calls to the Oracle Configure, Price, Quote Configuration API:

  • Modify
  • Upgrade

Available Storefront and Agent endpoints for this feature let you modify and upgrade assets via direct API calls to Oracle Configure, Price, Quote thus removing the need to include an iFrame in this part of the shopping experience as well. This feature is limited to API only and customers will need to build their own UI elements to invoke these new endpoints.

By creating your own Modify and Upgrade user interface elements, you can deliver a seamless and consistent user experience even when modifying or upgrading complex products or services. The shopper user interface experience while modifying or upgrading a service can then be consistent with the rest of the site navigation experience as configuration user interface controls can be created in compliance with the Site Theme and CSS being used.

To fully implement the Asset Operations portion of this feature you must:

  • Download and install the CpqConfiguratorStoreApp and CpqConfiguratorAgentApp SSEs
  • Create a ‘Modify’ user interface element which can be coded into the Asset Details widget (which is not elementized)
  • Create an ‘Upgrade’ user interface element which can also be coded into the Asset Details widget

The creation of the user interface elements should be a straightforward process for any developer partner with a working knowledge of Commerce development and knockout.js.

Refer to Use Asset Based Ordering for more information on these Asset Operations.

Understand Sys Config model support via Commerce and the Oracle Configure, Price, Quote Configuration API

In Oracle Configure, Price, Quote, certain parts of customizable (configurable) products are based on "Sys Config" models that are accessible via the Oracle Configure, Price, Quote Configuration API. The "Sys Config" model consists of a hierarchy of components and associated classes that are used to model the hierarchical nature of the Product and Promotion structure of that configurable product.

When products in Oracle Configure, Price, Quote are structured hierarchically, Product Families are created first. Families provide the broad classifications of products. The next parts created are Product Lines which are used to describe more specific product areas of Product Families. Finally, Models are created to provide detail about the most specific product traits.

Note: In a "Sys Config" model, an attribute of a model can also be another model so it is important that you fully understand the structured hierarchy of each product family.

Examples of the product hierarchies just described might look something like the following:

  • Product Family: "Business Laptop"
    • Product Line: “EZCompute”
      • Model: "EZ"
      • Model: "EZ Pro"
  • Product Family: ""Gamer Laptop""
    • Product Line: "Avenger"
      • Model: "Novice"
      • Model: "EZ Pro"

Note: In a "Sys Config" model, an attribute of a model can also be another model so it is important that you fully understand the structured hierarchy of each configured product family. For example, the "Novice" model in the "Gamer Laptop" product family could have its own "sub-model" that had a variation of the features (more memory, better graphics card, and so on) offered in the basic configuration of the parent "Novice" model. To summarize, this feature lets you reload the configurator with a model which can be an attribute of the root/parent.

For more complete information on models and Oracle Configure, Price, Quote REST APIs, refer to the Oracle Configure, Price, Quote documentation.

In the Commerce and Oracle Configure, Price, Quote Integration, Commerce works with the Oracle Configure, Price, Quote Configuration API to let you execute the configuration of complex "Sys Config" models via API calls to the Oracle Configure, Price, Quote Configuration API. The Commerce support of the Oracle Configure, Price, Quote Configuration API lets you open and customize desired models within a bundle configuration. An example of this might be a product bundle consisting of a Mobile service attribute as well as a Cable TV service attribute. In this example, each service attribute (Mobile and Cable TV) is its own model. Commerce support of the Oracle Configure, Price, Quote Configuration API lets you open a product configurator directly on either of those service models.

Note: Keep in mind that a shopper can only interact with a model starting from the root asset of the configured product. Every Configure, Reconfigure, Modify, or Upgrade operation is an operation carried out on the root asset. Having retrieved the root asset (the complete product model), the shopper may then navigate to any attributes of the root. In some cases, an attribute may well be an attribute that is a sub-model.

As far as user cases go, this feature lets you (the developer) build out specific user interface experiences dealing with the configuration of customizable products from a desired catalog. In doing so, it lets you apply global, site, or even product-specific user interface template changes as well as control the user interface flow of the configuration process for each product. For customers, this feature lets them enjoy a seamless product customization experience without any indication that multiple applications are working together as part of an integration to handle the product configuration.