Quote Calculator Plugin Methods

Javascript Quote Calculator plugins can reference several optional methods. You can export any, all, or none of them to achieve your desired behavior.
Available in: Salesforce CPQ Winter ’16 and later

Table 1. 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};
Table 2. 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};
Table 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};
Table 4. 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};
Table 5. 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};