Open APIs

 View Only
  • 1.  Fields specific info for offerings

    Posted Apr 01, 2022 07:04

    Hi,

    we are trying to find a way to store field-specific (sort of UI) info connected with offerings. For example, we have an offering that when ordered has to have a special order field filled. It is mandatory. For other offerings, it might be optional. This info is strictly connected with the offerings. We thought about storing it as a product specification characteristic in the Product Catalog Management API (TMF620). But after reading the API guidelines, this info does not feel like a characteristic.

    Does it make sense to store this info in the Product Catalog Management API (TMF620) or is there a more suitable API for providing this information?

    Thank you for all the opinions and advice in advance!

    Best Regards,
    ---------------------------------

    Vojtech Pustowka

    Telia Company

    ---------------------------------



    ------------------------------
    Vojtech Pustowka
    Telia Company
    ------------------------------


  • 2.  RE: Fields specific info for offerings

    Posted Apr 03, 2022 10:34
    Hi Vojtech
    Can you make your example more explicit? For instance, when you say a field in the order, what do you mean exactly? A characteristic in a product within the order, or an attribute of order/order item? A concrete example would be best if you can manage without leaking Telia IP.
    The Open API characteristic model in TMF620 includes, at the spec level, metadata that could be used to control a UI (mandatory/optional, configurable, valid value restrictions, etc.). 
    Bear in mind that the model is an exposure model, says nothing about internal storage. So perhaps you could use business rules expressed internally, which would run as part of your GET of the offering, and populate the metadata accordingly in the output.
    Hope it helps

    ------------------------------
    Jonathan Goldberg
    Amdocs Management Limited
    Any opinions and statements made by me on this forum are purely personal, and do not necessarily reflect the position of the TM Forum or my employer.
    ------------------------------



  • 3.  RE: Fields specific info for offerings

    Posted Apr 05, 2022 03:36

    Hi Jonathan,

    it seems you answered my question. It is actually exactly what we need, to control the UI using optional/mandatory metadata. Now I am more confident that the data we need to store belongs to the characteristics in TMF620.

    Thank you for the help.

    BR,

    Pustowka Vojtech



    ------------------------------
    Vojtech Pustowka
    Telia Company
    ------------------------------



  • 4.  RE: Fields specific info for offerings

    Posted Apr 06, 2022 04:56
    Edited by Matthieu Hattab Apr 06, 2022 12:16
    Hi,

    [EDITED as previous suggestion won't work with bundle]

    Using the CharacteristicSpecification/CharacteristicSpecValue pattern will effectively implement your requirement in the productSpecification, not in the productOffering.

    Therefore, you will need to create a productSpecification specifically for that one productOffering else all productoffering associated with this productSpecification will share the same behaviour.

    Another limitation is that you can only use your solution for simple product offering. Bundle Product Offering don't have productSpecification.
    That of course depends on your API implemention and capabilities of your product catalogue software (some software do allow productSpecification for the  bundle)

    Lastly, this is not the intented purpose of productSpecification (which describes what you want to sell and what functionality and characteristics are available to the market).

    ------------------------------
    Matthieu Hattab
    Altibox AS
    ------------------------------



  • 5.  RE: Fields specific info for offerings

    Posted Apr 06, 2022 07:56
    Matthieu, thanks for weighing in here. But an important clarification on the SID here, subject to confirmation by @Cecile Ludwichowski:
    ProductOffering is an abstract class has two subclasses, SimplePO and BundledPO.
    • BundledPO points to other POs, and has no ProductSpecification
    • SimplePO has exactly one ProductSpecification
    The 1..* relationship in the base (abstract) class is an artificial construct allowing you to represent the totality of specs used in the offering structure. It is in fact (if I understand correctly) what UML terms a derived relationship, in the diagram illustrated by backslash / character (/ProdSpecMadeAvailableAs).

    In the API, we prefer to have as few subclasses as possible, and so we collapse these into a single ProductOffering entity, with 0..1 specs.
    • If it represents a bundled PO, it will have 0 specs
    • If it represents a simple PO, it will have 1 spec
    So the Open API precisely follows the SID in this area.​

    ------------------------------
    Jonathan Goldberg
    Amdocs Management Limited
    Any opinions and statements made by me on this forum are purely personal, and do not necessarily reflect the position of the TM Forum or my employer.
    ------------------------------



  • 6.  RE: Fields specific info for offerings

    Posted Apr 06, 2022 08:16
    Jonathan, I just found your statement a bit confusing:

    ProductOffering is an abstract class has two subclasses, SimplePO and BundledPO.
    • BundledPO points to other POs, and has no ProductSpecification
    • SimplePO has exactly one ProductSpecification
    As far as I could understand the BundledProductOffering is an extension (subclass) to a PO which allows specification of bundledProductOfferingOption which describes the limits for this particular PO (or BundledPO) while being included in the "Bundle". The "Bundle" in its own turn is just a PO (not a BundledPO) with isBundle = true and bundledProductOffering[] array containing one or more BundledPOs.

    Could you please tell if I am missing something here?

    Thanks

    ------------------------------
    Viktor Aleksandrov
    OJSC "VimpelCom"
    ------------------------------



  • 7.  RE: Fields specific info for offerings

    Posted Apr 06, 2022 10:24
    Hi Viktor
    Unfortunately the SID naming is not clear - instead of Bundled it would have been better to call it BundlingProductOffering - the BPO represents a bundle of other offerings, which may themselves be bundles or simple.
    And the option is on each relationship between the bundling offering and the offerings that it bundles.
    Hope this is clearer

    ------------------------------
    Jonathan Goldberg
    Amdocs Management Limited
    Any opinions and statements made by me on this forum are purely personal, and do not necessarily reflect the position of the TM Forum or my employer.
    ------------------------------



  • 8.  RE: Fields specific info for offerings

    Posted Apr 06, 2022 10:39
    Yes, it would be much clearer if we could have BundlingPO, but as I could see from TMF620 API spec there's just an ordinary ProductOffering which could be a bundling or simple depending on isBundle property (see https://github.com/tmforum-apis/TMF620_ProductCatalog/blob/master/TMF620-ProductCatalog-v4.1.0.swagger.json#L5780).

    BundledPO is used as an item in bundledProductOffering[] array (see https://github.com/tmforum-apis/TMF620_ProductCatalog/blob/master/TMF620-ProductCatalog-v4.1.0.swagger.json#L5839) and for me is just a holder for any other PO.

    Then, any PO is able to have a ProductSpecification independently of being "isBundle" or not. My point is that your statement "BundledPO points to other POs, and has no ProductSpecification" (where you do mean bundling, yes?) is not true, and we may use PO's PS to provide Characteristics for this BundlingPO, or don't we?



    ​​

    ------------------------------
    Viktor Aleksandrov
    OJSC "VimpelCom"
    ------------------------------



  • 9.  RE: Fields specific info for offerings

    Posted Apr 06, 2022 11:12
    There is a discussion in the forum about having product Specification for the Bundle entity.
    It could make sense if the specifications are static information (marketing information, some description etc), but not if you want use them to configure the bundle entity itself (e.g. characteristics with a list of discrete value).
    GB922 product, section 2.3.2. Figure Pr.05b - Product Spec - Product Offer Relationship attempts to explain why you should not have productSpec for the bundle itself.


    as for naming convention, I've had these discussion many times before!

    SID, GB922 uses BundledProductOffering and SimpleProductOffering.
    BundledProductOffering confuses me because if it (verb in past tense) implies the entity is contained, therefore it's the component entity. that's also what TMF620 documentation use this term
    so SID documentation and TMF620 contradicts each other 

    BundleProductOffering would be better, it's not a verb and it implies the entity is the container.

    BundlingProductOffering ? I'm not sure, ing (present participle) implies movement, action that are still happening. the term is never used in SID or API documentation.

    ------------------------------
    Matthieu Hattab
    Altibox AS
    ------------------------------