Get Price Service
The getPrices request accepts multiple combinations of products in the request and generates multiple prices in the single response of these combinations.
- Configuration of product and prices based on the offer catalog
- Configuration of the given set of products in conjunction with segments
- Characteristics pass as part of the getPrices request
The pricing service supports multiple pricing requests in a single service request. This service also calculates the prices in combination with optional products. The pricing service can accept multiple combinations to generate requests. These are mapped to multiple request elements in the GetPrices requestBody elements. The response for requestBody is contained in the ResponseBody. Pricing is calculated per RequestBody and not across them.
Get Price Request
Element Name | Element Type | Description |
---|---|---|
ProductID |
Product (Mandatory) |
These are the products considered for price calculation. They could be the products in basket or in the final offer. Any entities from other request bodies within the getPrices request are treated separately. |
InternalID | String
(Optional) |
The internal ID of the product instance that is used for correlation with ParentInternalID of a child product. |
ParentInternalID |
String (Optional) |
The internal ID of the product's parent instance that is used for correlation with InternalID of a parent product. |
SubscriberID |
String (Optional) |
The subscriber ID for which the request was made. |
CustomerID |
String (Optional) |
The customer ID for which the request was made. |
ProductName | String
(Optional) |
The product's name that is configured in the catalog. |
ProductType | String
(Optional) |
The class or type of the product that is configured in the catalog. |
ProductSubType | String
(Optional) |
The subclass or subtype of the product that is configured in the catalog. |
calculationproduct/linenumber | String
(Mandatory) |
The line number of the order line. |
Product/Action |
String (Mandatory) |
Action for the product to be calculated. Prices are only calculated for PROVIDE Calculation products. |
Product/ProductID | String
(Mandatory) |
Product ID of the product. |
Quantity |
Quantity (Mandatory) |
The quantity is specified by the quantity and the amount together with the UOM of the quantity. There is no validation on the quantity's UOM. They are not evaluated nor are quantities recalculated for different UOMs, such as milliliter to liter. |
UDF | UDF Type
(Optional) |
Each UDF contains a name field and a value field specified at the product level (Product and OptionalProduct). |
OptionalProduct |
OptionalProduct (Optional) |
These products are considered optional for the calculation. A price is calculated for each combination of the CalculationProducts and each optional product. For example, for a request with Product A and Product B as CalculatedProducts, and Product C, Product D, and Product E as optional products, three results are available that contain a combination of products A, B, and C, products A, B, and D, and products A, B, and E. |
RelatedSegment | String
(Optional) |
Segments for subscribers are mapped into these elements. They are then taken into account for the PriceRequiresSegment and DiscountRequiresSegment mechanism. Segments must be mapped in the Syntax: SegmentName-SegmentType. |
Get Price Response
The response mapping rule maps the calculated prices and their attributes into UDF elements and creates corresponding modifier elements for existing discounts. Specified UDFs on product level (Product and OptionalProduct) are passed through for easier identification and processing of products further on. Price characteristics and Discounts characteristics are mapped additionally to the predefined UDFs.
Element | Description |
---|---|
CorrelationID | CorrelationID of the request body |
Result | The result element with all result details |
Result/ReturnCode | The return code for the pricing request |
CalculationResult | The pricing response body corresponding to the combination of calculated and optional products |
CalculationResult/CalculationResultLine | The calculated product in the combination |
CalculationResultLine /lineNumber | The line number of calculated and optional products |
CalculationResultLine/Action | The action of the calculated product and optional product |
CalculationResultLine/ProductInformation | ProductInformation of the calculated product |
Quantity | The quantity of the calculation of the product and optional product |
PriceItem | The price applied for the calculated product. This includes the prices of all the child products from this line as well |
Priceitem/UDFs | The pricing UDFs |
PriceItem/Modifier items | The discounts and child discounts applied to the price |
ModifierItems/UDFs | The discount UDFs |
CalculationResult/Totals | The total for the offer |
Totals/TotalPrice | The total per identical price type |
Totalprice/Type | The price type |
Totalprice /Item | The price item details |
Item/ItemID | The comma separated price IDs |
Item/ItemSubTotal | The price for the item before discount |
Item/ ItemDiscount | The total Discounts applied to these items |
Item/FinalPrice | The final price after discounts |
Currency | The currency of the price item |
The ResultType contains a ReturnCode that reflects an overall result of the particular price request, valid values are 'SUCCESS', 'TECHNICAL-ERROR' and 'BUSINESS-ERROR'.
Each response element can have multiple results based on the number of OptionalProduct provided in the request. Each calculation result contains lines with each line having a product associated with 0 to n prices. The particular price characteristics, including discount characteristics, are stored in UDFs.