Open APIs

 View Only
  • 1.  Support for RootEntityGroup

    TM Forum Member
    Posted 28 days ago

    I see the following diagram in SID. Can I use this to group my product offerings, product offering prices, product specifications, discounts (POP alterations) etc. If so, how do I go about doing that? Also, I don't see TMF620 has anything representing these entities. Are these are internal use only and not exposed via standard APIs to the outside world?  



    ------------------------------
    Manu
    ------------------------------


  • 2.  RE: Support for RootEntityGroup

    TM Forum Member
    Posted 28 days ago

    Hi Manu

    There is already a Category pattern in the TMF620 Product Catalog API that may be used for grouping of product offerings within a catalog, but also for grouping of Product Specification as well (see below).  What kind of other grouping are you looking for?  There has been suggestions of adding tagging to the entities for management/maintenance purposes.



    ------------------------------
    Dan d'Albuquerque
    Entronica Company Limited
    ------------------------------



  • 3.  RE: Support for RootEntityGroup

    TM Forum Member
    Posted 27 days ago
    Edited by MMH HH 27 days ago

    Thanks for the response, Dan!

    I could use categories to group product offerings. Similarly I could use categories to group product specifications. However, once I group, I want to establish certain relationships between them. You can see below.

    Basically, I want to model the following.

    • A certain class/category of add-ons are only available for customers to buy if they have a certain class/category of plans. I don't want to do this at each add-on/plan PO level (which I could probably do with ProductOfferingRelationship).
      • e.g. unlimited roaming add-on on higher value mobile plans
    •  A certain class/category of discounts are only available for customers with certain plans (POP with POs). I don't see any way to doing this currently.
      • e.g. 30% MRC discount is available only on staff-specific mobile plans
    •  A certain class/category of discounts can't exist other class/category of discounts
      • e.g. some promo discounts with staff discount etc.

    If I use category to model these "class" or groups, there is no way to establish relationship between (i.e. no CategoryRelationShip).

    It would be great to understand from the community how they achieve these requirements.



    ------------------------------
    Manu
    ------------------------------



  • 4.  RE: Support for RootEntityGroup

    TM Forum Member
    Posted 27 days ago

    Hi Manu

    Is there any reason why you have ruled out the TMF679 Product Offering Qualification API (mechanism) and/or the TMF760 Product Configurator API (mechanism)?



    ------------------------------
    Dan d'Albuquerque
    Entronica Company Limited
    ------------------------------



  • 5.  RE: Support for RootEntityGroup

    TM Forum Member
    Posted 27 days ago

    Thanks for the response, Dan. 

    My understanding is that both these APIs need data to make use of and that data comes from product catalog configuration. Am I wrong?

    Also, we're incrementally migrating from non-TMF to TMF. The first being product catalog (TMF620). We are not migrating all at once.



    ------------------------------
    Manu
    ------------------------------



  • 6.  RE: Support for RootEntityGroup

    TM Forum Member
    Posted 27 days ago

    Yes, both the TMF679 Product Offering Qualification and TMF760 Product Configurator requires information from TMF620 Product Catalog and TMF723 Policy Management.

    Typically the offer qualification would check various parts of the Product catalog resources, including the relationship pattern (as you already mentioned) and the Policy (which handles most of your use cases above).  I appreciate though that you may not plan to implement TMF723 at this stage, but the information  model behind it could be used.



    ------------------------------
    Dan d'Albuquerque
    Entronica Company Limited
    ------------------------------



  • 7.  RE: Support for RootEntityGroup

    TM Forum Member
    Posted 25 days ago

    Thanks Dan!

    Typically the offer qualification would check various parts of the Product catalog resources, including the relationship pattern (as you already mentioned) 

    This is the part I'm trying to figure out. What's the best way to embed "compatibility" information in the product catalog? Can the relationship be applied different kinds of entities? For example, between DiscountProdOfferPriceAlteration (discounts) and ProductOfferingPrice (plans)? 



    ------------------------------
    Manu
    ------------------------------



  • 8.  RE: Support for RootEntityGroup

    TM Forum Member
    Posted 25 days ago

    Hi Manu,

    According to your example "A certain class/category of add-ons are only available for customers to buy if they have a certain class/category of plans. " you can perfectly use RootEntityGroups and RootEntityGroupRelationship with a type "requires". ProductOfferingRelationship enables only simple constraints between 2 ProductOfferings not between two sets of Product Offerings.

    According to your need "A certain class/category of discounts are only available for customers with certain plans (POP with POs)", this isn't specified by a constraint between Product Offerings, this is specified by the Policy rule that manages the POP.

    More precisely for your example "e.g. 30% MRC discount is available only on staff-specific mobile plans", you have several ways of doing :

    • 1) if you have a specific Product Offering for employees, the alteration is simply carried by this PO
    • 2) you use the same Product Offering, then the alteration is carried by this PO and the alteration carries a policy rule checking if the customer is an employee

    Sorry, I don't understand your last example.

    See you,

    Cécile



    ------------------------------
    Cecile Gerardin
    Cécile Gérardin
    ------------------------------



  • 9.  RE: Support for RootEntityGroup

    TM Forum Member
    Posted 25 days ago

    Hi Manu,

    In SID, RootEntityGroup is the good concept to use for grouping  any Business Entity inhering from RootEntity such as product offerings, product offering prices, product specifications.

    In addition, RootEntityGroup enables describing contraints between RootEntityGroups such as incompatible, requires... You may find illustrations of examples of contraints in the Pattern Domain guidebook.

    You refer to the API, I'm not an API specialist at all but as far as I know they didn't introduce the concept of RootEntityGroup and use a Category that isn't a SID concept and is much less powerful.

    So maybe you could ask if it could be added.

    See you,

    Cécile Gérardin (SID Leader)



    ------------------------------
    Cecile Gerardin
    Cécile Gérardin
    ------------------------------



  • 10.  RE: Support for RootEntityGroup

    TM Forum Member
    Posted 21 days ago

    Thank you so much for the response @Cecile Gerardin

    I agree with you `RootEntityGroup` is an amazing concept that is applicable in so many scenarios. This is akin to `Collections` I've seen in other products and very useful in many scenarios.

    Having said that, I wonder why the `RootEntityGroup`  doesn't have `id`, `name`, `description` kind of fields. Is it assumed that RootEntityGroup also extends RootEntity and gets these attributes from there?

    Also, as it stands now, my understanding is that it doesn't support sub-group (group hierarchy) concept. I believe, having this would be amazing as we can create group hierarchy as per our needs and use them.  

    According to your example "A certain class/category of add-ons are only available for customers to buy if they have a certain class/category of plans. " you can perfectly use RootEntityGroups and RootEntityGroupRelationship with a type "requires". ProductOfferingRelationship enables only simple constraints between 2 ProductOfferings not between two sets of Product Offerings.

    This is perfect. I was looking for this use case and thanks for confirming. I agree that ProductOfferingRelationship is limiting.

    According to your need "A certain class/category of discounts are only available for customers with certain plans (POP with POs)", this isn't specified by a constraint between Product Offerings, this is specified by the Policy rule that manages the POP.

    More precisely for your example "e.g. 30% MRC discount is available only on staff-specific mobile plans", you have several ways of doing :

    • 1) if you have a specific Product Offering for employees, the alteration is simply carried by this PO
    • 2) you use the same Product Offering, then the alteration is carried by this PO and the alteration carries a policy rule checking if the customer is an employee

    Sorry, I don't understand your last example.

    Can't we have relationship between 2 different groups? i.e. `RootEntityGroup` consisting of `ProductOffering` having a relationship with another `RootEntityGroup` consisting of `ProductOfferingPrices` or precisely `DiscountProdOfferPriceAlteration`? If it is supported, then we can simply have another relationship `requires` or `compatibile` between these groups.

    My third example was to make relationship between 2 different discount groups. E.g. Promotional offers above 40% are incompatible with staff discounts. As `RootEntityGroup` supports grouping of `DiscountProdOfferPriceAlteration`, I assume this should be doable.

    One final point - These are concrete classes, so can be used as they are. Am I correct? or do I need to subclass and create XGroupMember, XGroup and XGroupRelationship classes where X is PO, PS, POP etc?



    ------------------------------
    Manu
    ------------------------------