Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

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

Properties

add

Methods for adding new customers and products.

customer

customer: ((customer) => Promise<any>)

Adds a new customer.

product

product: ((product) => Promise<any>)

Adds a new product to products.

await 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

getCurrentUser: (() => Promise<User>)

Returns the logged-in user.

Example:

await app.getCurrentUser()
/*
{
  "version": 2,
  "typedId": 123,
  "loginName": "donatas.ka",
  ...
}
*/

configuration

Methods for managing configuration.

overrideConfig

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.

Example:

await configuration.overrideConfig(
  'applicationEnvironment',
  'salesforce'
);

retrieveConfig

retrieveConfig: ((path, defaultValue?) => Promise<any>)

Reads values from Pricefx configuration object.

You can use it to get values from feature flags or some other values such as:

  • type - dev | prod

  • partition

  • applicationEnvironment - standalone | salesforce | c4c | dynamics | sugarCRM

  • apiUrl

  • locale

Example:

const visibleDashboards = await configuration.retrieveConfig(
 'customerSpecificFeatureFlag.dashboards.visible.account',
  []
);

crmManager

Enables communication with CRMs in which Pricefx is embedded.

callAndReceive

callAndReceive: ((message) => Promise<any>)

Triggers postMessage with a message in the window with CRM.

Example:

const message = {
  fields: [
    { id: 'name', value: 'New name' },
    { id: 'description', value: 'New description' }
  ]
};
return crmManager.callAndReceive({ action: 'createNewQuote', data: message })

findAccount

findAccount: (() => Promise<any>)

Returns Account from CRM with provided ID.

findAccounts

findAccounts: ((name) => Promise<{ Id: string; Name: string; }[]>)

Returns max 10 Accounts from CRM which contains the value passed into the function.

findByQuery

findByQuery: ((query) => Promise<any>)

Finds opportunities 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.

Example:

export const crmFindOpportunitiesPre = ({
  result,
  searchText,
  api: { crmManager }
}) => {
  const query = `
    SELECT Id, Name, StageName, RecordType.Name
    FROM Opportunity
    WHERE Name = '%${searchText}%'
    LIMIT 10
  `;
  return crmManager.findByQuery(query).then(list => {
    list.forEach(item => {
      item.Name = `${item.Name} (${item.RecordType.Name})`;
    });
    result.list = list;
    return result;
  });
};

findOpportunitiesByQuery

findOpportunitiesByQuery: ((query) => Promise<any>)

Finds opportunities by SQL. Salesforce only, not implemented in other CRMs.

getAccountAssociatedValue

getAccountAssociatedValue: (() => Promise<any>)

Returns the value of the accountAssociatedValue feature flag.

getAccountAssociationField

getAccountAssociationField: (() => Promise<string>)

Returns the value of the accountAssociationField feature flag.

getCurrentUser

getCurrentUser: (() => Promise<CrmUser>)

Retrieves the current user from the CRM.

getOpportunityAssociatedValue

getOpportunityAssociatedValue: (() => Promise<any>)

Returns the value of the opportunityAssociatedValue feature flag.

getOpportunityLineItemURL

getOpportunityLineItemURL: ((externalId) => Promise<string>)

Returns a link to the opportunity line items with provided ID. Salesforce only.

getOpportunityURL

getOpportunityURL: ((externalId) => Promise<string>)

Returns a link to the opportunity with provided ID. Salesforce only.

getPayload

getPayload: (() => Promise<any>)

Returns CRM payload. The value of the payload will vary based on CRM used with Pricefx.

Example:

export const quotesDetailNew = async ({
  quoteAPI,
  api: { crmManager }
}) => {
  const payload = await 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

getQuoteAccountReferenceField: (() => Promise<string>)

Returns the value of the quoteAccountReferenceField feature flag. (Deprecated, use getAccountAssociationField instead)

getSObjectURL

getSObjectURL: (() => Promise<string>)

Returns a link of the SObject. Salesforce only.

getSugarCrmEntityById

getSugarCrmEntityById: ((module, id) => Promise<any>)

Loads an entity by ID from the module. SugarCRM only.

Example:

const parentAccount = await crmManager.getSugarCrmEntityById('Accounts', parentId);

isAccountPage

isAccountPage: (() => Promise<boolean>)

Returns true when Pricefx is embedded under an account page in CRM.

isOpportunityPage

isOpportunityPage: (() => Promise<boolean>)

Returns true when Pricefx is embedded under the opportunity page in CRM.

postCall

postCall: ((url, method, payload) => Promise<any>)

Calls HTTP request in CRM. Salesforce and SugarCRM only.

Example:

export const quotesDetailSubmit = async ({
  quoteAPI,
  api: { crmManager, notify }
}) => {
  const externalRef = await quoteAPI.getHeaderValue('externalRef');
  const opportunityUrl = await crmManager.getOpportunityURL(externalRef);
  const totalValue = await quoteAPI.getHeaderOutputResult('TotalAmount');
  const payloadForSF = {
    PriceFx_Quote_No__c: quoteAPI.getHeaderValue('uniqueName'),
    Amount: totalValue
  };
  crmManager.postCall(opportunityUrl, 'PATCH', payloadForSF).then(() => {
    notify.success('Opportunity was updated.');
  });
};

reportOpportunityNumberOfQuotes

reportOpportunityNumberOfQuotes: (() => Promise<void>)

Sends the number of quotes back to SugarCRM. (Deprecated)

updateCache

updateCache: ((path, data) => Promise<void>)

Used to manipulate _initCache in SugarcrmManager. SugarCRM only.

Example:

// Data is a parent account for the current account
crmManager.updateCache('sugarCRMData.payload.Account', data)

fetch

Methods for fetching customer and product data.

customer

customer: ((customerId) => Promise<Customer>)

Fetches a customer by their ID.

customerByFilter

customerByFilter: ((customFilter) => Promise<Customer[]>)

Fetches customers based on a custom filter.

customerByName

customerByName: ((customerName) => Promise<Customer[]>)

Fetches customers by their name.

customerExtension

customerExtension: ((tableName, filter) => Promise<CustomerExtension[]>)

Fetches customer extension data based on the table name and filter.

productById

productById: ((sku) => Promise<any>)

Fetches a product by its SKU.

productByLabel

productByLabel: ((label) => Promise<Product[]>)

Fetches products by their label.

navigate

navigate: ((targetPage, targetPageState) => Promise<void>)

Allows page navigation using interceptor API. This API uses Context Linking for navigation.

Example:

export const quotesListDataLoad = async ({ api, appPages }) => {
  await api.navigate(appPages.QC_NEW_QUOTE, { id: 'P-123' });
}

notify

API for displaying notifications.

Methods:

  • 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.

Example:

await api.notify.error(
  'Error message, with help link',
  {
    urlName: "help",
    url: "<https://help.me>",
    duration: 0
  }
)

translate

translate: ((key, params?) => Promise<string>)

Translates text based on the provided key and parameters.

Example:

await api.translate(
  'unity_interceptor_already_exists',
  {
    name: 'myInterceptor'
  }
)

url

Methods related to URL handling.

getParameters

getParameters: (() => Promise<string>)

Retrieves URL parameters.

Related Topics

  • No labels