Overview
The Interceptor API’s provides default API functions available in each intercepted method. This interface enables various operations and interactions within the pricefx.
Table of Contents
Table of Contentstoc |
---|
minLevel | 1 |
---|
maxLevel | 6 |
---|
include | |
---|
outline | false |
---|
indent | |
---|
style | none |
---|
|
...
| exclude | |
---|
type | list |
---|
class | |
---|
printable | true |
---|
|
API Methods
add
Methods for adding new customers and products.
customer
Code Block |
---|
|
customer: ((customer) => Promise<any>) |
Adds a new customer.
Parameters:
customer
: any - Customer Object.
product
Code Block |
---|
|
product: ((product) => Promise<any>) |
Adds a new product to products.
Parameters:
product
: any - Product Object.
Example:
Code Block |
---|
|
await api.add.product({
sku: 'KS-2003',
label: 'Test2',
unitOfMeasure: 1,
currency: 'CZK',
formulaName: 'ActionButtons',
attribute18: 'A'
}); |
app
Used for obtaining data from Unity which are not accessible through configuration.
getCurrentUser
Code Block |
---|
|
getCurrentUser: (() => Promise<User>) |
Returns the logged-in user.
Example:
Code Block |
---|
|
await api.app.getCurrentUser()
/*
{
"version": 2,
"typedId": 123,
"loginName": "donatas.ka",
...
}
*/ |
configuration
Methods for managing configuration.
overrideConfig
Code Block |
---|
|
overrideConfig: ((path, value) => Promise<void>) |
Used to temporarily set a value in the configuration. Updated configuration is valid only in the current web browser tab.
Parameters:
path
: string - Name of configuration.
value
: any - Configuration new value.
Example:
Code Block |
---|
|
await api.configuration.overrideConfig(
'applicationEnvironment',
'salesforce'
); |
retrieveConfig
Code Block |
---|
|
retrieveConfig: ((path, defaultValue?) => Promise<any>) |
...
type - dev | prod
partition
applicationEnvironment - standalone | salesforce | c4c | dynamics | sugarCRM
apiUrl
locale
Parameters:
path
: string - Name of configuration.
defaultValue
: any - (Optional) If retrieving the configuration is unsuccessful, the default value will be returned.
Example:
Code Block |
---|
|
const visibleDashboards = await configuration.retrieveConfig(
'customerSpecificFeatureFlag.dashboards.visible.account',
[]
); |
crmManager
Enables communication with CRMs in which Pricefx is embedded.
callAndReceive
Code Block |
---|
|
callAndReceive: ((message) => Promise<any>) |
Triggers postMessage with a message in the window with CRM.
Parameters:
message
: any - Data which will be sent to CRM.
Example:
Code Block |
---|
|
const message = {
fields: [
{ id: 'name', value: 'New name' },
{ id: 'description', value: 'New description' }
]
};
return api.crmManager.callAndReceive({ action: 'createNewQuote', data: message }) |
findAccount
Code Block |
---|
|
findAccount: (() => Promise<any>) |
Returns Account from CRM with provided ID.
findAccounts
Code Block |
---|
|
findAccounts: ((name) => Promise<{ Id: string; Name: string; }[]>) |
Returns max 10 Accounts from CRM which contains the value passed into the function.
Parameters:
name
: any - Name of the account.
findByQuery
Code Block |
---|
|
findByQuery: ((query) => Promise<any>) |
Finds opportunities data in CRM’s by SQL query. Supported keywords: SELECT
, FROM
, WHERE
, LIMIT
, AND
, and OR
.
Supported operators for Salesforce, C4C, and Dynamics: =
, !=
, <
, >
, <=
, >=
, LIKE
.
Supported operators for SugarCRM: =
, LIKE
.
Parameters:
query
: string - Query which will be executed.
Example:
Code Block |
---|
|
export const crmFindOpportunitiesPre = ({
result,
searchText,
api: { crmManager
}
}) => {
const query = `
SELECT Id, Name, StageName, RecordType.Name
FROM Opportunity
WHERE Name = '%${searchText}%'
LIMIT 10
`;
return api.crmManager.findByQuery(query).then(list => {
list.forEach(item => {
item.Name = `${item.Name} (${item.RecordType.Name})`;
});
result.list = list;
return result;
});
}; |
findOpportunitiesByQuery
Code Block |
---|
|
findOpportunitiesByQuery: ((query) => Promise<any>) |
Finds opportunities by SQL. Salesforce only, not implemented in other CRMs.
getAccountAssociatedValue
Code Block |
---|
|
getAccountAssociatedValue: (() => Promise<any>) |
Returns the value of the accountAssociatedValue feature flag.
getAccountAssociationField
Code Block |
---|
|
getAccountAssociationField: (() => Promise<string>) |
Returns the value of the accountAssociationField feature flag.
getCurrentUser
Code Block |
---|
|
getCurrentUser: (() => Promise<CrmUser>) |
Retrieves the current user from the CRM.
getOpportunityAssociatedValue
Code Block |
---|
|
getOpportunityAssociatedValue: (() => Promise<any>) |
Returns the value of the opportunityAssociatedValue feature flag.
getOpportunityLineItemURL
Code Block |
---|
|
getOpportunityLineItemURL: ((externalId) => Promise<string>) |
Returns a link to the opportunity line items with provided ID. Salesforce only.
Parameters:
externalId
: string - Id of the opportunity.
getOpportunityURL
Code Block |
---|
|
getOpportunityURL: ((externalId) => Promise<string>) |
Returns a link to the opportunity with provided ID. Salesforce only.
Parameters:
externalId
: string - Id of the opportunity.
getPayload
Code Block |
---|
|
getPayload: (() => Promise<any>) |
Returns CRM payload. The value of the payload will vary based on CRM used with Pricefx.
Example:
Code Block |
---|
|
export const quotesDetailNew = async ({
quoteAPI,
api: { crmManager }
}) => {
const payload = await api.crmManager.getPayload();
await quoteAPI.setHeaderValue('label', payload.Name);
await quoteAPI.setHeaderInputValue('Customer', payload.Customer_Number__c);
await quoteAPI.setHeaderInputValue('ProjectID', payload.Project_Id__c);
await quoteAPI.setHeaderInputValue('ProjectName', payload.Project__c);
}; |
getQuoteAccountReferenceField
Code Block |
---|
|
getQuoteAccountReferenceField: (() => Promise<string>) |
Returns the value of the quoteAccountReferenceField feature flag. (Deprecated, use getAccountAssociationField instead)
getSObjectURL
Code Block |
---|
|
getSObjectURL: (() => Promise<string>) |
Returns a link of the SObject. Salesforce only.
getSugarCrmEntityById
Code Block |
---|
|
getSugarCrmEntityById: ((module, id) => Promise<any>) |
Loads an entity by ID from the module. SugarCRM only.
Parameters:
module
: string - Name of the module.
id
: string - Id of the object in module.
Example:
Code Block |
---|
|
const parentAccount = await api.crmManager.getSugarCrmEntityById('Accounts', parentId); |
isAccountPage
Code Block |
---|
|
isAccountPage: (() => Promise<boolean>) |
Returns true when Pricefx is embedded under an account page in CRM.
Example:
Code Block |
---|
|
export const quotesDetailSubmit = async ({
api
}) => {
if(await api.crmManager.isAccountPage()) {
await api.notify.success('We on account page');
}
}; |
isOpportunityPage
Code Block |
---|
|
isOpportunityPage: (() => Promise<boolean>) |
Returns true when Pricefx is embedded under the opportunity page in CRM.
Example:
Code Block |
---|
|
export const quotesDetailSubmit = async ({
api
}) => {
if(await api.crmManager.isOpportunityPage()) {
await api.notify.success('We on opportunity page');
}
}; |
postCall
Code Block |
---|
|
postCall: ((url, method, payload) => Promise<any>) |
Calls HTTP request in CRM. Salesforce and SugarCRM only.
Parameters:
url
: string - API call url.
method
: GET | POST | PUT | DELETE - Method which will be used for API call.
payload
: any - Body of the API call.
Example:
Code Block |
---|
|
export const quotesDetailSubmit = async ({
quoteAPI,
api: { crmManager,
notify }
}) => {
const externalRef = await quoteAPI.getHeaderValue('externalRef');
const opportunityUrl = await api.crmManager.getOpportunityURL(externalRef);
const totalValue = await quoteAPI.getHeaderOutputResult('TotalAmount');
const payloadForSF = {
PriceFx_Quote_No__c: quoteAPI.getHeaderValue('uniqueName'),
Amount: totalValue
};
api.crmManager.postCall(opportunityUrl, 'PATCH', payloadForSF).then(() => {
api.notify.success('Opportunity was updated.');
});
}; |
...
Code Block |
---|
|
reportOpportunityNumberOfQuotes: (() => Promise<void>) |
Sends the number of quotes back to SugarCRM. (Deprecated)
updateCache
Code Block |
---|
|
updateCache: ((path, data) => Promise<void>) |
Used This function is used to manipulate _initCache in SugarcrmManager. It is mainly used to modify the parent account under the account page in SugarCRM. SugarCRM only.
Parameters:
path
: string - Path to Cache.
data
: any - Data for update.
Example:
Code Block |
---|
|
// Data is a parent account for the current account
crmManager.updateCache('sugarCRMData.payload.Account', data) |
fetch
Methods for fetching customer and product data.
customer
Code Block |
---|
|
customer: ((customerId) => Promise<Customer>) |
Fetches a customer by their ID.
Parameters:
customerId
: string - Customer ID.
customerByFilter
Code Block |
---|
|
customerByFilter: ((customFilter) => Promise<Customer[]>) |
Fetches customers based on a custom filter.
Parameters:
customFilter
: string - Criteria.
customerByName
Code Block |
---|
|
customerByName: ((customerName) => Promise<Customer[]>) |
Fetches customers by their name.
Parameters:
customerName
: string - Customer Name.
customerExtension
Code Block |
---|
|
customerExtension: ((tableName, filter) => Promise<CustomerExtension[]>) |
Fetches customer extension data based on the table name and filter.
Parameters:
tableName
: string - Name of the Customer Table.
filter
: string - Advance filter.
productById
Code Block |
---|
|
productById: ((sku) => Promise<any>) |
Fetches a product by its SKU.
Parameters:
label
: string - Product sku.
productByLabel
Code Block |
---|
|
productByLabel: ((label) => Promise<Product[]>) |
Fetches products by their label.
Parameters:
label
: string - Product label.
navigate
Code Block |
---|
|
navigate: ((targetPage, targetPageState) => Promise<void>) |
Allows page navigation using interceptor API. This API uses Context Linking for navigation.
Parameters:
targetPage
: string - Page to which user should be navigated.
targetPageState
: any - Additional parameters for navigation.
Example:
Code Block |
---|
|
export const quotesListDataLoad = async ({ api, appPages }) => {
await api.navigate(appPages.QC_NEW_QUOTE, { id: 'P-123' });
} |
notify
API for displaying notifications.
...
alert
: Displays a blue notification message.
error
: Displays a red notification message.
info
: Displays a blue notification message.
success
: Displays a green notification message.
warning
: Displays an orange notification message.
Parameters:
message
: string - Translation value key.
options
: {duration?: number, url?: string, urlName?: string} - (Optional) Settings for notification.
Example:
Code Block |
---|
|
await api.notify.error(
'Error message, with help link',
{
urlName: "help",
url: "<https://help.me>",
duration: 0
}
) |
translate
Code Block |
---|
|
translate: ((key, params?) => Promise<string>) |
Translates text based on the provided key and parameters.
Parameters:
key
: string - Translation value key.
params
: any - Parameters for translation string formatting.
Example:
Code Block |
---|
|
await api.translate(
'unity_interceptor_already_exists',
{
name: 'myInterceptor'
}
) |
url
Methods related to URL handling.
getParameters
Code Block |
---|
|
getParameters: (() => Promise<string>) |
Retrieves URL parameters.
Related Topics
...