SPO Callout Payload with Dimensions and Overrides
Administrators can configure the SPO (Smart Price Optimization) callout request payload to send Dimensions and Overrides as separate arrays — either at the shared (quote-header) level or at the batch item (line-item) level. This optimized payload structure reduces overall request size, which helps address Salesforce message size limitations.
| Term | Description |
|---|---|
| Shared fields | Dimensions and overrides that apply across all batch items in the request. These typically represent quote header-level information or data that does not vary by line item. A callout includes only a single set of shared keys and overrides. |
| Batch item fields | Line-level dimensions and overrides. You can include up to 100 individual entries, each with its own set of keys and overrides. |
| Dimension | A field used as a lookup key when requesting recommended pricing from SPO. |
| Override | A field whose value is sent to SPO to override a default pricing parameter. |
Configuration process
Step 1: Set the POM Endpoint URI
In POM System Properties, configure the POM Endpoint URI field with the API path for the pricing method in use for your org. Enter the full path after the base URL.
Example: /api/method/name/<Price method name>/values/batch
Step 2: Configure SPOMFieldNamesConfig
- Shared fields: Common across all lines in a callout.
- LIne item / Batch item fields: Specific to each individual line item.
- sharedFields: Contains dimension and override arrays for quote-level fields.
- lineItemFields: Contains dimension and override arrays for line-item-level fields.
{
"sharedFields": {
"dimension": [
"AccountName",
"Region"
],
"override": [
"ApprovalStatus",
"Origin",
"Destination"
]
},
"lineItemFields": {
"dimension": [
"ProductCode",
"Account"
],
"override": [
"UnitPrice",
"Quantity",
"TimeOfDay",
"UOM",
"SalesAgencyType",
"LoadFactor",
"PassengerType"
]
}
}
- Separate sharedFields and lineItemFields into individual records.
- If either section still exceeds 255 characters, split it further.
- Each record must contain a valid, independently parseable JSON object.
{
"sharedFields": {
"dimension": [
"AccountName",
"Region"
],
"override": [
"ApprovalStatus",
"Origin",
"Destination"
]
}
}
{
"lineItemFields": {
"dimension": [
"ProductCode",
"Account"
],
"override": [
"UnitPrice",
"Quantity",
"TimeOfDay",
"UOM",
"SalesAgencyType",
"LoadFactor",
"PassengerType"
]
}
}
- The shared array sends a single set of dimensions and overrides that apply to the entire quote.
- The batchItems array sends up to 100 line-item entries, each with its own dimensions and overrides.
