Open APIs

 View Only
Expand all | Collapse all

Difference between orderItemRelationShip used in R17.5.1 & R19.0.0 TMF622 Product Ordering API

  • 1.  Difference between orderItemRelationShip used in R17.5.1 & R19.0.0 TMF622 Product Ordering API

    Posted Aug 22, 2019 04:00

    Hi @Ludovic Robert,

    I has just gone through the newly released TMF 622 Product Ordering API R19.0.0 ​​and noticed a basic difference in the use of orderItemRelationShip (now productOrderItemRelationship - R19.0.0). Previously in R17.5.1 in example "create product order" the child products under the Bundled product were described to be as child orderItems (i.e. orderItems inside the orderItem of Bundles product) and now in R19.0.0 the approach has been changed with productOrderItemRelationship containing value "bundles" which describes what a productOrderItems a bundled inside this bundle with no sub-level hierarchy of productOrderItems, but still the product order resource in R19.0.0 mentions the same for which I failed to understand the use.

    Moreover, I see that approach used in R17.5.1 seems more feasible as we can use the same for UCs where there is a bundle inside a bundle, it will be difficult to represent the same using the approach mentioned in R19.0.0 (though implementable :) )

    Please provide your views on same.

    R17.5.1 (Child Product of bundle are inside the bundle orderItem )

    {
        "id": "30001",
        "@type": "ProductOrder",
        "orderItem": [
            {
                "id": "100",
                "orderItem": [
                         { 
                             "id": "110"
                         },
                        {
                            "id": "120",
                            "productOrderItemRelationship": [
                                {
                                   "id": "110",
                                   "relationshipType": "reliesOn"
                                }
                              ],
                          }
                 ],
            }
         ]
    ]

    R19.0.0 (Child Product of bundle are at same level)

    {
        "id": "30001",
        "@type": "ProductOrder",
        "productOrderItem": [
            {
                "id": "100",
                "productOrderItemRelationship": [
                        {
                           "id": "110",
                           "relationshipType": "bundles"
                        },
                       {
                           "id": "120",
                            "relationshipType": "bundles"
                        }
                 ],
            },
            { 
                  "id": "110"
            },
           {
                  "id": "120",
                  "productOrderItemRelationship": [
                       {
                          "id": "110",
                           "relationshipType": "reliesOn"
                       }
                   ],
            }
         ]
    }



    ------------------------------
    Rabinder Devnani
    Sterlite Technologies Limited
    ------------------------------


  • 2.  RE: Difference between orderItemRelationShip used in R17.5.1 & R19.0.0 TMF622 Product Ordering API

    TM Forum Member
    Posted Aug 23, 2019 03:18
    Hi Rabinder

    That just examples. Sorry if it triggers some misunderstood.
    Both patterns are valid.
    You can "bundle" order items within order item to reflect commercial catalog hierarchy into your order structure or you can have a flat order item structure and leverage relationship to describe the commercial hierachy. API supports both.

    Thanks for your review of the spec.

    Ludovic

    ------------------------------
    Ludovic Robert
    Orange
    ------------------------------



  • 3.  RE: Difference between orderItemRelationShip used in R17.5.1 & R19.0.0 TMF622 Product Ordering API

    Posted Aug 23, 2019 03:38
    Edited by Rabinder Devnani Aug 23, 2019 03:50

    Thank you @Ludovic Robert for the clarity.

    Moreover I also wanted to understand that can we also extend the relationship values to add some more, like in a case of upgrading bundles UC (change bundle/plan)? Or we have to use the "ProductRelationShip" for this purpose?
    For e.g.
    If I have an bundle as below:

    Bundle A (Voice & Broadband Bundle)
        - Base Fiber Access
              (Characteristics - Dual Play)

        - ​Voice Bundle (Bundle)
             - Base VoIP Plan

        - Broadband Bundle
             - Base Broadband FTTH Plan

    I am upgrading to something like below

    Bundle B (Triple Play Bundle)
        - Base Fiber Access
              (Characteristics - Triple Play)

        - ​Voice Bundle (Bundle)
             - Base VoIP Plan

        - Broadband Bundle
             - Base Broadband FTTH Plan

        + TV Bundle
             - Base IPTV Plan

    Can I use "relationshipType" value such as "changes" or "reliesOn" from "Base Fiber Access (Triple Play) " orderItem of Bundle B to "Base Fiber Access (Dual Play) " orderItem of Bundle A  as I am upgrading the access for the triple play plan? Or how are these relationships represented in the order structure ?



    ------------------------------
    Rabinder Devnani
    Sterlite Technologies Limited
    ------------------------------



  • 4.  RE: Difference between orderItemRelationShip used in R17.5.1 & R19.0.0 TMF622 Product Ordering API

    Posted Aug 26, 2019 04:33
    Hi @Ludovic Robert,

    Any views on this ?​

    ------------------------------
    Rabinder Devnani
    Sterlite Technologies Limited
    ------------------------------



  • 5.  RE: Difference between orderItemRelationShip used in R17.5.1 & R19.0.0 TMF622 Product Ordering API

    TM Forum Member
    Posted Aug 26, 2019 07:42
    Hi Rabinder
    Not sure to understand and furthermore I cannot answer specific implem question.
    Nevertheless... relationship are useful of course to define product inventory impact during order. Remember that productRelationship target product id (exisiting in your inventory).

    Suppose you already own a bundle in you inventory (#564) and you want to add an additionnal product (TV Bundle)  within this bundle...

    If you using flat structure
    Order Item #1: Add productOffering  'TV Bundle'
           Relationship: 'child of' --> 664

    Relationship is used to describe commercial hierarchy

    If you using hierarchy structure
    Order item #1: noChange Product 564
         Order item #2: Add productOffering  'TV Bundle'

    order item #2 is embedded in #1 reflecting commercial hierachy

    API can accomodate both representation (and probably other).

    ​​​​​Hope it helps

    Ludovic

    ------------------------------
    Ludovic Robert
    Orange
    ------------------------------



  • 6.  RE: Difference between orderItemRelationShip used in R17.5.1 & R19.0.0 TMF622 Product Ordering API

    Posted Aug 26, 2019 07:55
    Thanks @Ludovic Robert, this is what I was looking for, I was just validating whether both patterns are valid in from Open API/ODA point of view.​

    ------------------------------
    Rabinder Devnani
    Sterlite Technologies Limited
    ------------------------------



  • 7.  RE: Difference between orderItemRelationShip used in R17.5.1 & R19.0.0 TMF622 Product Ordering API

    TM Forum Member
    Posted Aug 29, 2019 11:03
    Regarding modeling decisions (how to structure your product offerings for example), the Open API (and the SID) are non-opinionated.
    However the ODA work may result in more concrete recommendations or suggestions for how to implement products. I suggest to reach out to ODA architect @David Milham to find out what is being done in ODA.​

    ------------------------------
    Jonathan Goldberg
    Amdocs Management Limited
    ------------------------------



  • 8.  RE: Difference between orderItemRelationShip used in R17.5.1 & R19.0.0 TMF622 Product Ordering API

    Posted Aug 30, 2019 02:53
    Thanks @Jonathan Goldberg I will certainly do that. Do we a separate discussion group for ODA or its impact on Product Modelling ?  ​

    ------------------------------
    Rabinder Devnani
    Sterlite Technologies Limited
    ------------------------------



  • 9.  RE: Difference between orderItemRelationShip used in R17.5.1 & R19.0.0 TMF622 Product Ordering API

    TM Forum Member
    Posted Aug 30, 2019 08:31
    I looked in the list of communities (https://engage.tmforum.org/communities/allcommunities) but I did not find a community for ODA discussions, so I have raised it with the community manager to consider having such a community.​​

    ------------------------------
    Jonathan Goldberg
    Amdocs Management Limited
    ------------------------------



  • 10.  RE: Difference between orderItemRelationShip used in R17.5.1 & R19.0.0 TMF622 Product Ordering API

    TM Forum Member
    Posted Sep 11, 2019 10:24
    productRelationship also allows to add the instance of BaseProductRefOrValue; means we can add the product (with all details) in the productRelationship. 
    So can I order like Product within Product (Hierarchy):
    {
        "id": "30001",
        "@type": "ProductOrder",
        "orderItem": [
            {
                "id": "100",
                "product": [
                         {
                             "id": "P100",
                             productSpecification":{
                             }
                             "productRelationship"::{
                                      "relationshipType": "bundles",
                                       "product": {
                                                 "id": "P110",
                                                 productSpecification":{
                                           }
                                }
                   ]

    and how is it different from OrderItem within OrderItem (Hierarchy)?

    ------------------------------
    Prashantkumar Sonawane
    Amdocs Management Limited
    ------------------------------



  • 11.  RE: Difference between orderItemRelationShip used in R17.5.1 & R19.0.0 TMF622 Product Ordering API

    Posted Sep 12, 2019 04:23

    @Prashantkumar Sonawane,

    I don't know how effectively this pattern can be used, but what I understood from the sample which is given in R17.5.1 & R19.0.0 is that business generally will be looking for tracking & managing of different order items (here for e.g. Single Product Offerings inside Bundle ones) inside the bundle and hence an order item for each sellable offer is created.

    Moreover it also eases the management of following scenarios:
    1. In-flight amendments to the order - just add/removing/updating particular orderItem
    2. In-dependent processing of unrelated orderItems
    3. Tracking at each sold item i.e. orderItem

    These are some of them which came to my mind, I would request @Ludovic Robert to give some more inputs on this.



    ------------------------------
    Rabinder Devnani
    Sterlite Technologies Limited
    ------------------------------