@Ludovic Robert, thanks for your feedback.
To make sure I understand correctly, you are saying that:
- Overridden prices should be treated as priceAlteration (inside orderPrice) & the actual value of overridden price should be captured in price entity.
- For regular prices (not overridden) only orderPrice should be used with price entity containing the actual price of productOrderItem with priceAleration having no value in it.
With above understanding, we conclude that priceAlteration entity will only be used to denote any change in orderPrice (of any type i.e. recurring, discount, non-recurring, penalty) compared to original price item (productOfferingPrice)
Now lets map it with the example that is been used in R19 for priceAlteration.
Here priceAlteration is used to represent a recurring discount.
Now imagine I have a discount associated to the monthly fee like below, which is also be overridden. How are we going to represent that a particular discount is overridden, as there is no flag inside priceAlteration which allows that applicability.
"itemPrice": [
{
"description": "Tariff plan monthly fee",
"name": "MonthlyFee",
"priceType": "recurring",
"recurringChargePeriod": "month",
"price": {
"taxRate": 0,
"dutyFreeAmount": {
"unit": "EUR",
"value": 20
},
"taxIncludedAmount": {
"unit": "EUR",
"value": 20
}
},
"priceAlteration": [
{
"applicationDuration": 3,
"description": "20% for first 3 months",
"name": "WelcomeDiscount",
"priceType": "recurring",
"priority": 1,
"recurringChargePeriod": "month",
"price": {
"percentage": 20,
"taxRate": 0,
"@type": "price"
}
}
]
}
]
------------------------------
Rabinder Devnani
Sterlite Technologies Limited
------------------------------
Original Message:
Sent: Sep 05, 2019 04:29
From: Ludovic Robert
Subject: Understanding TMF 622 Release 19.0.0
Hello @Rabinder Devnani,
Quick feedback after internal TMF API Project discussion about Price Override.
Our feedback is that TMF622 R19 should cover this feature without additionnal enhancement. This R19 version will allow you to provide a productPricce at the product level within the item (which mean the productPrice in the 'future' product instance). The ProductPrice components (Price & PriceAlteration) are link to the ProductOfferingPriceRef class - which is a catalog reference - that allow toy to specifiy the 'override" caracteristic of the priceAlteration.
Hope it helps,
Ludovic
------------------------------
Ludovic Robert
Orange
Original Message:
Sent: Sep 02, 2019 01:48
From: Rabinder Devnani
Subject: Understanding TMF 622 Release 19.0.0
@Ludovic Robert, I think that's the same thing me & @Jonathan Goldberg were discussing. One thing is to manage price overrides through product ordering API.
Second thing was how the integration will take place between product ordering service and billing service is part of ODA any ways, I understand that.
So regarding this point, can you guide if ODA reference architecture is enough to gather details about how services in different domains (Engagement Mgmt., Party Mgmt., Core Commerce Mgmt. & Production Mgmt.) are integrated and how it relates to Open API?
In the previous architectures, we typically used to integrate Customer Order Management system to Billing in order to capture billing related events, now in ODA what are the different approaches taken to understand what all services (Open APIs) will typically be used by Product ordering system. I have come up with below understanding of mine, but need to have views from others as well.
- Product Catalog Management API TMF620
- Customer Management API TMF629
- Product Inventory Management API TMF637
- Communication API TMF681
- Party Management API TMF632
- Quote Management API TMF648
- Service Ordering Management API TMF641
- Account Management API TMF666 [Assuming: Account creation is out of scope]
- Resource Pool Management API TMF685
- Agreement Management API TMF651
- Appointment API TMF646
- Geographic Address Management API TMF673
- Document Management API TMF667
- Resource Ordering Management API TMF652
Where APIs highlighted in blue are read calls.
------------------------------
Rabinder Devnani
Sterlite Technologies Limited
Original Message:
Sent: Aug 30, 2019 09:40
From: Ludovic Robert
Subject: Understanding TMF 622 Release 19.0.0
I'm a bit lost on the first point.
My understanding of this point was to manage 'price override' through piceAlteration (or other) - but not manage any orchestration pattern with billing system. Discusing how billing and order capture are interfaced is probably up to ODA team.
For the second point, we had some discussion on the past (partial order cancelation) and for me it's a topic to be discussed in next TAW end of september. The first approache will be to define a taskresource like we did i the R19. for cancel....but should be discussed.
Sorry for the misunderstanding,
Ludovic
------------------------------
Ludovic Robert
Orange
Original Message:
Sent: Aug 30, 2019 09:21
From: Rabinder Devnani
Subject: Understanding TMF 622 Release 19.0.0
Seems fine to me.
@Ludovic Robert, over to you :)
------------------------------
Rabinder Devnani
Sterlite Technologies Limited
Original Message:
Sent: Aug 30, 2019 08:28
From: Jonathan Goldberg
Subject: Understanding TMF 622 Release 19.0.0
The JIRA is open for writing only to members of the Open API project. I think that perhaps it would be best for the team to have a discussion on the two issues identified here to see if there is value for taking them further:
- Flagging Prices for communication with a billing system
- Allowing partial cancelation of a product order (individual order items)
------------------------------
Jonathan Goldberg
Amdocs Management Limited
Original Message:
Sent: Aug 30, 2019 06:54
From: Rabinder Devnani
Subject: Understanding TMF 622 Release 19.0.0
Ok thanks for your clarity @Ludovic Robert !!
I tried, but don't have access to API Project in JIRA (https://projects.tmforum.org/jira/projects/AP). I am unable to create a CR in JIRA.
Can you provide me the access to create JIRA's ?
------------------------------
Rabinder Devnani
Sterlite Technologies Limited
Original Message:
Sent: Aug 30, 2019 05:05
From: Ludovic Robert
Subject: Understanding TMF 622 Release 19.0.0
Hello @Rabinder Devnani
6. That's a good point. I took a look on the SID and we have there an AlternateProdOfferPriceCharge class that could be useful for this UC. I'm note sure we comppletly map this concept in the API but short term resolution could be to leverage polymorphism to define for exemple an AlternateProdOfferPriceCharge from price class. I suggest to raise a JIRA for this point (CR: Change Request).
7. Have you access to the TMF dashboard page: https://projects.tmforum.org/jira/secure/Dashboard.jspa - our process is to get Jira from API project member to request for enhancements or raise bug.
unitsOfMesure definition (from SID): number and unit representing how many (for instance 1 dozen) of an ProductOffering is available at the offfered price. Its meaning depends on the priceType.
Hope it helps
Ludovic
------------------------------
Ludovic Robert
Orange
Original Message:
Sent: Aug 30, 2019 02:06
From: Rabinder Devnani
Subject: Understanding TMF 622 Release 19.0.0
Thank you @Jonathan Goldberg for your inputs.
1. Got your point regarding using isRef pattern and why there is need to pass object when the inventory doesn't exists yet.
2. Ok, this seems a case of split billing
4. Ok
5. Ok
6. I will request @Ludovic Robert to provide his views as well, because it is important for product ordering system to understand what charges are to be passed to billing system. May be we can introduce a flag for same.
7. Can you guide me regarding the CR process?
Also i wanted to understand use of unitOfMeasure (minutes, GB) inside a order Price which I have mentioned in Question 3.
------------------------------
Rabinder Devnani
Sterlite Technologies Limited
Original Message:
Sent: Aug 29, 2019 11:42
From: Jonathan Goldberg
Subject: Understanding TMF 622 Release 19.0.0
Hi Rabinder, I'll try to answer some of your queries
1. isRef is part of the RefOrValue pattern - if isRef is false it means that the object is being passed by value, while if true it means by reference (and href would point to an existing instance of the object). In this example, if isRef were true I would expect to see an href pointing to product inventory. But practically we have to understand what it means in the context of a product order, typically the order contains a new (or new version) of the product, and so it would not yet exist in the inventory.
2. Having a Billing Account reference at Price level allows direction of charges to different accounts even within a single Product - for example for mobile voice the RC to be paid by the employer and the UC (overage above the allowance given by the RC) by the employee.
4. It can be useful to know at product level which resources are being used, particularly for logical resources (such as MSISDN, static IP address) - the API implementation would have to decide for each line of business which resources are relevant for this. To get the full picture you would indeed have to go to the service and then to the resource, as you state in your question.
5. ServiceRef is a service that implements the product in the network.
6. Alteration could in principle represent any type of price change - so this would include ad-hoc overrides (which by the way could be relevant also in residential market). With that, I am not sure that the open API has fully covered the concept of manual price overrides.
7. I think that this would require an enhancement to the CancelProductOrder resource to add the index of the order item(s) to be canceled. Perhaps worth raising a CR for this.
Hope it helps
------------------------------
Jonathan Goldberg
Amdocs Management Limited
Original Message:
Sent: Aug 26, 2019 05:32
From: Rabinder Devnani
Subject: Understanding TMF 622 Release 19.0.0
Hi,
I have gone through the TMF 622 R 19.0.0 and have some questions regarding the same:
1. What is the use of isRef A boolean (indicate if ref pattern is used) ? Is it to be used if href is used to refer the product from product inventory?
2. What is the need to refer Billing account in order price sub-resource, does the reference in the orderItem doesn't suffice the need ?
3. What is the use of unitOfMeasure (minutes, GB) inside a order Price ?
4. What is the need of ResourceRef relationship, what if I have multiple services inside the product? How will we be able to map which resource is for which service?
5. What is the use if ServiceRef ?
6. Is priceAlteration entity only used for discount ? Or can we use it for overridable prices/charges as well like in case of B2B?
7. How are we going to handle partial cancellation cases e.g. customer ordered 5 productOrderItems and wants to cancel only 1 from them allowed as per product catalog ? How will this be handled using /cancelProductOrder ?
@Ludovic Robert,
Please see if you can provide your views on this ?
------------------------------
Rabinder Devnani
Sterlite Technologies Limited
------------------------------