Asset-Based Ordering External Orders

Overview

The Asset-Based Ordering integration introduced allows sales users to review, modify, and terminate subscription or asset-based products delivered over a period-of-time. Customers can also create orders outside of Oracle CPQ in an external client application and use REST APIs for all asset based operations. The REST APIs enable any external client application to integrate with Oracle CPQ to implement ABO.

Key Concepts

The "Add to Cart" action, "getconfigbom" and "saveconfigbom" library functions, and the fulfillment status attribute are key concepts used to enable an ABO integration.

ClosedAdd to Cart Action

As part of the Oracle CPQ – External Client Application integration, Oracle CPQ administrators must configure a "Client Side" integration to enable the Add to Cart button for a specific product family. The "Add to Cart" action sends items to an external client application cart via the Add to Cart button, which displays on the configurator UI after configuring the "Client Side" integration.

By integrating ABO with the Oracle CPQ – External Client Application integration, the "Add to Cart" action generates a "configId" (e.g. configuration ID) for the item added to the external client application cart. The ABO asset-based actions use the "configId" to load a BOM instance from the Oracle CPQ configBomInstance resource.


Closedsaveconfigbom and getconfigbom Library Functions

The "saveconfigbom" and "getconfigbom" library functions are new in Oracle CPQ 2017 R1. The "saveconfigbom" library function allows users to save the BOM for non-configurator UI integration scenarios such as suspend, resume, and terminate. The library function saves a client integration BOM instance and a "configId" to the Oracle CPQ configBomInstance resource and returns a "configId".

The "getconfigbom" library function can retrieve the configbom stored via the saveConfigBom API and the configBom created via a client integration Configurator UI session. The library function extracts and returns a client integration BOM instance from the Oracle CPQ configBomInstance resource using the "configId".

Note: The "getConfigBom" action is included in the 2017 R1 ABO package. External client applications use this action to extract and return a stored configBomInstance from the Oracle CPQ configBomInstance resource using the "configId".

ClosedFulfillment Status Attributes

The configBomInstance contains the asset information from the configurator UI and contains two key fields: transactionDate and fulfillmentStatus. Use the transactionDate attribute to determine the date and time of a service request, which can also be a future date. The fullfillmentStatus attribute refers to the status of the configBomInstance. An optional transactionId attribute in the configBomInstance determines the current order for which the configuration is relevant.

Note: The transactionDate, fulfillmentStatus, and transactionId fields determine whether to consider the current configBomInstance as an open order item for the asset. The fields also calculate the projected state of an asset during various ABO operations.

Upon launching a configurator session, the configBomInstance passes into the configurator session as the initial state. After a configBomInstance saves in the configBomInstance resource, Oracle recommends making updates to the fulfillmentStatus attribute in the configBomInstance resource at regular intervals during the course of order creation, submission, and fulfillment. There are four possible status values for the configBomInstance:

  • NULL: Upon initial creation of a configBomInstance, the fullfillmentStatus is null and indicates the order was not yet submitted for fulfillment.
  • BEING_FULFILLED: Indicates the order was submitted to the fulfillment system.
  • FULFILLED: Indicates the order was fulfilled and assets created.
  • CANCELLED: Indicates the order was cancelled.
Note: Use standard REST invocation to update the fulfillmentStatus, transactionDate, and transactionId attributes in the configBomInstance resource using a "configId".

ClosedCreate an Order from an External Client Application

By integrating ABO with an Oracle CPQ – External Client Application integration, users of the external client application can create an order from the external client application.

Complete the following steps:

  1. Open the external client application that an administrator has integrated with CPQ.
  2. Use the Configurator UI to configure the external client application item.
  3. Click Add to Cart to save the item to the external client application cart.

The "Add to Cart" action invokes the Delta functionality in ABO and saves a BOM instance to the configBomInstance resource. The saved BOM instance can be identified by the "configId". The configBomInstance resource passes the "configId" and the associated BOM instance to the external client application along with a JSON payload.


ClosedReconfigure an Asset-Based Product Using a REST API

The "Reconfigure" action is included in the 2017 R1 ABO package. External client application users can use this action to reconfigure an asset-based product prior to fulfillment and can perform this action on either a new asset-based product or an existing asset-based product undergoing modification.

Complete the following steps:

  1. Follow the steps in the "Create an Order from an External Client Application" section or modify an existing asset by selecting an asset from the Customer Assets page in the external client application and clicking Modify. The Configurator UI opens in an embedded iFrame in the external client application and displays the new or existing asset-based product.
  2. Use the Configurator UI to make configuration changes to the quote.
  3. Click Add to Cart to create a new quote in the external client application cart.

    The action generates a new "configId" in the configBomInstance resource and sends the BOM items to the external client application cart along with the generated "configId".

  4. Click Reconfigure from the external client application cart.

    • The "Reconfigure" action invokes the Reconfigure REST API on the configBomInstance. The "configId" internally calculates the projected state of the configuration and generates a "configurationURL", which is the URL for the embedded iFrame that displays the Configurator UI in the external client application.
    • The Configurator UI will include the configuration changes made when initially creating or modifying the configBomInstance.
  5. Use the Configurator UI to make additional changes to the configuration information.
  6. Click Add to Cart.

    The "Add to Cart" action saves the changes to the original "configId", updates the BOM instance data in the configBomInstance resource, and passes the "configId" and the reconfigured BOM instance to the external client application along with a JSON payload.

  7. The external client application submits the modified BOM for fulfillment. After order fulfillment, the asset is updated.
  8. Once the asset changes synchronize, the external client application or the fulfillment system invokes the REST API using the "configId", which updates the fulfillmentStatus attribute for the configBomInstance resource to FULFILLED.

ClosedCreate a Follow-On Order Using a REST API

A "Follow-On Order" action on a configBomInstance is included with the 2017 R1 ABO package. External client application users can use this action to create a follow-on order from an existing order not yet fulfilled. External client application users can place a new order for an existing order line by creating a follow-on order with a fulfillment date in the future.

Complete the following steps:

  1. Create an order using items in an external client application cart.
  2. Submit the order for fulfillment.
  3. Select the order and click the Follow-On Order button on the external client application UI.

    • This invokes the Follow-On Order REST API on the configBomInstance and uses the previously generated "configId" to internally calculate the projected state of the existing unfulfilled order and generate a new "configurationURL".
    • The configuratorURL is the URL of the iFrame that displays the Oracle CPQ Model Configuration page in the external client application. The Model Configuration page includes the user changes to the subscription.
  4. Modify the configuration information using the Configurator UI.
  5. Click Add to Cart to create a new order in the external client application cart.

    The action generates a new "configId’ in the configBomInstance resource and sends the BOM items to an external client application cart along with the generated "configId".

  6. The external client application submits the modified BOM for fulfillment. After order fulfillment, the asset is updated.
  7. Once the asset changes synchronize, the external client application or the fulfillment system invokes the Synchronize REST API using the "configId", which updates the fulfillmentStatus attribute for the configBomInstance resource to FULFILLED.

ClosedUpdate an Asset Using a REST API

When a fulfillment system fulfills an order, the external client application or the fulfillment system will invoke a REST API to create or update the assets in the assets resource. Asset creation generates a traceable item that integrates with the customer’s fulfillment system. After asset creation, customers can view and maintain subscription services through the Customer Assets page.

Customers can use the Synchronize REST API to create or update assets after order fulfillment. For more information about the "Synchronize" action, refer to the Assets REST API topic.


ClosedModify an Asset Using a REST API

The "Modify Asset" action is included with the 2017 R1 ABO package. External client application users can use this action to modify an existing asset stored in CPQ.

Complete the following steps:

  1. Select an existing asset from the Customer Assets page in the external client application.
  2. Click Modify, which invokes the Modify REST API on the asset.

    The Modify REST API internally calculates the projected state of the asset and generates a "configurationURL", which displays the Configurator UI in an embedded iFrame in the external client application.

  3. Use the Configurator UI to modify the asset’s configuration information.
  4. Click Add to Cart to create a new order in the external client application cart. The external client application user creates the new order by modifying the existing asset referenced in Step 1.

    The Add to Cart action generates a new "configId’ in the configBomInstance resource and sends the BOM items to the external client application cart along with the generated "configId".

  5. The external client application submits the modified BOM for fulfillment and uses the standard Update API on the configBomInstance endpoint to update the fulfillmentStatus attribute to BEING_FULFILLED.
  6. Once the fulfillment system fulfills the order, the external client application or the fulfillment system invokes the Synchronize REST API on the asset to create or update assets.
  7. Once the asset changes synchronize, the external client application or the fulfillment system invokes the REST API using the "configId", which updates the fulfillmentStatus attribute for the configBomInstance resource to FULFILLED.

ClosedTerminate an Asset Using a REST API

The ABO functionality introduced in Oracle CPQ 2016 R1 allows sales users to create a subscription for service for a customer and specify a request date for the termination of the service. By integrating ABO with an Oracle CPQ and External Client Application integration, clicking Terminate from the Customer Assets page allows customers to terminate a subscription in the external client application. When the terminate action is fulfilled, the end date of the asset can be updated to the date on which the customer requests termination.

Complete the following steps:

  1. Select an asset from the Customer Assets page in the external client application.
  2. Click Terminate, which invokes a Terminate REST API on the asset.

    • The REST API internally calculates the projected state of the asset and generates a "configId" in the configBomInstance resource. The REST API returns the "configId" as the "lineId" in the response.
    • The external client application uses the "configId" to retrieve the BOM details using the getConfigBom REST API. The external client application submits the BOM for fulfillment and invokes the REST API using the "configId", which updates the fullfillmentStatus attribute for the configBomInstance resource to BEING_FULFILLED.
  3. Once the fulfillment system fulfills the order, the external client application or the fulfillment system invokes the Synchronize REST API on the asset to update assets and set the end date on the asset.
  4. Once the asset changes synchronize, the external client application or the fulfillment system invokes the REST API using the "configId", which updates the fulfillmentStatus attribute for the configBomInstance resource to FULFILLED.

ClosedSuspend an Asset Using a REST API

The ABO enhancements in Oracle CPQ 2017 R1 allow external client application users to suspend their subscription service by specifying a Transaction date. By integrating ABO with an Oracle CPQ - External Client Application integration, clicking Suspend from the Customer Assets page allows self-service users to suspend a subscription in the external client application. When the "Suspend" action is fulfilled, the suspend date of the asset can be updated to the date on which the customer requests suspension.

Complete the following steps:

  1. Select an asset from the Customer Assets page in the external client application.
  2. Click Suspend, which invokes the Suspend REST API on the asset.

    • The Suspend REST API internally calculates the projected state of the asset and generates a "configId" in the configBomInstance resource. The Suspend REST API response returns the "configId" as the "lineId".
    • The external client application uses the "configId" to retrieve the BOM details using the getConfigBom REST API. Once retrieved, the external client application submits the BOM for fulfillment and invokes the REST API using the "configId" to update the fulfillmentStatus attribute for the configBomInstance resource to BEING_FULFILLED.
  3. Once the order is fulfilled by the fulfillment system, the external client application or the fulfillment system invokes the Synchronize REST API on the asset to update the assets and set the suspend date on the asset.
  4. Once the asset changes synchronize, the external client application or the fulfillment system invokes the REST API using the "configId", which updates the fulfillmentStatus attribute for the configBomInstance resource to FULFILLED.

ClosedResume an Asset Using a REST API

The ABO enhancements in Oracle CPQ 2017 R1 allow external client application users to resume their suspended subscription service by specifying a Transaction date. By integrating ABO with an Oracle CPQ - External Client Application integration, clicking Resume from the Customer Assets page allows external client application users to resume a subscription that was suspended earlier using a suspend action in the external client application. When fulfilled, the resume date of the asset can be updated to the date on which the customer requests service to be resumed.

Complete the following steps:

  1. Select an asset from the Customer Assets page in the external client application.
  2. Click Resume to invoke the Resume REST API on the asset.

    • The Resume REST API internally calculates the projected state of the asset and generates a "configId" in the configBomInstance resource. The Resume REST API response returns the "configId" as the "lineId".
    • The external client application uses the "configId" to retrieve the BOM details using the getConfigBom REST API. The external client application then submits the BOM for fulfillment and invokes the REST API using the "configId", which updates the fulfillmentStatus attribute for the configBomInstance resource to BEING_FULFILLED.
  3. Once the fulfillment system fulfills the order, the external client application or the fulfillment system invokes the Synchronize REST API on the asset to update the assets and set the resume date on the asset.
  4. Once asset changes synchronize, the external client application or the fulfillment system invokes the REST API using the "configId", which updates the fulfillmentStatus attribute for the configBomInstance resource to FULFILLED.

ClosedRenew an Asset Using a REST API

The ABO enhancements in Oracle CPQ 2017 R1 allow external client application users to renew their subscription service by specifying a Transaction date. By integrating ABO with an Oracle CPQ - External Client Application integration, clicking Renew from the Customer Assets page allows external client application users to renew a subscription in the external client application. When the "Renew" action is fulfilled, the end date of the asset can be updated to a new date up to when the customer requests service renewal.

Complete the following steps:

  1. Select an asset from the Customer Assets page in the external client application.
  2. Click Renew, which invokes the Renew REST API on the asset.

    • The Renew REST API internally calculates the projected state of the asset and generates a "configId" in the configBomInstance resource. The Renew REST API returns the "configId" as the "lineId" in the response.
    • The external client application uses the "configId" to retrieve the BOM details using the getConfigBom REST API. The external client application then submits the BOM for fulfillment and invokes the REST API using the "configId", which updates the fulfillmentStatus attribute for the configBomInstance resource to BEING_FULFILLED.
  3. Once the fulfillment system fulfills the order, the external client application or the fulfillment system invokes the Synchronize REST API on the asset to update the asset and set the end date on the asset.
  4. Once the asset changes synchronize, the external client application or the fulfillment system invokes the REST API using the "configId", which updates the fulfillmentStatus attribute for the configBomInstance resource to FULFILLED.

Administration

ClosedAdd Parameters to an External URL to Launch the Model Configuration Page

Add parameters to an external URL to allow external applications, such as Oracle CX Commerce, to directly launch the Model Configuration page from the external application. Provided below are descriptions of the parameters included in the example:

  • _from_partner=true: Indicates the Model Configuration page is to open from an external URL.
  • assetKey: The unique identifier for a specific asset. *Required
  • id: The unique identifier for a Transaction within CPQ. *Optional
  • sourceIdentifier: The variable name of the external application identifier. *Optional
    When not supplied, the default value is “_external_order”.
  • transactionDate: The date on which an asset will be modified or a Follow-On order fulfilled. *Optional

External URL example

When parameters are added to an external URL, the Model Configuration page opens in the external application. Users can then modify the Configuration selections, as simulated below.

When parameters are added to an external URL, the Model Configuration page opens in the external application.


ClosedAdd Parameters to an Internal URL To Launch the Model Configuration Page

Add parameters to an internal URL to allow users to directly access the Model Configuration page from Oracle CPQ to modify an asset. Provided below are descriptions of the parameters included in the below example:

  • _from_punchin=true: Indicates the Model Configuration page is to open from an internal URL.
  • actionVarName: The variable name of the action used to copy Transaction lines. *Required
  • assetKey: The unique identifier for a specific asset. *Required
  • id: The unique identifier for a Transaction within CPQ. *Required
  • sourceIdentifier: The variable name of the Commerce process. *Required
  • transactionDate: The date on which an asset will be modified or a Follow-On order fulfilled. *Optional

Internal URL sample with parameters to launch the Model Configuration Page

When parameters are added to an internal URL, the Model Configuration page opens in CPQ, allowing users to modify the asset’s Configuration settings. Users can then click any of the action buttons displayed across the top of the page.

Model Configuration launched from internal URL

By clicking Add to Transaction, the modified asset is added to a Transaction as a line item.

Modified asset added to Transaction


Notes

Notes:

Related Topics

Related Topics Link IconSee Also