Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Tip

Available since version Paper Plane 11.0.

The Unity Pricefx Messaging API allows the external application frontend to interact with Pricefx Pricefx Unity frontend. Via the API you can ask Unity Pricefx to create a new quote, update or fetch quote inputs, etc.

To enable the Messaging API, set the feature flag feIntegration.active to true.

To call Unity Pricefx from the external app frontend, use the window.postMessage() method from JavaScript in the browser.

Example of Unity Pricefx embedded in an external application:

...

In this case, you will attach a handler that logs the message it receives from UnityPricefx, and also will message Unity Pricefx requesting the logged in user data.

...

Example of an external application embedded in UnityPricefx:

Code Block
languagejs
const messageHandler = (event) => console.log(event.data);
window.addEventListener(messageHandler);
window.parent.postMessage({
  "source": "pfxParentMessage",
  "type": "getUserData"
}, *);

...

The following messages are available for both cases (where Unity Pricefx is either the parent or a child page):

Message type

Payload

Description

Example

Response

getUserData

None

Returns the logged in user data.

Code Block
languagejson
{
  "source": "pfxParentMessage",
  "type": "getUserData"
}
Code Block
languagejson
{
  "source": "pricefx",
  "type": "GET_USER_DATA",
  "payload": {
    "locale": "en-gb",
    "email": "your@email.com",
    "loginName": "login.name",
    "roleNames": [...]
  }
}

getClicHeaderValue

  • fieldName – The field's name which you would like to retrieve.

Gets a header field’s value from the CLIC, i.e. quote displayed. This is only enabled when a detail page is open.

Code Block
languagejson
{
  "source": "pfxChildMessage",
  "type": "getClicHeaderValue",
  "payload": {
    "fieldName": "externalRef"
  }
}
Code Block
languagejson
{
  "source": "pricefx",
  "type": "HEADER_VALUE",
  "payload": {
    "fieldName": "externalRef",
    "fieldValue": "externalReference"
  }
}

updateClicHeaderValue

  • fieldName – The field's name which you would like to update.

  • fieldValue – The new value of this field.

Updates a header field’s value. This is only enabled when a detail page is open.

Code Block
languagejson
{
  "source": "pfxParentMessage",
  "type": "updateClicHeaderValue",
  "payload": {
    "fieldName": "externalRef",
    "fieldValue": "new externalRef"
  }
}

None

recalculate

None

Recalculates the CLIC displayed. This is only enabled when a detail page is open.

Code Block
languagejson
{
  "source": "pfxChildMessage",
  "type": "recalculate"
}

None

getClicLineItems

  • queryData – Can be either a query for more complex search or a string with the line item SKU.

Returns the line items matching the given queryData criteria. This is only enabled when a detail page is open.

Code Block
languagejson
{
  "source": "pfxParentMessage",
  "type": "getClicLineItems",
  "payload": {
    "queryData": "AK_0001"
  }
}
Code Block
languagejson
{
  "source": "pricefx",
  "type": "LINE_ITEMS",
  "payload": {
    "queryData": "AK_0001",
    "lineItems": []
  }
}

addClicLineItems

  • lineItems – An array of objects, each of them corresponding to one line item. It has one mandatory sku string field, and an optional object field inputs where it is possible to pass line items inputs values.

Adds a list of SKUs to the current CLIC displayed, with the option of filling some of its inputs. This is only enabled when a detail page is open.

Code Block
languagejson
{
  "source": "pfxParentMessage",
  "type": "addClicLineItems",
  "payload": {
    "lineItems": [
      {
        sku: "AK_0001',
        inputs: {
          Quantity: 3
        }
      }
    ]
  }
}

None

There are also messages which are exclusive to the case where Unity Pricefx is embedded in an external application, since they manipulate the window location:

Message type

Payload

Description

Example

Response

newQuote

newRebateAgreement

newContract

newCompensationPlan

  • targetPageState – The state of the newly created CLIC.
    Check Context Linking, since this field follows the exact same signature as used in Context Linking.

Creates a new quote/RBA/contract/compensation plan.

Values of this new CLIC can be passed through targetPageState which reuses context linking and has the exact same API.

Code Block
languagejson
{
  "source": "pfxParentMessage",
  "type": "newQuote",
  "payload": {
    "targetPageState": {
      "targetPageFields": {
        "externalRef": "created by message"
      }
    }
  }
}

None

navigate

  • targetPage

  • id

Navigates

Unity

Pricefx to the given target page.

Code Block
languagejson
{
  "source": "pfxParentMessage",
  "type": "navigate",
  "payload": {
    "targetPage": "priceShopPage",
    "id": "123"
  }
}

None

There are also events in Unity Pricefx that will trigger a message. When submitting or recalculating a CLIC, a message will be sent containing all CLIC data, such as:

...