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.

The pricing service enables the pricing of a particular offer or order based on the following:
  • 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

Request Header Details
Element Name Element Type
BusinessTransactionID String

(Optional)

ReturnTotals Boolean

(Optional)

Request Body Details
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.

Get Price Response Body Details
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'.

Get Price Response Return Messages
Return Message Reason
SUCCESS No errors
TECHNICAL- ERROR The unexpected behavior due to bugs or catalog configuration errors
BUSINESS-ERROR A product has no prices attached or an invalid product is passed in the request.

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.