Upgrade an asset

With Asset Based Ordering, the ability to upgrade an existing asset is supported when you complete some preliminary set up work.

With Asset Based Ordering, the ability to upgrade an existing asset is supported.

Oracle CPQ maintains a custom upgrade options table for Commerce to query in order to know which upgrades are available for a given asset. The sections that follow in this topic provide information on how to set up the required tables and how to complete some basic Oracle CPQ configuration steps to support asset based ordering.

Oracle CPQ Data Table Set Up

Create a data table named "INT_UPGRADE_OPTIONS" with the following schema:

Column Name Data Type
currentOffer String
currentModel String
upgradeName String
upgradeProductId String

The data table column mapping information for this data table is as follows:

  • currentModel – Maps to the variable name of the root config model in Oracle CPQ which the upgrade offer applies to.
  • currentOffer – Maps to a configurable attribute on the root config model in Oracle CPQ. This needs to be stored as an attribute mapping onto the root asset as well. This value is sent from Oracle Commerce while retrieving the upgrade options.
  • upgradeName – Maps to the _config_upgrade_name that is passed from Oracle CX Commerce to Oracle CPQ, which drives recommendation rules on the upgrade. Not used by Commerce for any other purpose.
  • upgradeProductID – Maps to the Product Id of the upgrade offer in Commerce. Used to show upgrade details (for example, product display name, description, images, etc.) to the shopper.

Note: We recommend you index the currentModel and/or currentOffer columns.

The INT_UPGRADE_OPTIONS data table is queried by Oracle CX Commerce to help identify what upgrades are available for a given asset and present those upgrade options to the shopper.

For example:

currentOffer currentModel upgradeName upgradeProductId
4ForUDeal nPlay 4ForUDealPlus prod102

Oracle CPQ Upgrade Asset Configuration Set Up

  1. Create a configurable text attribute named "currentOffer". This attribute should have either a default value set or have its value recommended based on specific criteria on the configuration; however, the value should not be editable directly by the user. The value of the "currentOffer" attribute is used in the INT_UPGRADE_OPTIONS data table that Commerce queries.
  2. Use (Bulk) Recommendation Rules that run when the value of the "_config_upgrade_name" attribute matches the value of the "upgradeName" column in the "INT_UPGRADE_OPTIONS" data table. Part of the rule should update the "currentOffer" attribute from its previous value to the "upgradeName" as well. Unlike normal configurable attributes, the value of "_config_upgrade_name" persists within all models of a system, so inter-model rules are not required to reference "_config_upgrade_name" and use them in Recommendation Rules on child models. The value of "_config_upgrade_name" also does not persist on the configurations, like other attributes do, so whether "_config_upgrade_name" has a value or not distinguishes asset upgrades from a typical asset modify.

Note: For more information on understanding and using the asset Upgrade feature in Commerce, refer to the Use Asset Based Ordering section of the Using Oracle CPQ with Oracle CX Commerce book (20A or greater version).

You can also customize configurations of complex assets in Commerce without being redirected to an Oracle CPQ hosted iFrame which may have a separate and distinct user interface look and feel that creates a disjointed user experience. This capability is known as the Direct API Configuration feature and can be used as another option for the Modify and Upgrade actions. For more information on the Direct API configuration feature, refer to the Customize configurations in Commerce using the Oracle CPQ Configuration API section of the Using Oracle CPQ Features with Oracle CX Commerce book.