ClicInterceptorAPI: {
    addHeaderInput: ((input) => Promise<any>);
    addLineItems: ((lineItemIds) => Promise<any>);
    deleteLineItems: ((lineItemsIds) => Promise<any>);
    disableHeaderInputs: ((inputNames) => any);
    getHeaderInput: ((inputName) => Promise<ClicInput>);
    getHeaderInputValue: ((inputName) => Promise<any>);
    getHeaderOutput: ((outputName) => Promise<Output | undefined>);
    getHeaderOutputResult: ((outputName) => Promise<any>);
    getHeaderType: (() => string);
    getHeaderValue: ((name) => Promise<any>);
    getLineItemInput: ((queryData, name) => Promise<ClicInput>);
    getLineItemInputValue: ((queryData, name) => Promise<any>);
    getLineItemOutput: ((queryData, resultName) => Promise<Output>);
    getLineItemOutputResult: ((queryData, outputName) => Promise<Output>);
    getLineItems: ((queryData) => Promise<LineItem[]>);
    getLineItemsInPage: ((queryData, limit) => Promise<LineItemPage>);
    recalculate: ((forceAsync?) => Promise<any>);
    setDisabledButtons: ((buttons) => any);
    setHeaderInputValue: ((inputName, value) => Promise<any>);
    setHeaderOutputResult: ((outputName, value) => Promise<any>);
    setHeaderValue: ((name, value) => Promise<any>);
    setLineItemInputValue: ((queryData, name, value) => Promise<any>);
    setLineItemInputValues: ((queryData, inputsToAdd) => Promise<any>);
    setReadOnly: ((readOnly) => Promise<any>);
    updateHeader: ((values, inputValues) => any);
}

This is API for working with Quotes, Contracts, Rebate Agreements and Compensation Plans. It works with lists and details of these entities.

Name of this API will vary based on the module where you are using it. For quotes it will be:

export const quotesDetailAccountAssign = ({ quoteAPI }) => {
// code
}
  • Compensation Plans: compensationPlanAPI
  • Contracts: contractAPI
  • Rebate Agreements: rebateAgreementAPI
  • Quotes: quoteAPI

If you use the interceptor methods quotesDetailCreateNewRevision, quotesDetailCopy and the same alternatives for Contracts, Rebate Agreements and Compensation Plans, you will get this API under the names quoteOriginAPI, quoteNewRevisionAPI or quoteCopyAPI (similar pattern for others).

All these variables contains an object which implement this ClicInterceptorAPI type.

Type declaration

  • addHeaderInput: ((input) => Promise<any>)
      • (input): Promise<any>
      • Adds an input to the CLIC header.

        Parameters

        • input: Input

          The object of the input.

        Returns Promise<any>

  • addLineItems: ((lineItemIds) => Promise<any>)
      • (lineItemIds): Promise<any>
      • Parameters

        • lineItemIds: string[]

        Returns Promise<any>

  • deleteLineItems: ((lineItemsIds) => Promise<any>)
      • (lineItemsIds): Promise<any>
      • Deletes line items from CLIC object. Please note that this method takes an array of line IDs as argument, since SKU is not unique. In order to properly delete line items, use "getLineItems" method and then use "lineId" field that is fetched from it.

        Parameters

        • lineItemsIds: string[]

        Returns Promise<any>

        Example

        export const quotesDetailOpen = async ({ quoteAPI }) => {
        const lineItems = await quoteAPI.getLineItems();
        const response = await quoteAPI.deleteLineItems([lineItems[0].lineId]);
        console.log({ response }); // 1
        };
        }
  • disableHeaderInputs: ((inputNames) => any)
      • (inputNames): any
      • Disables inputs at the CLIC header.

        CLIC Detail Only - In a list, this method does not make sense, so it is implemented just as an empty method there.

        Parameters

        • inputNames: string | string[]

        Returns any

        Example

        export const quotesDetailOpen = async ({ quoteAPI }) => {
        await quoteAPI.disableHeaderInputs('Customer'); // or ['Customer', ...]
        }
  • getHeaderInput: ((inputName) => Promise<ClicInput>)
      • (inputName): Promise<ClicInput>
      • Gets an input by inputName from the CLIC header.

        You can use dots to create a path to a nested input. For example if you have the input stringUserEntry1_collapsible_row1 inside row1 input, and it is inside collapsibleSectionWithRow input then the path will look like collapsibleSectionWithRow.row1.stringUserEntry1_collapsible_row1.

        Parameters

        • inputName: string

          The name of the input. You can use dots to create a path to a nested input. E.g. collapsibleSectionWithRow.row1.stringUserEntry1_collapsible_row1

        Returns Promise<ClicInput>

        Example

        export const quotesDetailOpen = async ({ quoteAPI }) => {
        const clicInput = await quoteAPI.getHeaderInput('Customer');
        console.log(clicInput); // {"name": "Customer", "label": "Customer", "value": "CD-0001", ...}
        }
  • getHeaderInputValue: ((inputName) => Promise<any>)
      • (inputName): Promise<any>
      • Returns an input value from the CLIC header.

        Parameters

        • inputName: string

          The name of the input. You can use dots to create a path to a nested input. E.g. collapsibleSectionWithRow.row1.stringUserEntry1_collapsible_row1

        Returns Promise<any>

        Example

        export const quotesDetailOpen = async ({ quoteAPI }) => {
        const clicInputValue = await quoteAPI.getHeaderInputValue('Customer');
        console.log(clicInputValue); // 'CD-0001'
        }
  • getHeaderOutput: ((outputName) => Promise<Output | undefined>)
      • (outputName): Promise<Output | undefined>
      • Gets an output by outputName from the CLIC header.

        Parameters

        • outputName: string

          The name of the output.

        Returns Promise<Output | undefined>

        Example

        export const quotesDetailOpen = async ({ quoteAPI }) => {
        const clicOutput = await quoteAPI.getHeaderOutput('totalAmount');
        console.log(clicOutput); // {"resultName": "totalAmount", "resultLabel": "totalAmount", "result": 123456789.12345679, ...}
        }
  • getHeaderOutputResult: ((outputName) => Promise<any>)
      • (outputName): Promise<any>
      • Returns an output result from the CLIC header.

        Parameters

        • outputName: string

          The name of the output.

        Returns Promise<any>

        Example

        export const quotesDetailOpen = async ({ quoteAPI }) => {
        const clicOutputResult = await quoteAPI.getHeaderOutputResult('totalAmount');
        console.log(clicOutputResult); // 123456789.12345679
        }
  • getHeaderType: (() => string)
      • (): string
      • Retrieves CLIC header type

        Returns string

        Example

        export const quotesDetailOpen = async ({ quoteAPI }) => {
        const headerType = await quoteAPI.getHeaderType(); // 'Default_quote_type'
        }
  • getHeaderValue: ((name) => Promise<any>)
      • (name): Promise<any>
      • Gets a value from the CLIC header. Use it to obtain properties such as version, externalRef, calculationStatus, etc.

        Parameters

        • name: string

          The name of the property which you want obtain.

        Returns Promise<any>

        Example

        export const quotesDetailOpen = async ({ quoteAPI }) => {
        const quoteStatus = await quoteAPI.getHeaderValue('quoteStatus');
        console.log(quoteStatus) // 'DRAFT'
        }
  • getLineItemInput: ((queryData, name) => Promise<ClicInput>)
      • (queryData, name): Promise<ClicInput>
      • Returns an input by name from the first line item fetched by queryData.

        Parameters

        • queryData: QueryData
        • name: string

          The name of input

        Returns Promise<ClicInput>

  • getLineItemInputValue: ((queryData, name) => Promise<any>)
      • (queryData, name): Promise<any>
      • Returns a value from the input defined by name from a line item which is the first in the response defined by queryData.

        Parameters

        • queryData: QueryData
        • name: string

          The name of the input.

        Returns Promise<any>

  • getLineItemOutput: ((queryData, resultName) => Promise<Output>)
      • (queryData, resultName): Promise<Output>
      • Returns an output by resultName from the first line item fetched by queryData.

        Parameters

        • queryData: QueryData
        • resultName: string

          The name of the output.

        Returns Promise<Output>

  • getLineItemOutputResult: ((queryData, outputName) => Promise<Output>)
      • (queryData, outputName): Promise<Output>
      • Returns a result from the output defined by outputName from a line item which is the first in the response defined by queryData.

        Parameters

        • queryData: QueryData
        • outputName: string

          The name of the output.

        Returns Promise<Output>

  • getLineItems: ((queryData) => Promise<LineItem[]>)
      • (queryData): Promise<LineItem[]>
      • Fetches items from CLIC by queryData.

        Parameters

        Returns Promise<LineItem[]>

  • getLineItemsInPage: ((queryData, limit) => Promise<LineItemPage>)
      • (queryData, limit): Promise<LineItemPage>
      • Fetches items as a page from CLIC by queryData and limit.

        Parameters

        Returns Promise<LineItemPage>

  • recalculate: ((forceAsync?) => Promise<any>)
      • (forceAsync?): Promise<any>
      • Triggers a recalculation at the CLIC object.
        By default, it is decided if the recalculation is triggered as async by Async actions threshold, which is defined in Administration > Configuration >…. You can force the trigger as async by passing true to the forceAsync parameter.

        Parameters

        • Optional forceAsync: boolean

          The recalculation will we triggered as an async job.

        Returns Promise<any>

  • setDisabledButtons: ((buttons) => any)
      • (buttons): any
      • Disables CLIC detail buttons in the header/items tabs. The options are:

        • Header tab: submit, calculate, startCreationWorkflow, nextStepCreationWorkflow, backStepCreationWorkflow, finishCreationWorkflow, finishCreationWorkflowAndSubmit, withdraw, markOfferAsLost, convertToDeal, reconvertToDeal, revoke, createNewRevision, emailing, emailingAndSignature, createOpportunity, assignOpportunity, assignAccount, duplicate, remove.

        • Items tab:

          • Header action buttons: add_items, browse_items, add_recommended_items, addFolder, massEdit, copyAllItemsToClipboard, importItemsToClipboard.

          • Selection context buttons: deleteItems, duplicateItems, moveItemsToFolder.

        CLIC Detail Only - In a list, this method does not make sense, so it is implemented just as an empty method there.

        Parameters

        • buttons: string | string[]

        Returns any

        Example

        export const quotesDetailOpen = async ({ quoteAPI }) => {
        // When a user opens a Quote, it has disabled buttons Recalculate, Duplicate and Assign Account
        await quoteAPI.setDisabledButtons(['calculate', 'assignAccount', 'duplicate']);
        }
  • setHeaderInputValue: ((inputName, value) => Promise<any>)
      • (inputName, value): Promise<any>
      • Sets an input value at the CLIC header.

        Parameters

        • inputName: string

          The name of the input. You can use dots to create a path to a nested input. E.g. collapsibleSectionWithRow.row1.stringUserEntry1_collapsible_row1

        • value: any

        Returns Promise<any>

        Example

        export const quotesDetailOpen = async ({ quoteAPI }) => {
        // Simple inputs
        await quoteAPI.setHeaderInputValue('ProjectID', 'Some ID');
        await quoteAPI.setHeaderInputValue('ProjectName', 'Project Name');

        // Input with configurator
        await quoteAPI.setHeaderInputValue('Configurator_Documents', {
        InvoiceMethod: 'Invoice method',
        OpportunityOwner: 'Name',
        OpportunityOwnerEmail: 'Email',
        OpportunityOwnerPhone: 'Phone',
        OpportunityOwnerTitle: 'Title'
        });
        }
  • setHeaderOutputResult: ((outputName, value) => Promise<any>)
      • (outputName, value): Promise<any>
      • Sets an output result at the CLIC header.

        Parameters

        • outputName: string

          The name of the output.

        • value: any

          The result value of the output.

        Returns Promise<any>

        Example

        export const quotesDetailOpen = async ({ quoteAPI }) => {
        const clicOutputResult = await quoteAPI.setHeaderOutputResult('outputName', 'Test value');
        }
  • setHeaderValue: ((name, value) => Promise<any>)
      • (name, value): Promise<any>
      • Updates a field at the CLIC header. Use it to update properties such as expiryDate, externalRef, additionalInfo1, etc

        Parameters

        • name: string

          The name of field at the CLIC header.

        • value: any

          The value of the field which will be set.

        Returns Promise<any>

        Example

        export const quotesDetailNew = async ({ quoteAPI }) => {
        await quoteAPI.setHeaderValue('label', 'Updated label from intercepted method');
        }
  • setLineItemInputValue: ((queryData, name, value) => Promise<any>)
      • (queryData, name, value): Promise<any>
      • Sets a value of the input with a name which is at the first line item defined by queryData.

        Parameters

        • queryData: QueryData
        • name: string

          The name of the input.

        • value: any

          The value of the input.

        Returns Promise<any>

  • setLineItemInputValues: ((queryData, inputsToAdd) => Promise<any>)
      • (queryData, inputsToAdd): Promise<any>
      • Updates multiple line item inputs values at once.

        Parameters

        • queryData: QueryData
        • inputsToAdd: {
              [inputName: string]: any;
          }
          • [inputName: string]: any

        Returns Promise<any>

        Example

        export const quotesDetailOpen = async ({ quoteAPI }) => {
        await quoteAPI.setLineItemInputValues('product-1', {Quantity: 3, Customer: 'CD-0001'});
        }
  • setReadOnly: ((readOnly) => Promise<any>)
      • (readOnly): Promise<any>
      • Sets the CLIC object as read-only in UI.

        CLIC Detail Only - In a list, this method does not make sense, so it is implemented just as an empty method there.

        Parameters

        • readOnly: boolean

        Returns Promise<any>

        Example

        export const quotesDetailOpen = async ({ quoteAPI }) => {
        await quoteAPI.setReadOnly(true);
        }
  • updateHeader: ((values, inputValues) => any)
      • (values, inputValues): any
      • Updates header values and header input values.

        Parameters

        • values: {
              [headerFieldName: string]: any;
          }

          object containing header value names as keys and corresponding values

          • [headerFieldName: string]: any
        • inputValues: {
              [headerInputName: string]: any;
          }

          object containing header input value names as keys and corresponding values

          • [headerInputName: string]: any

        Returns any

        Example

        export const quotesDetailOpen = async ({ quoteAPI }) => {
        await quoteAPI.updateHeader({externalRef: 'new external ref', label: 'new label'}, {Customer: 'CD-0001'});
        }

Generated using TypeDoc