Open APIs

 View Only
  • 1.  Product Catalog Management

    TM Forum Member
    Posted Oct 26, 2018 10:28

    Hi,

    I have a question about the Open API Product Catalog Management. Imagine the case bellow :


    We have a Phone A with 3 different prices. One of them the orginal price and the next two, prices wih loyalty points

    Phone A

    400€ 

    299€ + 1000 loyalty points

    199€ + 2000 loyalty points

     The question is, which fields i have to fill to obtain this information  (prices with loyalty points)?

    Best regards, 



    ------------------------------
    Hernâni Domingos
    Celfocus
    ------------------------------


  • 2.  RE: Product Catalog Management

    TM Forum Member
    Posted Oct 29, 2018 03:15
    Hi Hernâni,

    Here are my two cents on how to model your Offer:

    1. create a ProductSpecification "Phone A" that describes your Phone.

    2. create 3 ProductOfferings that use this ProductSpecification:
    • ProductOffering 1
      • Name: "Phone A - Normal Price"
      • ProductOfferingPrice
        • once off: 400 €
      • ProductSpecification: "Phone A"

    • ProductOffering 2
      • Name: "Phone A - 25% off with loyalty points"
      • ProductOffering Price
        • once off: 299€
        • once off: 1000 loyalty points
      • ProductSpecification: "Phone A"

    • ProductOffering 3
      • Name: "PhoneA - 50%off  with loyalty points"
      • ProductOffering Price
        • once off: 199€
        • once off: 2000 loyalty points

    This allows the system to handle loyalty points as like another currency.
    Each customer should then have two accounts: one with € as currency and one with loyalty points as currency.

    Regards






  • 3.  RE: Product Catalog Management

    TM Forum Member
    Posted Oct 29, 2018 06:20
    Prices in the Open API model (not just in the catalog) are modeled using the Money type, described as follows:

    A base / value business entity used to represent money.

    value

    A float. A positive floating point number.

    units

    A string. Currency (ISO4217 norm uses 3 letters to define the currency).


    You could add a valid value to the units to represent loyalty points, that might look something like this:

    "price":

           {

                  "amount": "1000",

                  "units": "LOYALTY"     

           },

    You have a number of strategies on how to use this, for example:
    • Create different ProductOfferings for each combination, each PO would have a ProductOfferingPrice with a money amount and another POP with a loyalty amount.
    • Create a single ProductOffering with a ProductOfferingPrice showing the original money amount, and have a PriceAlteration with the changed money amount, making this changed amount dependent on the loyalty point contribution.

    Hope it helps.




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



  • 4.  RE: Product Catalog Management

    TM Forum Member
    Posted Oct 30, 2018 05:47
    Hi,
     
    Thank you for both of your answers, Koenraad and Jonathan.
    After reading your answers and discussing them with a colleage of mine, I stumbled on a post he created(TMF620 - Product Catalog Management - ProductOffering relationship: https://engage.tmforum.org/communities/community-home/digestviewer/viewthread?MessageKey=fd9288a3-91bf-4979-a4c2-8125cedd8105&CommunityKey=d543b8ba-9d3a-4121-85ce-5b68e6c31ce5&tab=digestviewer#bmfd9288a3-91bf-4979-a4c2-8125cedd8105) where @Jonathan stated that, potentially in future releases, there is a plan to refactor the relationship between ProductOffering and ProductOfferingPrice where the ProductOfferingPrice would become a simple reference. With that in mind, and @Jonathan answer regarding PriceAlteration, should we expect a PriceAlteration relationship in the ProductOfferingPrice resource model?
    Or, is it also possible to use PopRelationship as solution for my initial question? Example: I would have a ProductOffering related to a "ProductOfferingPriceRef" of 299 euros. This ProductOfferingPriceRef would correspond to a ProductOfferingPrice that would have one PopRelationship. The PopRelationship would reference a ProductOfferingPrice of 1000 loyalty points.
     
    ProductOffering 2
      -ProductOfferingPriceRef (id:1)
     
    ProductOfferingPrice (id:1, price:299 euros)
      -PopRelationship (id:2)
     
    ProductOfferingPrice (id:2, price:1000 loyalty points)
     
    regards,


    ------------------------------
    Hernâni Domingos
    Celfocus
    ------------------------------



  • 5.  RE: Product Catalog Management

    Posted Oct 30, 2018 20:46

    Howdy, Hernâni, Jonathan, and Koenraad.

    An alternate that may be a bit simpler is to create a "composite" product offering price for the two prices that include a loyalty points aspect to the price using the sub-resource shown below.

    BundledPopRelationship sub-resource

    This object represents a bundle relationship from a bundle (composite) product offering price (parent) to a simple (component) product offering price (child). A simple product offering price may participate in more than one bundle relationships.

    id

    A string. Unique identifier of the associated product offering price.

    href

    A string. hyperlink reference of the associated product offering price.

    name

    A string. Name of the associated product offering price.

    @type

    A string. (Class) type of the associated product offering price.


    There  would be a single POP for the 400€

    And two composites. One composite, which could be called loyalty points option 1, for the two component prices: component 1: 299€ and component 2: 1000 loyalty points component prices. The second composite would be for the 199€ + 2000 loyalty points.

    ------------------------------
    John Reilly
    John P. Reilly Sole Trader
    ------------------------------