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