Offer and Price Engine Product Model

Offer and Price Engine (OPE) uses the same offline models schema currently being used by the TIBCO Fulfillment Order Management engine. OPE uses product models to get offers configured in the product catalog.

In terms of the OPE engine, the top level product has no autoprovisioned parents associated with it. All such products are considered as a product offering. All such products are considered as a product offering. Using the class and subclass feature of the product model, they can be classified into logical types.

These product models are picked up from the same offline directory as configured during the TIBCO Fulfillment Order Management setup. The models can be made to load onto the engine using the offline models web service or the offline poller mechanism. Online integration with TIBCO Fulfillment Catalog is also possible using the publish catalog method.

OPE uses product models (optionally OfferMappingFile to link OfferIds) to get offers configured.

Relationships

OPE makes use of the following relationships for offer generation and validation, and price determination:
Relationship Description
Product Comprised Of

This relationship is used to define the dependencies between the products, which lead to decomposition of a parent and child products.

Characteristic

This relationship is used to associate the characteristic entities with a product. In addition to characteristics that are fulfillment related, some internal characteristics are used by the product for internal logic. These are related to error handling. For example, a characteristic called DECOMPOSITION is used to filter out certain products when a condition is met, which could be based on data from the incoming order request.

Compatible Product

This relationship defines that two products can exist in an order or customer image.

Incompatible Product

This relationship defines that two products cannot exist in an order or customer image.

Compatible Segment

This relationship defines that a product is compatible with the segment. A product can either be compatible, incompatible, or not related with the segment. If a product is defined as both compatible and incompatible in the model, it is considered as a compatible product. Segments are grouped by segment type.

Incompatible Segment

This relationship defines that a product is incompatible with the segment type and name.

Class and Subclass

This relationship can be used to classify products into different logical types.

Product Required For

This relationship is used to define the prerequisite between two products. With this relationship, you can create offers without defining the sequence or dependency between products. These products are implicitly provisioned with the parent.

Category

This relationship defines that a product belongs to a category. A product can belong to no category, one category, or to many categories.

Record or Relationship Attributes

This engine uses the following record attributes and relationship attributes:

Attribute Description
RECORD_STATUS

This record status characteristic indicates whether the record is active or not.

Start Date

This record level attribute indicates whether the product is an eligible product for the requested order date if it is after the start date.

End Date

This record level attribute indicates whether the product is an eligible product for the requested order date, if it is before the end date.

Link Definitions

This a type field in the characteristics that defines the linking attributes, for example, subscriber ID or any other characteristic between two products. The LinkDefinitions are evaluated for the following relationships:

  • ProductComprisedOf
  • ProductRequiredFor
  • ProductRequiredFor
  • IncompatibleProducts

If LinkDefinitions are provided for relationships, these values must match the values for UDFs for the corresponding products in the offer and the order request.

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 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.

Flags

The following are flag names for the get offer request and for the validate offer request:

Get Offer Request Flag Names
validateData

For more information, see Data Validations.

validateProductRequiredForGroups
validateProductComprisedOfGroups
validateProductCompatibility
validateSegmentCompatibility
ReturnBundleOfferings
ReturnPrices
decomposeProducts
basicValidationOnExistingOffer
Validate Offer Request Flag Names
validateData

For more information, see Data Validations.

validateProductRequiredForGroups
validateProductComprisedOfGroups
validateProductCompatibility
validateSegmentCompatibility
decomposeProducts
basicValidationOnExistingOffer