Creates folder in line items tab in CLIC module.
export const quotesDetailOpen = async ({ quoteAPI }) => {
await quoteAPI.addFolder('My Folder');
}
export const quotesDetailOpen = async ({ quoteAPI }) => {
const folder = await quoteAPI.addFolder("First Folder");
await quoteAPI.addFolder('My Folder', {parent: folder});
}
The name of the folder to be added.
Optional
params: { An options object containing additional properties for the folder.
Optional
parent?: stringThe ID of the parent folder.
Adds an input to the CLIC header.
The object of the input.
Create line Item in line items tab in CLIC module. Multiple line items with same sku can be created.
export const quotesDetailNew = async ({ quoteAPI }) => {
await quoteAPI.addLineItems(["sku1", "sku1", "sku2"]);
}
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.
export const quotesDetailOpen = async ({ quoteAPI }) => {
const lineItems = await quoteAPI.getLineItems();
const response = await quoteAPI.deleteLineItems([lineItems[0].lineId]);
console.log({ response }); // 1
};
}
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.
export const quotesDetailOpen = async ({ quoteAPI }) => {
await quoteAPI.disableHeaderInputs('Customer'); // or ['Customer', ...]
}
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
.
export const quotesDetailOpen = async ({ quoteAPI }) => {
const clicInput = await quoteAPI.getHeaderInput('Customer');
console.log(clicInput); // {"name": "Customer", "label": "Customer", "value": "CD-0001", ...}
}
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 an input value from the CLIC header.
export const quotesDetailOpen = async ({ quoteAPI }) => {
const clicInputValue = await quoteAPI.getHeaderInputValue('Customer');
console.log(clicInputValue); // 'CD-0001'
}
The name of the input. You can use dots to create a path to a nested input. E.g. collapsibleSectionWithRow.row1.stringUserEntry1_collapsible_row1
Gets an output by outputName from the CLIC header.
export const quotesDetailOpen = async ({ quoteAPI }) => {
const clicOutput = await quoteAPI.getHeaderOutput('totalAmount');
console.log(clicOutput); // {"resultName": "totalAmount", "resultLabel": "totalAmount", "result": 123456789.12345679, ...}
}
The name of the output.
Returns an output result from the CLIC header.
export const quotesDetailOpen = async ({ quoteAPI }) => {
const clicOutputResult = await quoteAPI.getHeaderOutputResult('totalAmount');
console.log(clicOutputResult); // 123456789.12345679
}
The name of the output.
Retrieves CLIC header type
export const quotesDetailOpen = async ({ quoteAPI }) => {
const headerType = await quoteAPI.getHeaderType(); // 'Default_quote_type'
}
Gets a value from the CLIC header. Use it to obtain properties such as version, externalRef, calculationStatus, etc.
export const quotesDetailOpen = async ({ quoteAPI }) => {
const quoteStatus = await quoteAPI.getHeaderValue('quoteStatus');
console.log(quoteStatus) // 'DRAFT'
}
The name of the property which you want obtain.
Returns an input by name from the first line item fetched by queryData.
The name of input
Returns a value from the input defined by name from a line item which is the first in the response defined by queryData.
The name of the input.
Returns an output by resultName from the first line item fetched by queryData.
The name of the output.
Returns a result from the output defined by outputName from a line item which is the first in the response defined by queryData.
The name of the output.
Fetches items from CLIC by queryData.
Fetches items as a page from CLIC by queryData and limit.
Move line item to the folder.
of the items which should be moved.
to which line items will be added. export const quotesDetailNew = async ({ quoteAPI }) => { const items = await quoteAPI.addLineItems(["arch", "mint", "ubuntu"]); const folder = await quoteAPI.addFolder('Linux folder'); await quoteAPI.moveLineItems(items, folder); }
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.
Optional
forceAsync: booleanThe recalculation will we triggered as an async job.
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.
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']);
}
Sets an input value at the CLIC header.
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'
});
}
The name of the input. You can use dots to create a path to a nested input. E.g. collapsibleSectionWithRow.row1.stringUserEntry1_collapsible_row1
Sets an output result at the CLIC header.
export const quotesDetailOpen = async ({ quoteAPI }) => {
const clicOutputResult = await quoteAPI.setHeaderOutputResult('outputName', 'Test value');
}
The name of the output.
The result value of the output.
Updates a field at the CLIC header. Use it to update properties such as expiryDate, externalRef, additionalInfo1, etc
export const quotesDetailNew = async ({ quoteAPI }) => {
await quoteAPI.setHeaderValue('label', 'Updated label from intercepted method');
}
The name of field at the CLIC header.
The value of the field which will be set.
Sets a value of the input with a name which is at the first line item defined by queryData.
The name of the input.
The value of the input.
Updates multiple line item inputs values at once.
export const quotesDetailOpen = async ({ quoteAPI }) => {
await quoteAPI.setLineItemInputValues('product-1', {Quantity: 3, Customer: 'CD-0001'});
}
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.
Updates header values and header input values.
export const quotesDetailOpen = async ({ quoteAPI }) => {
await quoteAPI.updateHeader({externalRef: 'new external ref', label: 'new label'}, {Customer: 'CD-0001'});
}
object containing header value names as keys and corresponding values
object containing header input value names as keys and corresponding values
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:
compensationPlanAPI
contractAPI
rebateAgreementAPI
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 namesquoteOriginAPI
,quoteNewRevisionAPI
orquoteCopyAPI
(similar pattern for others).All these variables contains an object which implement this
ClicInterceptorAPI
type.