Asset-Based Ordering Implementation
Overview
Successful implementation of Asset-Based Ordering requires the following:
-
BOM Mapping Rules - Administrators must set up Bill of Material (BOM) Mapping Rules to enable Asset-Based Ordering. Services and subscriptions are contained in the BOM as sellable objects. For additional information, refer to BOM Mapping and BOM Mapping Implementation Resources.
-
REST APIs - Create, query, or modify assets using REST APIs and perform asset-based operations such as Terminate, Suspend, Resume, and Renew from an external client application. For additional information, refer to Asset REST APIs or REST API Services for CPQ.
-
Subscription Workbench (previously called the Customer Assets page) - Display, search, and administer assets.
-
Local Asset Repository - Store asset information locally in the Oracle CPQ asset repository.
-
Asset Based Ordering (ABO) Implementation Package - Use the ABO implementation package to implement Asset-Based Ordering.
- (Optional) Customers can 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 Asset-Based Ordering. For additional information, refer to Asset-Based Ordering External Orders.
Note: To view your current ABO package version, view the comments in the Admin > BML Library > ORCL_ABO > abo_initializeContext function.
23B Features
The following enhancement is available with Oracle CPQ Update 23B. For additional information refer to the Oracle CPQ 19B and Later ABO Implementation Guide.
ABO Implementation Standard Process Support
Oracle CPQ 23B introduces the Standard Process for new Oracle Sales integrated site installations. This feature only effects new ABO implementations using the Standard Process. There is no change to existing ABO implementations.
Customers already using Asset-Based Ordering that want to upgrade to the Oracle CPQ 23B platform release, can continue to use the 21A ABO or earlier implementation packages.
Customers implementing the new Commerce Standard Process (available in Oracle CPQ 23B platform release), must import the new 23B ABO implementation package and optionally merge their customization manually to the new package after careful planning and testing during implementation.
- CPQ delivers a new ABO implementation package in Oracle CPQ 23B to support the new Commerce Standard Process. The Standard Process simplifies administrator setup for new ABO implementations by providing a pre-defined set of ABO-related Commerce attributes, actions, library functions, and data columns.
- Customers can import the new 23B ABO implementation package to add additional content such as Commerce library functions and util libraries.
- Customers can make UI layout changes by adding attributes and actions as per their requirements.
- Implementation details that are not relevant while using the new Commerce Standard Process and the latest 23B ABO Implementation package are duly noted in the Oracle CPQ ABO Implementation Guide.
- All other sections are relevant and should be reviewed carefully during implementation.
22D Features
The following enhancement is available with Oracle CPQ Update 22D.
Custom Asset Field Variable Name Changes
Beginning in Oracle CPQ 22D, a "_c" suffix will be appended to the variable name provided by the administrator. Prior to Oracle CPQ 22D, custom asset field variable names had a "_asset_custom_" prefix.
22C Features
The following enhancement is available with Oracle CPQ Update 22C.
Oracle CPQ 22C provides a significant increase in the number of asset fields, including in the size of string type fields. This update also makes asset field administration consistent with other CPQ items.
22B Features
The following enhancement is available with Oracle CPQ Update 22B.
Delta Pricing for Projected Assets
Oracle CPQ 21D delivered delta pricing to Oracle CPQ Commerce transactions for ABO sites. Oracle CPQ 22B extends the delta pricing functionality to include projected assets. Therefore, Commerce Delta Pricing must be enabled to provide delta pricing for projected assets. The reference application sub-document "netAmount_l" attribute value from the prior order is used to populate the prior price value to enable the delta price calculation for open orders.
Customers can view delta pricing for Follow-On orders and Reconfigure actions.
Sample Use Case
A procurement specialist for a hospital places a monthly order for personal protective equipment (PPE).
A few days after the order is placed, hospital guidelines are updated stating hospital staff must double mask. The initial order supply will not be enough to comply with the new guidelines. The procurement specialist places a new follow-on order for the initial order. As shown in the following image, the Delta Price and Rollup Delta Price are displayed for the follow-on items.
Shortly after the follow-on order the procurement specialist wants to order additional PPE items to receive a volume discount. He is able to reconfigure the follow-on order, which is still in the Created state. The following image shows the updated Delta Price, Rollup Delta Price, and List Price values.
The reference application sub-document "netAmount_l
" attribute value is used to populate the prior price value to enable the Delta Price calculation for open orders. CPQ 22B also provides the new Variable Name of Net Amount attribute at the Sub-Document Level used for Delta Price Commerce Option in case your site uses a custom attribute for the sub-document net amount value. This option doesn't need to be specified if you use the default sub-document "netAmount_l
" attribute.
If this option is not specified and the sub-document Net Amount attribute does not exist, Delta Price will not be calculated for open orders.
- If your site uses the default sub-document "
netAmount_l
" attribute and Commerce Delta Pricing for ABO is enabled, you don't need to do anything to enable Delta Pricing for Projected Assets, - If Commerce Delta Pricing for ABO is not enabled, you need to enable Commerce Delta Pricing, refer to Enable Commerce Delta Pricing for ABO.
- If your site uses a custom net amount attribute, navigate to Admin > Commerce Settings and specify the Variable Name of Net Amount attribute at the Sub-Document Level used for Delta Price Commerce Option.
Note: Sales users need to invoke a modify type action to populate the delta price values in the Line Item Grid.
21D Features
The following enhancements are available with Oracle CPQ Update 21D.
Reconfigure Child Models from the Line Item Grid
Beginning in Oracle CPQ 21D, users who have ABO enabled can directly reconfigure child system models from the Line Item Grid in the Transaction UI. In previous releases, users could only reconfigure the child models of a system by first reconfiguring the root model, then navigating to the child to make changes. This feature makes reconfiguring child system models easier for end users.
For an ABO enabled site with system configuration implemented, the following ABO Commerce library functions must be added to the Transaction and Transaction Line Commerce processes. BML scripts for these library functions are included as part of the 19B or later ABO Implementation Package and detailed instructions are included in the Oracle CPQ Asset-Based Ordering Implementation Guide (19B and later).
oRCL_abo_ReconfigureAction
oRCL_abo_BuildLineItemHierarchy
Commerce Delta Pricing for ABO
Oracle CPQ 21B provided configuration delta pricing information inside the Configuration UI when implemented with Asset-Based Ordering (ABO). Oracle CPQ 21D introduces a new sub-document Delta Pricing Attribute Set and new Commerce library functions to extend the delta pricing to Oracle CPQ Commerce transactions for ABO sites.
The sub-document Delta Pricing Set contains the following Currency type attributes:
- The Delta Price attribute (
_delta_price
) displays the price difference for the updated line item. - The Prior Price attribute (
_prior_price
) displays the prior price for the updated line item. - The Rollup Delta Price attribute (
_rollup_delta_price
) displays the model level price difference of all child items for the updated model.
This feature allows for delta pricing information to be easily available to end users by enabling the following valuable operations:
- View delta pricing information on the Line Item Grid and the sub-document page for both legacy and JET Transaction UIs.
- Support delta pricing on the Transaction UI for Add, Update, Delete, Renew, and Terminate ABO flows.
- Provide rollup delta pricing for new, updated, and modified models.
Sample Use Case
A sales user wants to update a SIM card order for their customer. The customer wants to change the original request of 100 - 5G SIM cards to 400 – 5G SIM cards, and 100 - 3G SIM cards to 25 – 3G SIM cards. In the Subscription Workbench, the sales user selects the previously fulfilled model and clicks Modify to bring up the existing asset details. After changing the SIM card quantities for the previous configuration, the sales user clicks Add to Transaction to proceed.
The transaction displays the original request (100 - 4G SIM cards, 100 - 5G SIM cards, and 100 - 3G SIM cards) and the modified order (100 - 4G SIM cards, 400 - 5G SIM cards, and 25 - 3G SIM cards). The Prior Price and Delta Price columns show the values for each line item, and the Rollup Delta Price column shows the total delta change for the model.
Note: For instructions to enable this feature, refer to Enable Commerce Delta Pricing
21B Features
The following enhancements are available with Oracle CPQ Update 21B.
Copy Transaction and Transaction Lines for an Asset
Beginning in Oracle 21B, we have provided customers the ability to easily copy ABO order lines and Transactions. When creating similar Transactions, this feature can reduce configuration errors and make the ordering process more efficient for customers.
Copying a Transaction creates a new Transaction from an existing Transaction in the Transaction Manager. The copied Transaction will contain the attributes as defined by the Copy action Initialization tab. The new Transaction will have newly assigned Instance IDs that are different from the source Transaction. The Line Items will have the Action Code of Add and the Transaction ID, User Name, and Creation Date are updated accordingly.
Copying a Transaction creates a new Transaction from an existing Transaction. The new Transaction's assetkey (itemInstanceId_l
) and Action Code are assigned accordingly when the initialization for these attributes is set to 'Revert to Default'. The rootAssetKey_l
is assigned based on the sub-document advanced default logic similar to the Subscription Management (SM)/Fusion Order Management (FOM) package and when the initialization is set to 'Revert to Default'.
End users can select an existing Transaction and click Copy. The selected Transaction is copied and the new Transaction displays for the user to modify and/or save.
Copy Transaction Lines creates a new Line Item(s) by copying an existing Transaction Line or Lines. When Line Items are copied using any actions in Commerce, all the ABO-required data is copied appropriately and ABO functionality continues to work as expected.
To copy Transaction Lines, a user opens an existing Transaction and selects the Line Items to copy. If the Line Item has nested line items, the nested items are included with the Copy Line Items action.
The Copy Line Items dialog box displays to allow the user to indicate if multiple copies of the line item(s) are desired.
The Line Items are copied into the Line Item Grid and are given different instance IDs. The copied Line Items are available for the user to modify and/or save with the Transaction.
Note: For instructions to enable this feature, refer to Enable Copy Transaction and Transaction Lines in Oracle CPQ.
Configuration Delta Pricing for ABO
In Oracle CPQ 21B Asset-Based Ordering users are able to easily view pricing differences between the current state of an asset configuration and pending asset modifications of that same configuration. This delta configuration pricing information is supported inside the Configuration User Interface. The delta pricing feature is supported only for BOM Items/BOM Mapping in Oracle CPQ with Oracle CX Commerce integrations. When implemented, end users are able to view relevant pricing information to aid in pricing and purchasing decisions.
Sample Use Case
Lisa wants to view the delta price between the last configured model for her customer and a possible model configuration change. In the Subscription Workbench, Lisa selects the previously configured model and clicks Modify to bring up the existing asset details.
Lisa selects different RAM and graphics card selections from that of the previous model configuration and clicks Update. The delta price for each item is shown in the Delta Price column for the line items.
Additionally, the Total Price is updated with the Total Delta Price of the BOM displayed. Since the price difference is within her customer's budget, Lisa clicks Add to Transaction to proceed with this asset.
Note: For instructions to enable this feature, refer to Enable Configuration Delta Pricing.
21A Features
The following enhancements are available in the 21A ABO Implementation Package. For additional information refer to the Oracle CPQ 19B ABO Implementation Guide.
Business Time Zone Setting for ABO
The Oracle CPQ Ref App used by the ABO package stores the commerce start, end, and request dates as date-only format without timestamp and time zone, while asset start and end dates are stored with full timestamp information. In Oracle CPQ 20C and earlier, during the translation of the date information between commerce and asset, the commerce date is always based on the "0" hour of the server default time zone (usually GMT+0).
End users that are in the same time zone as the server default see the commerce asset date and time information consistently. However, when an end user is located in a different time zone than the server default and their user profile is set to display their local time zone, the conversion between the server time zone and the user's local time zone may transition midnight and cause the commerce date display to be different than the asset date display.
In Oracle CPQ 21A, an updated 21A ABO package provides a new administrator-defined business-level time zone setting called businessTimeZone
. The business time zone is used, rather than the server default time zone, as the basis for all asset-related date and full timestamp translations. This provides administrators the ability to set a time zone that is more relevant to their business.
The updated package interprets the commerce date fields consistently during ABO processing based on the specified business time zone setting. End users may need instruction on how to interpret their user interface display of start, end, and request date fields in relation to the overall business time zone setting.
Within the 21A ABO package, the abo_loadDefaultContext
BML function has been enhanced to include the businessTimeZone
setting.
Existing customers wanting to upgrade to the 21A ABO package can upgrade and merge their customization to the new package or review the text files provided in the 21A ABO package with their current files and make the necessary modifications. For more information about upgrading, refer to the Oracle CPQ 19B or later Asset-Based Ordering Implementation Guide.
Notes:
-
The default
businessTimeZone
setting is GMT+0. - Once set up, asset start and end dates are populated based on business time zone; therefore, changing the business time zone setting to a different time zone should be avoided. If a change to the business time zone is required, it must be carefully planned with detailed analysis regarding the impact to legacy data.
-
Only an end user with the same time zone preference as the business time zone will see start and end date matching the business time zone on the asset user interface. End users in different time zones than the designated business time zone will see a different start and end date displayed for an asset based on that end user's time zone preference. End users need to be aware of how the date fields are displayed in relation to the overall company business time zone setting.
19B Features
The following enhancements are available in the 19B ABO Implementation Package. For additional information refer to the Oracle CPQ 19B ABO Implementation Guide.
Simple Product Support for Subscription Ordering
Beginning in Oracle CPQ 19B, customers can enable Subscription Ordering support to directly add simple products to a Commerce Transaction for an asset-based order. A simple product is a product that does not have its part number associated with any of the related configuration models. When enabled, users can use Quick Add to add simple products to a Transaction without navigating away from the Transaction page. They can also add simple products using a parts search.
When Subscription Ordering for Simple Products is enabled and a simple product is added to a Transaction, the following attributes are automatically populated.
Line Item Attribute |
Simple Product Value |
---|---|
BOM ID |
SPI |
BOM Part Number |
The simple product part number |
BOM Quantity |
1 |
BOM Level |
0 |
Asset Key |
A unique ID is generated to track the simple product as an asset. |
Action Code |
Add |
For instructions to enable this option, refer to Enable Subscription Ordering for Simple Products.
Notes:
- Oracle CPQ strongly recommends that administrators install the 19B ABO Implementation Package to use simple products. Refer to the 19B ABO Implementation Guide for instructions to use simple products with the 18D ABO Package.
-
Simple Product functionality is not supported in external order implementations such as Oracle CX Commerce.
Multi-Select Support for Asset Operations
Users can now select multiple assets on the Subscription Workbench (previously called the Customer Assets page) to modify, renew, resume, suspend, or terminate. For Example: A customer needs to terminate cloud backup services for five users effective on the 1st day of next month. The Customer Support Representative identifies the assets to be terminated, selects the assets, then clicks Terminate.
After the Customer Support Representative selects Terminate, the Transaction UI page opens. The selected assets and the appropriate action are displayed.
- Administrators must install the 19B ABO Implementation Package to enable Multi-select modify for multiple assets.
- Multi-select suspend, resume, renew, and terminate will work with the 18D ABO package.
New Transaction Support for Asset Operations
Beginning in Oracle CPQ 19B, customers can perform asset operations from the Subscription Workbench for assets without an associated Transaction ID. When a user invokes an asset operation for an asset without an associated Transaction ID, a new transaction is created and associated with the requested operation. This behavior is also supported in the v8 asset operation REST APIs.
- Administrators must install the 19B ABO Implementation Package to enable New Transaction Support for Asset Operations.
- New Transaction Support is not supported for external applications in Oracle CPQ 19B.
Notes:
- Most of the 19B Asset-Based Ordering enhancements require installation of the 19B ABO Implementation Package. Exceptions are noted for some multi-select operations.
- If customers using the 18D ABO Implementation Package do not wish to use the 19B Asset-Based Ordering enhancements, the 18D ABO Implementation Package will continue to work.
18D Features
The following enhancements are available in the 18D ABO Implementation Package. For additional information refer to the Oracle CPQ 18D ABO Implementation Guide.
Support for System Configuration Models
In Oracle CPQ Release 18D, customers can use Asset-Based Ordering in conjunction with System Configuration and the Oracle CX Commerce integration. The 18D ABO Implementation Package provides support for system assets, allowing customers to use Asset-Based Ordering flows on System Configuration models in both Oracle CPQ and Oracle CX Commerce order scenarios.
- When using Asset-Based Ordering with System Configuration, only root models are available on the Customer Assets page.
- Users can Suspend, Resume, and Renew assets containing root, child, or grandchild models. The models are then added as new line items to the Line Item Grid and can be fulfilled.
- Clicking Terminate from the Customer Assets page will terminate the root asset and all child assets and create a Transaction Line in Commerce. When the Terminate action is fulfilled, the End Date is updated to reflect the date the root asset was terminated.
- This feature can be supported only if assets are maintained in the Oracle CPQ Repository. If assets are stored externally then this feature cannot be supported. In other words, in order for this feature to work as expected, assets data should be created in CPQ.
Suspend and Resume Actions on Child and Grandchild Models and Parts
In Oracle CPQ Release 18D, when using modify, reconfigure, or follow-on order Asset-Based Ordering flows on assets, users can Suspend and Resume child and grandchild models and parts in a configurator session. In prior releases, these operations were only supported on the asset as a whole.
This enhancement provides a basic framework that provides customers the ability to customize the behavior by creating Configuration attributes, BOM mappings, and constraints to support the Suspend and Resume operations on child models, according to their business requirements.
The following section provides a list of typical setup information for Suspend and Resume on child and grandchild models and parts.
- Create two Configuration attributes for each model or part you are enabling the Suspend and Resume operations -- one to capture the Suspend and Resume actions and another optional Configuration attribute to store the projected state of the asset for rule enforcement. If this enhancement is enabled for all models, administrators can create the Configuration attributes at the Product Family level and add them to the Configuration flow layout at the child and grandchild level. For example:
- Create a Configuration attribute with variable name 'oRCL_ABO_Action' to capture the user intent to Suspend or Resume.
- Variable Name = oRCL_ABO_Action
- Data Type = Text
- Display Type = Single Select Menu
- Menu Values = SUSPEND, RESUME
- Create a configuration attribute with variable name 'oRCL_ABO_PriorAssetState' to capture the projected state of the asset that is calculated and stored in the attribute at runtime. This can also be created as a hidden attribute.
- Variable Name = oRCL_ABO_PriorAssetState
- Data Type = Text or Single Select Menu
- If we are defining a Single Select Menu, then the menu values should be as follows - ACTIVE, SUSPENDED
- The variable name of the Configuration attribute is not significant, but it must match the BOM Mapping rules created later.
- Create a Configuration attribute with variable name 'oRCL_ABO_Action' to capture the user intent to Suspend or Resume.
- Add configuration attributes 'oRCL_ABO_Action' and 'oRCL_ABO_PriorAssetState' to the child and grandchild levels of a UI layout, so that Suspend and Resume actions are available on child models to users.
-
Create constraints to ensure the Suspend and Resume actions are only enabled or disabled in the Model Configuration page session depending on the value of the projected state of the asset. This allows the user to determine whether Suspend or Resume is allowed. In the above sample setup, administrators can create the rule at the Product Family level. For example, a sample script can be as follows:
if (oRCL_ABO_PriorAssetState == "SUSPENDED") { return "RESUME|^|"; } if (oRCL_ABO_PriorAssetState == "ACTIVE") { return "SUSPEND|^|"; } if (oRCL_ABO_PriorAssetState == "") { return "SUSPEND|^|"; } return "SUSPEND|^|RESUME|^|";
- Navigate to Admin > Data Tables, For each model or part for which this enhancement is enabled, create relevant BOM data table mappings in the Oracle_BomAttrMap data table between the Commerce line attribute 'oRCL_ABO_ActionCode_l' and the configuration attribute for capturing user intent to Suspend or Resume, that is 'oRCL_ABO_Action' in the above example.
- Optionally, create relevant BOM data table mappings in Oracle_BomAttrMap between BOM attribute 'oRCL_ABO_PriorAssetState' and the configuration attribute created to capture the projected state of the asset, that is 'oRCL_ABO_PriorAssetState' in the above example.
Retain Configuration Attributes without Mapping in BOM Tables
In prior releases before Oracle CPQ 18D, Configuration attributes were not preserved in Asset-Based Ordering flows unless there was a BOM Mapping rule defined for them. Oracle CPQ Release 18D simplifies the Asset-Based Ordering setup by allowing administrators to add Configuration attributes to the Model Configuration page layout without mapping the attributes in the BOM Mapping tables. The Configuration attribute values are retained and retrieved when an asset is modified or a new follow-on order is created.
- A Sales representative no longer needs to be presented with default values in the configurator UI for attributes that are not included in BOM mapping when modifying an asset or creating a follow-on order.
- With multiple open orders, prior configurations are accurately preserved and retrieved.
- Supports scenarios where orders are stored within Oracle CPQ and outside of Oracle CPQ (e.g. Oracle CX Commerce).
Update Configuration REST API Operation
In Release 18D, in order to preserve unmapped configuration attributes and to support system configuration, an additional RESTful call is required to copy these configuration attribute values from order line and store them on the root asset after fulfillment.
The "updateConfiguration" REST API operation accumulates a projection of all configuration attributes from all relevant open order lines related to an asset and stores this information in the "configAttrInfo" attribute on the root asset. For additional information, refer to Asset REST APIs.
- When orders are stored in CPQ, invoke the update configuration REST API operation, after invoking the synchronize operation to create or update assets in the Oracle CPQ Asset repository during the fulfillment flow. The following tasks are required to update configuration values:
-
Invoke the synchronize REST API operation. For example:
https://sitename.oracle.com/rest/v7/assets/actions/synchronize
-
Invoke the update configuration REST API operation. For example:
https://sitename.oracle.com/rest/v7/assets/actions/updateConfiguration
- When orders are stored outside of Oracle CPQ (e.g. in Oracle CX Commerce), the "updateConfiguration" action is automatically invoked when the REST API is invoked to update the "fulfillmentStatus" attribute of the "configBomInstance"' resource to "FULFILLED". For orders stored outside of CPQ, the following flow is expected during fulfillment:
- When the order is submitted for fulfillment, invoke a REST API call to update the "fulfillmentStatus" attribute of the "configBomInstance" resource to "BEING_FULFILLED".
After the order is fulfilled by the fulfillment system, invoke the synchronize REST API operation.
https://sitename.oracle.com/rest/v7/assets/actions/synchronize
- After the order is fulfilled, invoke a REST API call to update the "fulfillmentStatus" attribute of the "configBomInstance" resource to "FULFILLED".
Note: The "updateConfiguration" action is automatically invoked and an additional API call is not required to update configuration values in assets.
Reconfigure an Asset After Resume or Renew Operations
In releases prior to Oracle CPQ 18D, reconfiguring an asset after performing a Renew or Resume operation will throw an error. In Oracle CPQ 18D, reconfiguring renewed or resumed order lines is supported.
The customer can now reconfigure the resumed or renewed service from the Oracle CPQ Model Configuration page. This enhancement helps a cable company user, to make changes to an asset, after the contract date is renewed or resumed post service break.
Reconfigure, Modify, and Follow-On Order REST API Operations
In releases prior to Oracle CPQ 18B, a client application has to make two separate calls to perform reconfigure, modify, or follow-on order operations.
-
The modify REST endpoint is invoked, the projected state of the asset is calculated and a URL with ProjectedAssetCache(PAC) key is returned in the response. For example:
"configuratorURL": https://sitename/commerce/new_equipment/products/model_configs.jsp?_from_partner=true&product_line=laptop&model=laptopModel&segment=computer&bm_sales_root_bom_item_id=abo_98228aac-867e-43a7-9823-76dc7c444dca&configContextKey=be2c0b20-49e4-4642-adfc-a207b529b282
- The client application uses the response "configurationURL" to launch the configurator.
Beginning in Oracle CPQ 18B, additional URL parameters are passed during reconfigure, modify, or follow-on order operations. These parameters allow client applications to directly launch the configurator when preforming reconfigure, modify, or follow-on order operations. The following additional URL parameters are included:
- assetKey - An invariant key that uniquely identifies the asset component for the lifetime of the asset. This is a required parameter and this attribute value can be found by querying assets resource.
- transactionDate - The date (in ISO format) on which the transaction is effective. This is optional. If a date is not passed in then this will default to current date during processing.
- sourceIdentifier - The Oracle CPQ Commerce Process variable name (e.g. oraclecpqo). This parameter is only required for orders stored in CPQ. If a value is not included for the "sourceIdentifier", the operation will default to "_external_order" which indicates that the order is stored outside CPQ.
- id - The transaction identifier. This parameter is only required for orders stored in CPQ. This parameter is used to synchronize the modified data to the referenced Transaction during modify or follow-on order operations.
Note: Only authenticated users who are logged in to the application can use the additional URL parameters to directly launch the configurator.
Beginning in Oracle CPQ 18C, additional security access tokens are passed as URL parameters during modify and follow-on order operations. The additional security access tokens enable guest users to directly launch the configurator when preforming modify or follow-on order operations.
Note: External applications need to setup an Authentication Certificate Integration to acquire security access tokens. For more information, refer to Oracle CX Commerce Integration > Create an Authentication Certificate Integration Type.
The access token should be used, as URL parameters when the following REST APIs are invoked from external applications. The following access token parameters must be included in the URL: accessTokenData, accessToken, and publicKeyVarName.
Sample URL with the new URL parameters
-
When orders are stored in CPQ, "_from_punchin=true" is used in the URL:
https://sitename/commerce/new_equipment/products/model_configs.jsp?_from_punchin=true
&actionVarName=addLineItem_t&id=36575837&assetKey=abo_5b7bfe5e-53bb-4f68-9f18-feb7028d851a
&sourceIdentifier=oraclecpqo&transactionDate=2018-02-05T00:00:000Z -
When orders are stored outside Oracle CPQ in an external application (e.g. Oracle CX Commerce), "_from_partner=true" and access token parameters are used in the URL:
https://sitename/commerce/new_equipment/products/model_configs.jsp?_from_partner=true
&assetKey=abo_73426cef-373f-4e82-849b-d979e03263f2&transactionDate=2018-02-06T00:00:000Z
&accessToken=<accessToken>&accessTokenData=<accessTokenData>&publicKeyVarName=<publicKeyVarName>
The following section provides reconfiguration, modify, and follow-on order examples for REST API calls in Oracle CPQ 2017 R1, Oracle CPQ 18B, and Oracle CPQ 18C.
-
Reconfiguration - Oracle CPQ 2017 R1
-
Invoke the following REST endpoint:
https://sitename/rest/v4/configBomInstance/{configId}/actions/reconfig
- The response returns a "configuratorURL" that can be used to launch the configurator.
-
-
Reconfiguration - Oracle CPQ 18B
An authenticated user logged into the application can invoke the following REST endpoint by passing the "config_id":
https://sitename/commerce/new_equipment/products/external_reconfig.jsp?_config_id=1234
-
Reconfiguration - Oracle CPQ 18C
A guest user can directly invoke the following REST endpoint by passing the "config_id" and access token parameters:
https://sitename/commerce/new_equipment/products/external_reconfig.jsp?_config_id=1234
&accessToken=<accessToken>&accessTokenData=<accessTokenData>&publicKeyVarName=<publicKeyVarName>
-
Modify - Oracle CPQ 2017 R1
-
Invoke the following REST endpoint:
https://sitename/rest/v4/assets/{Id}/actions/modify
- The response returns a "configuratorURL" that can be used to launch the configurator.
-
-
Modify - Oracle CPQ 18B
An authenticated user logged into the application can invoke the following REST endpoint by passing the "_from_partner=true", "assetKey", and "transactionDate":
https://sitename/commerce/new_equipment/products/model_configs.jsp?_from_partner=true
&assetKey=abo_73426cef-373f-4e82-849b-d979e03263f2&transactionDate=2018-02-06T00:00:000Z -
Modify - Oracle CPQ 18C
A guest user can directly invoke the following REST endpoint by passing the "_from_partner=true", "assetKey", "transactionDate", and access token parameters:
https://sitename/commerce/new_equipment/products/model_configs.jsp?_from_partner=true
&assetKey=abo_73426cef-373f-4e82-849b-d979e03263f2&transactionDate=2018-02-06T00:00:000Z
&accessToken=<accessToken>&accessTokenData=<accessTokenData>&publicKeyVarName=<publicKeyVarName>
-
Follow-On Order - Oracle CPQ 2017 R1
-
Invoke the following REST endpoint:
https://sitename/rest/v4/configBomInstance/{configId}/actions/followOnOrder
- The response returns a "configuratorURL" that can be used to launch the configurator.
-
-
Follow-On Order - Oracle CPQ 18B
An authenticated user logged into the application can invoke the following REST endpoint by passing the "_from_partner=true", "assetKey", and "transactionDate":
https://sitename/commerce/new_equipment/products/model_configs.jsp?_from_partner=true
&assetKey=abo_73426cef-373f-4e82-849b-d979e03263f2&transactionDate=2018-02-06T00:00:000Z -
Follow-On Order - Oracle CPQ 18C
A guest user can directly invoke the following REST endpoint by passing the "_from_partner=true", "assetKey", "transactionDate", and access token parameters:
https://sitename/commerce/new_equipment/products/model_configs.jsp?_from_partner=true
&assetKey=abo_73426cef-373f-4e82-849b-d979e03263f2&transactionDate=2018-02-06T00:00:000Z&accessToken=<accessToken>&accessTokenData=<accessTokenData>&publicKeyVarName=<publicKeyVarName>
2017 R1 Features
The following enhancements are available in the 18D ABO Implementation Package. For additional information refer to the Oracle CPQ 2017 R1 ABO Implementation Guide.
External Client Application Integration
As part of the external client application integration, Oracle CPQ administrators must configure a "Client Side" integration to enable a Configurator action for a specific product family. The action sends items to the external client application cart via a button that displays on the Oracle CPQ Model Configuration page after configuring the "Client Side" integration. When using an external client application to create orders, the Oracle CPQ Model Configuration page opens in an embedded iframe in the external client application and allows the user to configure an order.
Either Oracle CPQ or the external client application stores orders independently during the order capture process. When orders stored in Oracle CPQ and orders stored in an external client application co-exist on a customer site, the Asset-Based Ordering solution processes the orders separately. An external client application that stores order data can invoke Oracle CPQ Asset REST APIs to retrieve the active asset list from the Oracle CPQ asset repository for display in their own Customer Assets page. From the Customer Assets page in the external client application, users can perform other asset-based operations such as Modify, Terminate, Suspend, Resume, and Renew by executing the REST API Services for Assets available in Oracle CPQ 2017 R1.
In addition, administrators can use REST APIs to synchronize the asset changes to the Oracle CPQ asset repository or external asset repository after creating and fulfilling external orders based on changes made using asset based operations. When an external client application is used, it can invoke REST APIs to exchange data with the external order fulfillment system.
Notes:
- If customers implement the 2017 R1 Asset-Based Ordering solution and continue to store orders in CPQ, the execution of most asset operations will continue as in the 2016 R1 Asset-Based Ordering implementation. The one exception is the updateAsset operation, which is not available in the 2017 R1 Asset-Based Ordering integration. The abo_updateAsset BML function is available in the 18C and later ABO implementation packages.
- Integrating with an external client application is an optional step. To enable an external client application and integrate with Asset-Based Ordering, administrators must use the Oracle CPQ Edit Integration page to define a "Client Side" integration at the product family level. For more information, refer to the Configuration Integration.
A Configuration BOM Instance (i.e. configBomInstance) and a unique identifier (i.e. configId) are returned to the external client application when a user clicks the integration action from the Oracle CPQ Model Configuration page, which opens in an embedded iFrame in the external client application. Administrators provide a name for the integration action when they integrate with an external client application by defining a "Client Side" integration.
The configBomInstance contains the asset information from the Model Configuration page 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 external order to which the configuration is relevant.
Notes:
- 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.
- For UI integrations, the client-side integration action returns the "configid" in response JSON. When an asset has a Terminate, Renew, Suspend, or Resume call made to it, the "lineId" returned in response JSON contains the "configid".
BML Library Functions for External Client Application Integration
The following BML library functions are available for integration with an external client application. The library functions support access to the configBomInstance stored in CPQ.
- saveconfigbom - 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".
- getconfigbom - Retrieves the configbom stored via the saveConfigBom API and the configBom created via an external client application Configurator UI session. The library function extracts and returns a client integration BOM instance from the Oracle CPQ configBomInstance resource using the "configId".
Note: "getconfigbom" is a RESTful action on the configBomInstance resource.
External Client Integration Resource
The Configuration BOM Instance Resource (i.e. configBomInstance resource) is used primarily when orders are stored in an external client application. Users can perform standard REST operations on the configBomInstance resource. The configBomInstance resource stores the configBomInstance when a user customizes a product using the Oracle CPQ Model Configuration page and adds the product to the shopping cart of the external client application. Oracle CPQ stores all configBomInstances in its own repository. A unique identifier (configId) allows users to locate a saved configBominstance, and REST APIs are available to extract and return the BOM instance in the form of a JSON response.
The data in the configBomInstance resource keeps track of external open orders relevant to a particular asset. The configBomInstance resource is applicable when asset based operations are performed while creating new assets or making changes to existing assets. After a configBomInstance is saved in the configBomInstance resource, the fulfillmentStatus attribute in the configBomInstance resource should be updated at regular intervals during the course of order creation, submission, and fulfillment.
Similarly, administrators must keep the transaction id and transaction date attributes in the configBomInstance in sync to hold the values from the corresponding fields in the external client application. When customers use an external client application to store orders and integrate the external client application with Oracle CPQ to implement Asset-Based Ordering, they have the option of implementing open order synchronization if they support open orders.
Note: Unless the status is "Being Fulfilled", obsolete data in the configBomInstance resource is cleaned-up periodically. For additional information, refer to the Open Order Synchronization section of the 2017 R1 ABO Implementation Guide and Configuration BOM Instance Resource.
REST API services for assets allow external client applications to Modify, Terminate, Suspend, Resume, and Renew assets.
- Modify Asset – Modify a subscription service by modifying an asset. This operation calculates the projected state of the asset for the requested date and returns a configuration URL that launches the model configurator page, which reflects the projected state.
- TerminateAsset – Terminate a subscription service by terminating an asset. This operation merges a termination request with the projected asset for the requested date and stores the results to a Configuration BOM Instance. For termination requests, the root item action code is set to Terminate and subordinate asset action codes are set to Delete.
- Suspend Asset - Suspend a subscription service by suspending an asset. This operation merges a suspend request with the projected state of the asset for the requested date and stores the results to a Configuration BOM Instance repository. For suspend requests, the root and subordinate action codes are set to Suspend. Once the suspend request is fulfilled and the asset data is updated, the Suspend Date on the asset should be set to the date the request is effective.
- ResumeAsset – Resume a suspended subscription service by resuming an asset. This operation merges a resume request with the projected state of the asset for the requested date and stores the results to a Configuration BOM Instance repository. For resume requests, the root and subordinate action codes are set to Resume. Once the resume request is fulfilled and the asset data is updated, the Resume Date on the asset should be set to the date the request is effective.
- Renew Asset – Renew a subscription service by renewing an asset. This operation merges a renew request with the projected state of the asset for the requested date and stores the results to a Configuration BOM Instance. For renew requests, the root and subordinate action codes are set to Renew. Once the renew request is fulfilled and the asset data is updated, the End Date on the asset should be set to the date up to which the request is renewed.
REST API Services for Configuration BOM Instance
Use REST API services for a Configuration BOM Instance when storing orders in an external client application to reconfigure an order, create a Follow-On order, or retrieve a saved Configuration BOM Instance.
- Reconfigure an Order – This operation updates an asset prior to fulfillment and internally calculates the projected state of the order. The response returns a new "configurationURL", which launches the Model Configuration page and reflects the user intended net changes to the subscription. Use this operation when storing orders in an external client application. When orders are stored in CPQ, use the Reconfigure action (_reconfigure_action) as used in the Oracle CPQ 2016 R1 release.
- Create Follow-on Order – This operation makes changes to an existing and unfulfilled order. Once created, the follow-on order calculates the projected state of the order to allow the user to make additional changes. The response returns a new "configurationURL" that launches the model configurator page and reflects the user intended net changes to the subscription. Use this operation when storing orders in an external client application. When orders are stored in CPQ, use the Follow-On order action (oRCL_ABO_CreateFollowOnOrder) as used in the Oracle CPQ 2016 R1 release.
-
Get Configuration Instance – This operation uses one of the following identifiers to retrieve a saved Configuration BOM Instance:
- The lineId returned from a Terminate, Suspend, Resume, or Renew service
- The config_id returned by client side JSON object for client integration case.
Note: Get Configuration Instance is only available for external client application integrations.
Administration
Enable Commerce Delta Pricing for ABO
To enable this feature administrators need perform the following tasks:
Create a Sub-Document Delta Pricing Attribute Set
Perform the following steps to create a sub-document Delta Price Attribute Set.
- Navigate to the Admin Home Page.
- Click Process Definition in the Commerce and Documents section.
- Select Documents from the applicable commerce process Navigation drop-down, and then click List.
- Select Attributes from the sub-document Navigation drop-down, and then click List.
- Click Add at the bottom of the Attribute List page.
-
Select Delta Pricing Set from the Attribute Type drop-down.
-
Click Add, the Delta Pricing Set attributes are displayed.
Create Calculate Delta and Price Rollup Function
- Navigate to the Admin Home Page.
- Click Process Definition in the Commerce and Documents section.
- Select Documents from the applicable commerce process Navigation drop-down, and then click List.
- Select Library Functions from the main document Navigation drop-down, and then click List.
- Click Add at the bottom of the Commerce BML Library Functions List page.
- Enter the following properties:
- Name: Calculate Delta and Rollup Price
- Variable Name:
calculateDeltaAndRollUpPrice
- (Optional) Description: This function calculates Delta Price values and the Rollup Delta Price value for the root element.
Return Type: select String.
- Add the following sub-document attributes:
_delta_price
_document_number
_line_bom_id
_line_bom_parent_id
_parent_doc_number
_prior_price
_rollupdelta_price
netAmount_l
oRCL_ABO_ActionCode_l
-
Add the following BML function:
//------------------------------------------------------------- // Commerce Library Function: calculateDeltaAndRollUpPrice // Sets line item delta prices and rollup delta prices when needed //--------------------------------------------------------------
str = "";
// Map from document number to parent document number parentDocNumberMap = dict("string");
// Map from document numbers to rollup delta prices (for root line items only) rollupPriceMap = dict("float");
// Max depth of line item hierarchical tree. // Adjust if 50 depths are still not enough for your site.
maxDepth = 50; its = range(integer(maxDepth));
// print delta prices and calculate rollups if changed // // Performance will be better if incorporated into existing loops. // Your site needs implicit string builder turned on.
for line in transactionLine { if ((line._parent_doc_number == "" AND line.oRCL_ABO_ActionCode_l <> "ADD" AND line.oRCL_ABO_ActionCode_l <> "") OR containskey(parentDocNumberMap, line._parent_doc_number)) { put(parentDocNumberMap, line._document_number, line._parent_doc_number); if (line._parent_doc_number == "") { put(rollupPriceMap, line._document_number, line._rollup_delta_price); } deltaPrice = line.netAmount_l - line._prior_price; deltaChange = deltaPrice - line._delta_price;
//Print delta price as 0 for blank values.
if (fabs(deltaChange) > 0.00001 or fabs(line._delta_price) < 0.00001) { str = str + line._document_number + "~_delta_price~" + string(deltaPrice) + "|"; }
// roll up the delta price change when needed
if (fabs(deltaChange) > 0.00001) {
// find the root document number by going up the line item hierarchy
docNumber = line._document_number; for it in its { parentDocNumber = get(parentDocNumberMap, docNumber); if (parentDocNumber == "" or isnull(parentDocNumber)) { break; } docNumber= parentDocNumber; }
// add the change to the root item
if (containskey(rollupPriceMap, docNumber)) { price = deltaChange + get(rollupPriceMap, docNumber); put(rollupPriceMap, docNumber, price); } } }// end if (fabs(deltaChange) > 0.00001) }
// print rollup prices for all root items.
docNumbers = keys(rollupPriceMap); for docNumber in docNumbers { price = get(rollupPriceMap, docNumber); str = str + docNumber + "~_rollup_delta_price~" + string(price) + "|"; }
return str;Note: This script uses the default sub-document "
transactionLine
" variable name. You must update this variable name if you are not using the default sub-document variable name. -
Click Add.
Add Calculate Delta Price and Rollup Function to Commerce Save Action
- Navigate to the Admin Home Page.
- Click Process Definition in the Commerce and Documents section.
- Select Documents from the applicable commerce process Navigation drop-down, and then click List.
- Select Actions from the main document Navigation drop-down, and then click List.
- Click on the Save action.
- Select the Advanced Modify - After Formulas Define Advanced Modify - After Formulas option, and then click Define Function.
- Select the Library Functions tab.
-
Select the "
calculateDeltaAndRollUpPrice
" function. - Click Next, at the bottom of the page.
-
Add the following BML function:
str1 = ""; str2 = str1 + commerce.calculateDeltaAndRollUpPrice();
return str2;Notes:
- Implicit string builder must be enabled for this function.
- If this action already has a defined function, this function should be incorporated into the existing loop.
- Click Save and Close.
Add Calculate Delta Price and Rollup Function to Commerce Reconfigure Inbound Action
- Navigate to the Admin Home Page.
- Click Process Definition in the Commerce and Documents section.
- Select Documents from the applicable commerce process Navigation drop-down, and then click List.
- Select Actions from the main document Navigation drop-down, and then click List.
- Click on the Reconfigure Inbound action.
- Select the Advanced Modify - After Formulas Define Advanced Modify - After Formulas option, and then click Define Function.
- Select the Library Functions tab.
-
Select the "
calculateDeltaAndRollUpPrice
" function. - Click Next, at the bottom of the page.
-
Add the following BML function:
str1 = ""; str2 = str1 + commerce.calculateDeltaAndRollUpPrice();
return str2;Notes:
- Implicit string builder must be enabled for this function.
- If this action already has a defined function, this function should be incorporated into the existing loop.
- Click Save and Close.
Add Delta Price Attributes to the Transaction UI
Refer to Commerce Layout Editor - Line Item Grid Attributes for instructions.
Notes
- The delta pricing feature does not require a specific ABO Implementation Package upgrade. However, to implement this feature, the site is required to be on ABO Implementation Package 18D or later.
- The delta price is the difference (+/-) of the current price of the item as compared to the existing price of the saved asset.
- Delta price will not be available until after an initial order is saved. The delta price fields populate upon a Modify on an existing asset from the Subscription Workbench or Assets page. This feature is available for asset modifications and follow-on orders only.
- The delta price is displayed in the same currency as the model/parts in the Transaction UI.
- Without delta pricing enabled, when configuring a system the Total Price of BOM on the root level remains the same—regardless if child models were configured or not. With delta pricing enabled, the Total Price of the entire system updates on the root level if the child models are configured.
Support for Delta Pricing in Formulas and BML Functions
In addition to Commerce delta pricing support, Oracle CPQ 21D will also support delta pricing in Commerce Formulas and BML functions. This feature will allow administrators to use delta pricing attributes in BML editors to define main and sub-document default values using:
- Functions
- Modify Actions
- Before and After Formulas
- Advanced Conditions and Actions for Commerce Rules
Administrators can also use delta pricing attributes for:
- Commerce Library Functions
- Price Scores
- Advanced Defaults and Auto Update scripts
Enable Configuration Delta Pricing for ABO
To enable delta pricing, complete the following steps in Oracle CPQ:
1. Navigate to the Page Templates for Recommended Items Page.
Home Page > Style and Templates > Page Templates
2. Click Templates for the Recommended Items Page.
3. Unselect the Always Hide checkbox for the Delta Price in the Model Column Names group and Part Column Names group. This makes the Delta Price visible in the page layout.
4. (Optional) Enter a Label name for Delta Price.
5. (Optional) Click on the Users icon under Hide by Permissions column to designate visibility of Delta Price based on user type. Permissions are granted to all user types by default.
6. Click Save.
Notes:
-
The delta pricing feature does not require a specific ABO Implementation Package upgrade. However, to implement this feature, the site is required to be on ABO Implementation Package 18D or later.
-
The delta price is the difference (+/-) of the current price of the item as compared to the existing price of the asset as currently saved to the configurator.
-
Delta price will not be available until after an initial order is saved. The delta price fields populate upon a Modify on an existing asset from the Subscription Workbench or Assets page. This feature is available for asset modifications and follow-on orders only.
-
The delta price is displayed in the same currency as the model/parts in the configurator .
-
The Copy Transaction and Transaction Line action copies the current instance of the source configuration saved at the point in time the copy function is executed. Any updates within the associated lines to the source configuration, such as follow-on order lines, are not copied or able to be referenced in the new configuration. Therefore, reconfiguration of the newly copied configuration does not incorporate stacked or follow-on Line Item changes made to the source configuration.
-
If a new part is added to the quote that was not part of the existing configuration, the price of the added item is not included in the delta price. This new item displays 0.00 in the part delta pricing column. However, the added part is included in the overall Total Price.
-
Without delta pricing enabled, when configuring a system the Total Price of BOM on the root level remains the same—regardless if child models were configured or not. With delta pricing enabled, the Total Price of the entire system updates on the root level if the child models are configured.
Enable Copy Transaction and Transaction Lines in ABO
To use the Enable ABO Field Adjustment for Copy feature the site must have an ABO package installed with the assetkey and Action Codes defined within the Commerce process.
For new Oracle CPQ 21B customers, Enable ABO Field Adjustment for Copy feature is enabled by default and this option is not visible in the Commerce Options page.
Customers upgrading to Oracle CPQ 21B enable the copy Transactions and Transactions Lines feature by completing the following steps:
- Navigate to the Commerce Settings page.
Home Page > Commerce and Documents > Commerce Settings - Click Yes for the Enable ABO Field Adjustment for Copy option.
- Click Update.
Notes:
-
When multiple modify lines of root configurations are copied into a Transaction, each of the newly copied root Line Items is assigned a unique assetkey (
itemInstanceId_l
) and considered a new and separate configuration from the source configuration. -
When copying Transactions and Transaction Lines the source's Action Code can determine if an item can be copied and the Action Code setting for the new item. Refer to the following guidelines:
-
Child Line Item with Action Code of Suspend, Resume, Renew, or Terminate is copied and the new Line Item Action Code is set to Add.
-
Child Line Item with Action Code of Delete is not copied.
-
Root Line with Action Code of Terminate copies all child Line Item(s), including child Line Items with Action Code of Delete, and sets the new Line Items Action Code to Add.
-
-
When the ABO Copy Transaction and Transaction Lines feature is enabled, note the following regarding the assetkey (
itemInstanceId_l
), Action Code(oRCL_ABO_ActionCode_l
), and rootAssetKey (rootAssetKey_l
) attributes:-
Their default values needs to be set to 'None' at the attribute default level.
-
Within the Copy action Initialization tab, 'Revert to Default' must be set for these attributes.
-
The 'Use Specified Value' and 'Copy From Original' options are ignored and interpreted as 'Revert To Default'.
- The' Define function' option must be used carefully for these attributes.
-
-
When copying a Transaction, the advanced default values for the Transaction Line attributes—with the exception of the assetkey and rootAssetKey attributes—will only take effect for the first Transaction Line copied. If advanced default values are used, you may need to implement a series of copy Transaction/copy Transaction Lines to achieve the desired result. This limitation is true for use cases outside of the ABO Copy Transaction feature.
-
The Copy Transaction and Transaction Line action copies the current instance of the source configuration saved at the point in time the copy function is executed. Any updates within the associated lines to the source configuration, such as follow-on order lines, are not copied or able to be referenced in the new configuration. Therefore, reconfiguration of the newly copied configuration does not incorporate stacked or follow-on Line Item changes made to the source configuration.
-
For ABO Implementation Package 18C or earlier, when the root Line Item Action Code is Suspend, Resume, Renew, or Terminate, the Copy Transaction and Copy Transaction Lines feature is only able to copy the root Line Item. This newly copied root Line Item is given a unique assetkey and the Action Code is set to Add. However, it is considered as a part line not a model line and cannot be reconfigured.
-
This feature does not adjust every attribute as part of this copy Transaction/Transaction Line function. For example, the
fulfillentstatus_l
andrequestDate_l
attributes are not adjusted. Therefore, administrators need to review their attributes in relation to the copy function and as applicable use standard customization practices to make necessary modifications. -
The newly copied configuration is given a unique assetkey with the default format of
abo+guid
. If you have customized the assetkey format, this change needs to be incorporated as part of the copy action. -
When copied, Transaction Lines created via a non-modify action and not saved from the Configurator UI, the price value from the original source is applied to the newly copied Line Item. If the original Transaction Line has a price value of zero, the user needs to reconfigure the Transaction in order to recalculate the value.
Enable Subscription Ordering for Simple Products
To enable Subscription Ordering for Simple Products, perform the following steps:
-
Navigate to Commerce Options page.
Admin > Commerce and Documents > Commerce Settings
-
Set the Enable Subscription Ordering for Simple Products option to Yes.
-
Click Apply or Update.
Notes:
- Oracle CPQ strongly recommends that administrators install the 19B ABO Implementation Package to use simple products. Refer to the 19B ABO Implementation Guide for instructions to use simple products with the 18D ABO Package.
-
Simple Product functionality is not supported in external order implementations such as Oracle CX Commerce.