Get Offer Service
This service validates the incoming offer with the existing basket of the customer.
The services utilize the following relationships:
The offer is generated on a particular set of inputs and returns the list of products which can be offered to the subscriber. The inputs in the request can include any of the following filters:
You can utilize the following request flags for this web service:
Request Flag Name | Default |
---|---|
ReturnIneligibleProducts | True |
ReturnBundleOfferings | False |
ReturnCharacteristicsDetails | False |
ReturnPrices | False |
ReturnProductInformation | True |
validateData | True |
validateProductRequiredForGroups | True |
validateProductComprisedOfGroups | True |
validateProductCompatibility | True |
validateSegmentCompatibility | True |
decomposeProducts | False |
basicValidationOnExistingOffer | True |
ValidateProdDate | False |
enforceCompatibleSegment | False |
skipChildFilterValidation | False |
Get Offer Filters
OPE uses the following filters to get the initial list of eligible products, which are then validated through the normal process of eligible products evaluation:
Filter | Description |
---|---|
Focus |
The focus filter considers the products that are present in the basket, order, or an existing inventory to get the initial list of eligible products. If the focus filter is present, the rest of the filters are ignored. Because the product in focus is already present with the customer, the optional products for the selected focus is used as the initial list of eligible products. |
Promotions |
The products in promotions filters are directly used to get the initial list of eligible products. If promotions are present, all other filters except focus are ignored to get the initial list of eligible products. |
Segment |
The segment filter provides a way to get a list of products belonging to the same segment. The products are related to the segment name and segment types. The initial list of eligible products contains a union of all the products, which includes the same and different segment types unless they have an incompatible relationship defined. Any products that do not have any compatible or incompatible relationships defined are considered to be compatible with that segment type. |
Record Type |
This filter provides a way to get the initial list of all the products belonging to the record type specified. |
Record Sub Type |
This filter provides a way to get the initial list of products belonging to the subrecord types specified. |
Category |
This filter provides a way to get the initial list of products belonging to the specified category. |
Input Field | This field sets linking relevant fields and returns eligible products using those fields. This means that it checks for the linkdefinitions from the relationships, such as ProductComprisedOf, ProductRequiredFor, and compatibleProducts. If those linkdefinitions are present in the input filter list, the product is considered eligible. |
Order Date Filter |
This filter defines the order date for the request. If this is not set, the engine assumes the current date as the order date. |
Return Characteristics Details | This filter provides the option to only return the inputted characteric details, such as InstanceMax, InstanceMin, and Itemspec. |
Return Characteristics Name | This filter provides the option to only return the inputted characteristic name. |
Return Characteristics Description | This filter provides the option to only return the inputted characteristic description. |
Return Characteristics Value Type | This filter provides the option to only return the inputted characteristic value type. |
Get Offer Request
Element Name | Element Type | Description |
---|---|---|
BusinessTransactionID | String
(Optional) |
Used for the upstream web service to correlate a response with the appropriate request. |
ReturnIneligibleProducts | Boolean
(Optional) |
Toggles whether products, which are found to be ineligible as a result of a specific reason, are returned in the response. The products that are present in the Eligible Products Holder and are removed as being incompatible with a product, or child of a product, in the order or inventory are identified as ineligible products once detected. The default is value false. |
ReturnBundleOfferings | Boolean
(Optional) |
Bundle support, which is for getting eligible bundles for the current basket and inventory. Only those products which have optional children in the order request are eligible. The default value is false. |
ReturnPrices |
Boolean (Optional) |
If set, prices for the generated offer are returned. The default value is false. |
ReturnCharacteristicsDetails |
Boolean (Optional) |
If set to false, it will stop sending details such as "InstanceMax", "InstanceMin", and "Itemspec" details for the ProductComprisedOf characteristic and skips the ineligible optional products in the response altogether. |
ReturnProductInformation | Boolean
(Optional) |
If set to true, it returns the product information for the eligible product. The default value is false. |
RequestControl/validateData | Boolean
(Optional) |
Not used in this service. |
RequestControl/ validateProductRequiredForGroups | Boolean
(Optional) |
Toggles if ProductRequiredFor groups are evaluated in eligibility. The default value is true. |
RequestControl/ validateProductComprisedOfGroups |
Boolean (Optional) |
Toggles if ProductComprisedOf groups are evaluated in eligibility. The default value is true. |
RequestControl/validateProductCompatibility |
Boolean (Optional) |
Toggles if ProductCompatibility is evaluated in eligibility. The default value is true. |
RequestControl/validateSegmentCompatibility | Boolean
(Optional) |
Toggles if SegmentCompatibility is evaluated in eligibility. The default value is true. |
RequestControl/validateProdDate | Boolean
(Optional) |
Toggles if the engine checks that the products are valid based on the configured start dates and end dates. |
RequestControl/decomposeProducts | Boolean
(Optional) |
Toggles if products are decomposed into autoprovisioned children or requiredForchildren. The default value is true. |
RequestControl/ReturnProductInformation | Boolean
(Optional) |
If existent, ProductInformation is added directly to eligible and visible ineligible products. |
RequestControl/basicValidationOnExistingOffer | Boolean
(Optional) |
Toggles if the existing basket and inventory is validated before selecting eligible products. The default value is false. |
RequestControl/ReturnProductInformationData | String
(Optional) |
With this element, you can configure characteristic filters for returning product information. There is an "or" relationship between characteristic name (ReturnCharacteristicsName), characteristic description (ReturnCharacteristicsDescription), characteristic details (ReturnCharacteristicsDetails), and characteristic value type (ReturnCharacteristicsValueType). |
SubscriberID |
String (Optional) |
Eligible products are presented for the subscriber specified in these fields. This information is used in the context of the order and inventory to perform compatibility and integrity checks. |
CustomerID |
String (Optional) |
Eligible products are presented for the subscriber specified in these fields. This information is used in the context of the order and inventory to perform compatibility and integrity checks. |
Segment | Boolean
(Optional) |
Information used to derive the initial list of eligible products. Per segment type, a segment element and all related segments should be mapped as name. If multiple segments are provided for a SegmentType, the union of all associated products is returned. Multiple SegmentTypes return an intersection of all products compatible with all SegmentTypes. |
OrderDate | dateTime
(Optional) |
If OrderDate is entered, products in the eligible product list are filtered based on configured start and end dates of each product for that date, otherwise the system time is taken. |
RecordTypes | String
(Optional) |
If one or more RecordTypes values are included in the request, products in the eligible product list are filtered after the expansion to include AutoProvision and Non Mandatory children. This means that all the products in the eligible product list that meet the filtering criteria are returned. RecordType is compared to the configured class of the product. |
Promotions | String
(Optional) |
Promotion products is a reduced list of products that is evaluated by this request. Promotion products are filtered according to the other criteria specified in the request and tested for compatibility with products in the inventory or order. |
RecordSubType | String
(Optional) |
If one or more RecordSubTypes are included in the request, products in the eligible product list are filtered while the expansion includes AutoProvision and Non Mandatory children. This means that all of the products in the eligible product list that meet the filtering criteria, plus any children or children of children, are returned. RecordSubType is compared to the configured Subclass of the Product. |
Categories | String
(Optional) |
If one or more categories are included in the request, products in the eligible product list are filtered for these categories. If you provide multiple categories, an intersection of the results for each category are presented. If one auto provisioned child is not compatible to a category, the parent is not either. |
Focus | Focus
(Optional) |
With this field, you can set a basket or inventorying item into focus. The focused item's child products are evaluated and attached as eligible products. |
InputField | Field
(Optional) |
With this field, you can set linking to relevant fields and returns to evaluate eligible products using those fields. |
orderRequest | orderRequest
(Optional) |
Products in the basket can be passed into the eligibility engine through the order to maintain compatibility between products that are already ordered. |
Status | String | This element is not being used. |
Get Offer Response
Element Name | Element Type | Description |
---|---|---|
BusinessTransactionID | String
(Optional) |
If provided, it is passed from the request and can be used to correlate service calls across disparate services to track actual business process flows in the system. |
Element Name | Element Type | Description |
---|---|---|
operation | String
(Optional) |
The operation's name is "getEligibleProducts" |
component | String
(Optional) |
The service's name is "ExtEligibilityAndValidation" |
severity | String
(Optional) |
INFO, ERROR |
code | String
(Optional) |
The error code is a string that identifies the error and the TIBCO Fulfillment Orchestration Suite component that produced the error. An error code of 0 indicates a successful invocation of the service. |
message | String
(Optional) |
A descriptive text string associated with code. |
Element Name | Element Type | Description |
---|---|---|
ProductID | String
(Mandatory) |
The ID of the eligible product. |
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 eligibility request was made. |
CustomerID | String
(Optional) |
The customer ID for which the eligibility request was made. |
UDFs | UDFType
(Optional) |
Each UDF contains a name field and a value field. Eligibility tries to enrich products with UDFs as much as possible by mapping UDFs from related (compatible, parent, child) products. If linking relevant UDFs could not be mapped from inventory or basket items, they are created with a default value ${new}. |
Messages |
String (Optional) |
Attached ValidationMessage elements which display validation results. |
Price | ChildPriceBaseType
(Optional) |
If set from request, it returns the price for this product. |
Element Name | Element Type | Description |
---|---|---|
Code | String
(Mandatory) |
The code of the validation message. |
Type | String
(Optional) |
The type of the validation message. It is mostly an error message because validation messages are only created in case of errors. The only exception is in case of a migration, because the possibility of a migration is indicated using a message of type info. |
Details | String
(Optional) |
The corresponding textual message, configurable in the GVs located in: AFF/OfferConfigurationValidation/Constants/Errors/OfferValidation |
CausingItem | String
(Optional) |
The CausingItem field indicates which type of item caused the validation error or message, such as TrolleyItem or UDF. |
CausingItemID | String
(Optional) |
The CausingItemID field displays the ID of the item causing the validation error or message, such as the ProductID or the UDF Name. |
CausingItemPosition | String
(Optional) |
The CausingItemPosition indicates the position type of the item causing the validation error or message, such as "LineNumber" for TrolleyItemor "InventoryID" for InventoryItems. |
CausingItemPositionID | String
(Optional) |
The CausingItemPositionID indicates the position of the item causing the validation error or message, such as a LineNumber for TrolleyItemor an "InventoryID" for InventoryItems. |
RuleViolation | String
(Optional) |
The RuleViolation displays the concrete violation of the particular rule which created this message, for example,violation of a maximum constraint of ProductComprised group would be "Group.Max: 2.0 / ActualCount: 3.0". |