Quote Calculator Plugin Methods

The Quote Calculator Plugin can reference these seven methods. You can export any, all, or none of them to achieve your desired behavior.
Available in: Salesforce CPQ Winter ’16 and later

onInit

Param Type Description
{QuoteLineModel[]} quoteLineModels An array containing Javascript representations of all lines in a quote.

The calculator calls this method before formula fields are evaluated. Returns {promise}.

1export function onInit(quoteLineModels) {
2return Promise.resolve();
3};

onBeforeCalculate

Param Type Description
{QuoteModel} quoteModel Javascript representation of the quote you’re evaluating
(QuoteLineModel[]} quoteLineModels An array containing Javascript representations of all lines in the quote

The calculator calls this method before calculation begins, but after formula fields have been evaluated. Returns {promise}.

1export function onBeforeCalculate(quoteModel, quoteLineModels) {
2return Promise.resolve();
3};

onBeforePriceRules

Param Type Description
{QuoteModel} quoteModel Javascript representation of the quote you’re evaluating
(QuoteLineModel[]} quoteLineModels An array containing Javascript representations of all lines in the quote

The calculator calls this method before it evaluates price rules. Returns {promise}.

1export function onBeforePriceRules(quoteModel, quoteLineModels) {
2return Promise.resolve();
3};

onAfterPriceRules

Param Type Description
{QuoteModel} quoteModel Javascript representation of the quote you’re evaluating
(QuoteLineModel[]} quoteLineModels An array containing Javascript representations of all lines in the quote

The calculator calls this method after it evaluates price rules. Returns {promise}.

1export function onAfterPriceRules(quoteModel, quoteLineModels) {
2return Promise.resolve();
3};

onAfterCalculate

Param Type Description
{QuoteModel} quoteModel Javascript representation of the quote you’re evaluating
(QuoteLineModel[]} quoteLineModels An array containing Javascript representations of all lines in the quote

The calculator calls this method after it completes a calculation, but before re-evaluating formula fields. Returns {promise}

1export function onAfterCalculate(quoteModel, quoteLineModels) {
2return Promise.resolve();
3};

isFieldVisible

This method can’t be used to alter data.

Note

Param Type Description
{FieldName} String Name of the field that will be hidden or made visible
(QuoteLineModelRecord} quoteLineModelRecord Javascript representation of the SObject record of line you’re evaluating

The calculator calls this method after it completes a calculation. Returns {Boolean}

1export function isFieldVisible(fieldName, quoteLineModelRecord) { 
2    
3    if (fieldName == 'SBQQ__Description__c') { 
4    return false; 
5    } 
6    
7    return true; 
8    
9    };

isFieldEditable

This method can’t be used to alter data.

Note

Param Type Description
{FieldName} String Name of the field that will be made read-only or editable
(QuoteLineModelRecord} quoteLineModelRecord Javascript representation of the SObject record of line you’re evaluating

The calculator calls this method after it completes a calculation. Returns {Boolean}

1export function isFieldEditable(fieldName, quoteLineModelRecord) { 
2    
3    if (fieldName == 'SBQQ__Description__c') { 
4    return false; 
5    } 
6    
7    return true; 
8    
9    };