NetSuite CPQ

This release note was updated April 22, 2024.

NetSuite 2024.1 includes the following enhancements to NetSuite CPQ (Configure, Price, Quote):

Perform Calculations in Resolvable Fields

You can now perform calculations on numbers returned by resolve expressions using basic mathematical and rounding operations to obtain the final value of resolvable fields. By performing calculations in resolvable fields with NetSuite CPQ Configurator (version 1.2.7), you can dynamically determine and adjust quantities, prices, multipliers, and so on, depending on answers users select on the product interface.

To perform calculations in resolvable fields, enclose the resolve expressions in the calc() function. For example, you can enter calc(({Q/A}+{Q1/A1})*3) in the Quantity field of an additional item record to dynamically determine how many of those items a transaction will include depending on users' choices. You can also round returned values up, down, or according to the standard method by adding the ceil(), floor(), and round() functions to calc(). For example, calc(round(({Q/A}+{Q1/A1})*3)).

For more information about performing calculations in resolvable fields, see Performing Calculations on Numbers Returned by Resolve Expressions.

New Predefined Rule to Perform Tasks When Quantity Changes

The new predefined rule SOLE/QUANTITY_CHANGE has been added to NetSuite CPQ Configurator (version 1.2.7). You can use this predefined rule in actions and rules to perform tasks when users manually change the value of the Quantity field on the product interface. For example, you can rerun an action that calculates the material items.

After the task is performed, the predefined rule value returns to false.

Display Information in Audit Menu for Additional Items Included by Scripting

The addBreakoutItem() function now includes the itemName and displayName parameters in NetSuite CPQ Configurator (version 1.2.7). When including additional items in a configuration by scripting, these parameters let you display information in the Item window accessible through the Audit menu on the product interface:

  • itemName – Adds information to the Name column.

  • displayName – Adds information to the Item ID (SKU) column.

Using these parameters, you can have a complete overview of all additional items included in the configuration, not only those manually added.

Track Changes Made to Records

You can now track any changes made to any records using system notes under the Notes section or subtab in:

  • NetSuite CPQ Configurator (version 1.2.7)

  • NetSuite CPQ Proposal Generator (version 1.2.0)

  • NetSuite CPQ Guided Selling (1.1.8)

For more information about system notes, see System Notes Overview.

Changes When Launching Products from SuiteCommerce or Third-Party Web Stores

You now have more control over what products can be launched from SuiteCommerce or third-party web stores without logging in to NetSuite with NetSuite CPQ Configurator (version 1.2.6):

  • Launch products from SuiteCommerce – This new option has been added to provide your account with the possibility to launch products from web stores. You can find this checkbox on the options record at CPQ > Configurator > Settings.

  • Available on SuiteCommerce – This is the new name of the former Enable External Launch option. This option lets you determine which products to launch from web stores at the product level. You can find this checkbox on the product record.

If you were already launching products from web stores, you only need to check the Available on SuiteCommerce box for the products you want to add to the web store. The Launch products from SuiteCommerce option has been automatically enabled for your account.

If you want to launch products from web stores for the first time, enable the Launch products from SuiteCommerce option for the account, and check the Available on SuiteCommerce box for each product you want to launch from your web store.

Usage Reminder for Action Records and Functions in Modules and Other Custom Client-Side Scripts

When creating modules or other custom client-side scripts, follow these steps to use action records and functions properly:

  1. Create an action record to store any calls to the NetSuite CPQ functions. To create an action record, go to the Actions subtab on the product record and click the New CPQC Action button.

  2. Add the NetSuite CPQ functions to the code editor on the action record.

  3. In the Rule field, enter X(*/*).

  4. In the module or script, use the runAction() method to call the action record.

  5. Pass the action code as a parameter to the runAction(‘ACTION_CODE’) function, where ACTION_CODE is the identifier in the Code field on the action record.

Fore more information about action records, see Customizing Products with Scripts Using Action Records and Functions.

Resolve Expressions and resolve() function: Changed Behavior for Multiple Choice Questions

When using resolve expressions or the resolve() function in NetSuite CPQ Configurator (version 1.2.6), you can now obtain data for every selected answer in a multiple-choice question. Data is returned separated by a comma following the answer sequence number order. Previously, resolve expressions and the resolve() function returned only the first answer users had selected in a multiple-choice question.

For more information about resolve expressions, see Obtaining Answer Data with Resolve Expressions.

Added Sequence Number Parameter to addBreakoutItem() and addRuleset() Functions

The addBreakoutItem() and addRuleset() functions now support the sequence number parameter to define the order in which you can create building blocks with NetSuite CPQ Configurator (version 1.2.6).

The following piece of code provides an example of the sequence number parameter for the addBreakoutItem() function:

            addBreakoutItem({itemid: "ACC00002", price:"40", qty:"1", sequence: 4});
addBreakoutItem({itemid: "ACC00003", price:"30", qty:"1", sequence: 3});
addBreakoutItem({itemid: "ACC00004", price:"20", qty:"1", sequence: 2}); 

          

This piece of code provides an example of the sequence number parameter for the addRuleset() function:

            addRuleset({
    type: "pricing",
    name: "Bike chain",
    hide: "F",
    hideline: "F",
    rule: "*/*",
    price: "100",
    sequence: 15
}); 

          

Removed Custom Role Centers Checkbox on Options Record

The Custom Role Centers checkbox has been removed from the options record at CPQ > Configurator > Settings. NetSuite CPQ Configurator (version 1.2.6) can now automatically work with custom partner roles created with a center type other than the Partner Center without requiring you to set any option.

Removed None Option from Select Type Field on Question Record

The None (All options are always on) option has been removed from the Select Type field on the question record in NetSuite CPQ Configurator (version 1.2.6). The Select Type field defines whether users can select one or multiple answers for a question. Previously, the None option displayed answers for a checkbox or radio button questions without the graphical element.

If you were using the None option, the Single option has now been automatically set to define a single-choice question without any action required from your side. If you want to be able to select multiple answers, you must manually select the Multiple option.

For more information about creating questions, see Working with Questions.

Added Rule Operators to Verify Answer Value

NetSuite CPQ Guided Selling (version 1.1.9) includes the following new rule operators to verify the answer value:

  • Begins with – The rule is considered true if the answer value begins with the sequence of characters enclosed in the quotation marks. The syntax is Q/A[^="value"].

  • Contains – The rule is considered true if the answer value contains the sequence of characters enclosed in the quotation marks. The syntax is Q/A[*="value"].

  • Ends with – The rule is considered true if the answer value ends with the sequence of characters enclosed in the quotation marks. The syntax is Q/A[$="value"].

Q and A represent the question and answer codes. Replace them with codes from your product.

For example, if the answer value is oak, NetSuite CPQ Guided Selling considers the following rules true:

  • Begins with – Q/A[^="o"].

  • Contains – Q/A[*="a"].

  • Ends with – Q/A[$="k"].

Viewing Usage Metrics

With NetSuite CPQ Configurator (version 1.2.5), you can now view statistics that show the number of transactions and configurations on which a product attribute (question, material, or additional item) was found. Use statistics, for example, to see the frequency of answers to a question or the material items selected for a product. This information can reveal how a configuration is performing and help you to make subsequent business decisions, such as promoting slow-selling items or optimizing inventory strategies.

Statistics are defined according to a customizable query based on a configurable product, as well as additional criteria including a date range, one or more transaction types, and a specific question, material, or additional item. You can view statistics in table format or as a pie chart. To start using statistics, go to CPQ > Configurator > Metrics.

The following image shows the statistics related to a question as a pie chart:

The metrics record from NetSuite CPQ Configurator.

Setting Transaction Body and Line Fields Based on Configuration Data

With NetSuite CPQ Configurator (version 1.2.5), you can now set transaction body and line fields based on configuration data through mapping records. These records help you save time when filling in transactions and make available configuration data for transactions if you have previously created the custom fields to host the data. When configuration data is available for transactions, you can use it with other NetSuite capabilities, such as reporting. For example, if you have a desk as a configurable item, you can add information about the wood type to the transaction, create a report to find the type customers prefer, and increase its stock.

You can choose between two mapping record types depending on the fields you want to set:

  • Body field mapping record – Sets transaction body fields.

  • Component field mapping record – Sets transaction line fields. You can set transaction line fields for the main configured item and additional items. Additionally, you can set fields for materials and routing steps when added as components and operation tasks to work orders.

You can apply mapping records to set transaction line fields to all additional items, materials, or routing steps, and you can view them in the Common Column Mappings field on the respective record. You can also apply mapping records to specific additional items, materials, or routing steps through the Apply Column Mappings field on the respective record.

Go to the Data Mapping subtab on a saved product to create mapping records. Depending on whether you want to set body or line fields:

  • Click the New CPQC Body Field Mapping button.

  • Click the New CPQC Component Field Mapping button.

For more information, see Setting Transaction Body or Line Fields Based on Configuration Data.

Extended Support for Get Functions on Action Record

NetSuite CPQ Configurator (version 1.2.5) can assist you in writing more get functions to improve your productivity, reduce errors, and simplify function learning. In the Add Action field on the action record, you can choose among a wide range of get functions and follow the onscreen instructions to fill in the code. NetSuite CPQ Configurator will automatically add the completed function to the code editor. For example, you can now follow the onscreen instructions and fill in the code to obtain product table values or body and sublist field values of the transaction from which users launch the product.

Using Non-Inventory Items as Base Items

With NetSuite CPQ Configurator (version 1.2.5), you can now use non-inventory items as base items. The other item types already available as base items are inventory items, assemblies, and kit/packages.

The following fields have been added to the Custom subtab of non-inventory items so that they can be used as base items:

Field Name

Field ID

Description

CPQ Product Configurator

custitem_cpqc_item_configurator

Lets you select a product from NetSuite CPQ Configurator to edit configured items on transactions.

CPQ Product Code

custitem_cpqc_item_product_code

Displays the code of the product selected in the CPQ Product Configurator field.

Is configurable

custitem_cpqc_item_isconf

If you check this box, users can edit the item with the default product for NetSuite CPQ Configurator.

Supporting SuiteCommerce Themes

When launched from SuiteCommerce, the product user interface of NetSuite CPQ Configurator (version 1.2.5) can now automatically inherit the general look and feel of commerce themes to provide a seamless user experience.

Based on the theme, NetSuite CPQ Configurator styles the following elements:

  • font colors

  • font styles

  • background colors

  • border colors

The top bar and the product name line replicate the font and background colors of the theme's top and bottom headers. Button and link styles follow the same level of importance as the theme. For example, buttons used to perform main tasks, such as the Submit & Close button, are styled like the Add to Cart button for SuiteCommerce. NetSuite CPQ Configurator will apply four shades of the theme's main color to the rest of the user interface.

The following image shows the user interface with the look and feel of the Manor theme:

NetSuite CPQ Configurator user interface with the look and feel of the Manor theme.

Update to Enable External Launch Option

With NetSuite CPQ Configurator (version 1.2.5), you can now decide what products are available for SuiteCommerce at the product level by checking the Enable External Launch box. Previously, this option was on the options record, which contains general settings, and all products were potentially available for SuiteCommerce when enabled.

Clearing Hidden Questions or Answers

NetSuite CPQ Configurator (version 1.2.5) can now clear questions or answers when they become hidden if you check the Reset when hidden box on the respective record when setting up the question or answer. This option ensures that no unavailable feature or option for the configurable item remains selected if users change their minds and make a different choice. NetSuite CPQ Configurator also clears the questions or answers when the parent tab or group becomes hidden. For more information, see Hiding Questions or Answers.

New Predefined Rules

Predefined rules are fixed questions and answer combinations used as variables in rules and actions to perform tasks based on information from NetSuite or the configuration. For example, you can include a predefined question and answer set in a rule to perform an action if a certain user launches the product.

NetSuite CPQ Configurator (version 1.2.5) includes new predefined rules to define from where users create a configuration and launch the SuiteApp:

  • SOLE/LAUNCH[="NEW"] – Identifies a new configuration that can be submitted, for example, a configuration created by clicking the Configure button on a transaction.

  • SOLE/LAUNCH[="EDIT"] – Identifies an existing configuration edited by clicking the Edit Config button on a transaction line item.

  • SOLE/LAUNCH[="STANDALONE"] – Identifies a configuration created for testing purposes by clicking the Run Standalone button on the product record or by accessing the Select Product page at CPQ > Configurator > Standalone. This configuration cannot be submitted.

  • SOLE/STARTFROM[="BC"] – Identifies a configuration created from the NetSuite CPQ Ecommerce Integration (the former Background Configurator).

New sresolve() Function

With NetSuite CPQ Configurator (version 1.2.5), you can now convert the answer value from a resolve expression into a number (when possible) by using the new sresolve() function.

The syntax is the following:

            sresolve("{Q/A}"); 

          

{Q/A} is the resolve expression, where Q represents the question code, and A is the answer code.

General Notices