we also use ProductTerm to model the agreement/contract period in cart, inventory...
We sub-class ProductTerm for different purposes (binding, price guarantee, discounts...)
If a term has a lifecycle, then we also define a duration using "validFor". example:
productTerm": [
{
"@type": "BindingPeriod",
"@baseType": "ProductTerm",
"name": "BP_3_Months_Free",
"duration": {
"amount": 12,
"units": "month"
},
"validFor": {
"startDateTime": "2024-02-07T09:47:52+01:00",
"endDateTime": "2025-02-07T09:47:51+01:00" // productTerm expiry date
}
}
]
(validFor is obviously empty in the product catalogue but is calculated in the cart/order as: Order Activation Date + duration)
we also use product terms to enforce price rules. Examples:
- A "price guaranty" term will protect customer from any price increase during the Product Term duration
- this means billing will read the productTerm and if still running, new price will not apply (but when the term expires in the future, the bill run will see that and use the active price)
- Multiple "binding" terms to restrict what POP is applicable to the PO
- customer can select the 1-year term and pay €23/mo or the 2-year term for €19/mo
The above examples are easily modelled in TMF620 Product catalogue, you model the 2 terms and their related prices, but in the order, you only see the term that was selected by or for the customer.
I'd suggest to read GB922 - Product, it explains how Agreement and ProductOfferingTermorCondition are modelled and suggests some extension to the information model for more complex use cases.
------------------------------
Kind regards,
Matthieu Hattab
Lyse Platform
------------------------------
Original Message:
Sent: Jun 17, 2024 09:51
From: Jan Brnka
Subject: Contract length implementation
Hi.
I'm working on API for indicative offer process: the customer receives an offer with some basic calculation depending on the length of the contract. The Quote Management API seems appropriate to me, but I can't find the contract length/duration/commitment period in this API.
TMF648_Quote_Management
- Agreement/properties/agreementPeriod
-- not relevant imho
- PriceAlternation/properties/...
- ProductTerm/proprties/duration
I did some "investigation" on other APIs and found:
TMF622-ProductOrdering-v5.0.0.oas
- OrderTerm
TMF651_Agreement_Management_API_v4.0.0
- ?
What would be the correct approach?
------------------------------
Jan Brnka
T-Mobile Czech & Slovak Telekom, a.s.
------------------------------