Get Offer Service

This service validates the incoming offer with the existing basket of the customer.

The validation considers product integrity, product compatibility with the products in the offer, segment compatibility with basket items, and group requirements. In case of ceased products, it checks if the item is present in TIBCO Fulfillment Subscriber Inventory in a blocked status. Depending upon the migrations created in the product model, the offer includes the products to be migrated for otherwise incompatible products. Eligibility is evaluated for all products including the auto provisioned products. In case any auto provisioned child is invalid, the product is ineligible.

The services utilize the following relationships:

  • CompatibleSegment
  • IncompatibleSegment
  • Category
  • CompatibleProduct
  • IncompatibleProduct
  • Migration including the existing ProductComposedOf and ProductRequiredFor

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:

  • Segments
  • Categories
  • Promotions
  • Record Types and Record Subtypes
  • Focus (focuses on products in the subscriber's basket or inventory)
  • Characteristics
  • Product Status
In case these filters are present, the products satisfying only these criteria are considered for the offer. In case no filters are present, all product offerings are considered for generating offer and the validation rules are applied.

You can utilize the following request flags for this web service:

Get Offer Request Flags
Request Flag Name Default
ReturnIneligibleProducts True
ReturnBundleOfferings False
ReturnPrices False
ReturnProductInformation True
validateData True
validateProductRequiredForGroups True
validateProductComprisedOfGroups True
validateProductCompatibility True
validateSegmentCompatibility True
decomposeProducts False
basicValidationOnExistingOffer True
ValidateProdDate False

Get Offer Request

Get Offer Request Body Details
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.
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 (ReturnCharacteristicsDescripti on) 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.
Note: Multiple RecordTypes results in a union of all products having one of the provided RecordTypes.
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.
Note: Multiple RecordTypes result in a union of all products having one of the provided RecordSubTypes.
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

Get Offer Response Details
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.
Get Offer Result Status Element Details
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.
Eligible or Ineligible Product Element Details
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.
Validation Message Details
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".