Validate Offer Service

This service validates the request based on the number of inputs including segments, order, and offer. When you submit an order request, that order is submitted to TIBCO Offer and Price Engine. Based on the product model and group constraints, it returns a message stating if the products are valid or not.

The validation considers product integrity, product compatibility with the products in offer, segment compatibility, category compatibility, and group requirements of basket items. In the case an inventory is supplied, the service validates inventory with the items in the basket and checks for single-use, product compatibility with basket items, and group requirements. In the case of cease products, the service checks if the item is present in inventory in a blocked status. In case any of these checks fail, this service invalidates the offer and returns an appropriate error response.

 

You can apply IncompatibleSegment to a LinkID for the ValidateOffer web service. To implement this, add a UDF with the name SegmentLinkID under the seg:Segment element and under the orderline UDF where you want to map the LinkID under the validateOffer request.

Validate Offer Request Flags
Request Flag Name Default
validateData False
validateProductRequiredForGroups True
validateProductComprisedOfGroups True
validateProductCompatibility True
validateSegmentCompatibility True
decomposeProducts True
validateProdDate False
enforceCompatibleSegment False
skipChildFilterValidation False

Validate Offer Request

Validate Offer Request Details
Element Name Element Type Description
BusinessTransactionID String

(Optional)

Used for the upstream web services to correlate a response with the appropriate request.
CalculateConsequences Boolean

(Mandatory)

Used to enforce migration for basket items. If it is set to false, those items are invalid. If it is set to true, those items become valid, and the corresponding migration actions are done during the request.
RequestControl/validateData

RequestControl

(Optional)

With this element, you can turn off the validation of UDFs, such as type, mandatory, and compatibility, to support a staged order configuration in the sales process. If this is not set, it defaults to false.
RequestControl/validateProdDate Boolean

(Optional)

Toggles if the engine checks that the products are valid based on the configured start dates and end dates. The default value for validateProdDate is false.
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.

validateSegmentCompatibility Boolean

(Optional)

Toggles if SegmentCompatibility is evaluated in eligibility. The default value is true.

RequestControl/decomposeProducts Boolean

(Optional)

Toggles if products are decomposed into auto-provisioned children or requiredForchildren. The default value is true.

Segments Boolean

(Optional)

Segment information is used to validate the compatibility of order items against the provided segments.
orderRequest

orderRequest

(Optional)

Products in the basket can be passed into the validation engine through the order.

Validate Offer Response

Validate Offer Result Status Element Details
Element Name Element Type Description
Component String

(Optional)

The name of the service is ValidateOffer
Operation String

(Optional)

The name of the operation is ValidateOffer
Severity String

(Optional)

The possible values are as follows:
S = for success
ERROR = for error
Code String

(Optional)

The error code is the string that identifies the error and the TIBCO Fulfillment Orchestration Suite component that produced the error. An error code of 0 (zero) indicates a successful invocation of the service.
Message String

(Optional)

A descriptive text string associated with the code
Validation Pass Details
Element Name Element Type Description
ValidationPass Boolean

(Mandatory)

True if the request is validated and no messages of type 'ERROR' are thrown
Validate Offer Result Message Details
Element Name Element Type Description
LineNumber

String

(Mandatory)

Indicates on which item the messages were created.
ProductID String

(Mandatory)

The product ID for which the product the message was created.
Code String

(Mandatory)

The code of the validation message.
Type String

(Optional)

The type of validation message. It is mostly an error message because validation messages are only created in case of errors. The only exception is in the case of a migration.
Details String

(Optional)

The corresponding textual message is configurable in the GVs located in

AFFOfferConfigurationValidation/Constants/Errors/OfferValidation

CausingItem String

(Optional)

The CausingItem field indicates which type of item caused the validation error or message, for example, TrolleyItem or UDF.
CausingItemID String

(Optional)

The CausingItemID field displays the ID of the item causing the validation error or message, for example, the Product ID or the UDF name.
CausingItemPosition String

(Optional)

The CausingItemPosition indicates the position type of the item causing the validation error or message, for example, LineNumber for Orderline.
CausingPositionID String

(Optional)

The CausingItemPositionID indicates the position of the item causing the validation error or message, for example, LineNumber for Orderline.
RuleViolation String

(Optional)

The RuleViolation displays the concrete violation of the particular rule that created this message, for example, violation of a maximum constraint of Product comprised group is Group.Max: 2.0 / Actual count: 3.0.
RelatedSegment String

(Optional)

Segments for subscribers are mapped into these elements. They are taken into account for the PriceRequiresSegment and DiscountRequiresSegment mechanisms.

Segments must be mapped in the Syntax as follows:

  1. If SegmentName and SegmentType does not contain dash(-), the syntax must be SegmentName-SegmentType
  2. If SegmentName and SegmentType contain a dash(-) like Segment-Name, syntax must be Segment-Name SegmentType

<Segment>
  <Name>Segment-Name</Name>
  <Type>SegmentType</Type>
</Segment>

Validation Pass Details
Element Name Element Type Description
Order

Order

(Mandatory)

The complete offer is returned, regardless of whether order lines are added or not.