Glad to have been of assistance, hope it will work out. Of course be mindful that other people might have different suggestions, that's the great thing about a community.
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.
Original Message:
Sent: Dec 25, 2023 13:05
From: subhanshu shukla
Subject: Defining partial amount in product catalogue and managing it on productOrder->productOrderItem->itemPrice
Hi Jonathan,
You mean to say I keep two product offering prices example
- partial-installment
- remaining-installment
so product-offering and product-order entity will look like this
{ "id": "7655", "name": "Basic Firewall for Business", "description": "This product offering suggests a firewall service that can be deployed in business customer premise.", "version": "2.1", "lastUpdate": "2020-09-27T00:00:00Z", "lifecycleStatus": "Active", "isBundle": false, "isSellable": true, "productOfferingPrice": [ { "id": "1747", "name": "installation-partial", "priceType": "non-recurring", "price": { "dutyFreeAmount": "300" } }, { "id": "1747", "name": "installation-remaining", "priceType": "non-recurring", "unitOfMeasure": "INR", "price": { "dutyFreeAmount": "700" } } ]}
{ "id": "OD101", "orderTotalPrice": [ { "price": { "dutyFreeAmount": "1000" }, "priceType": "non-recurring", "unitOfMeasure": "INR" } ], "productOrderItem": [ { "action": "new", "contactMedium": [], "product": {}, "itemTotalPrice": [{ "dutyFreeAmount": "1000" }], "itemPrice": [ { "name": "remaining-installation", "price": { "dutyFreeAmount": "700" }, "priceType": "non-recurring", "unitOfMeasure": "INR", }, { "name": "partial-installation", "priceType": "non-recurring", "price": { "dutyFreeAmount": "300" } } ], "productOffering": { "id": "7655", "name": "Basic Firewall for Business" } } ], "relatedParty": [ { "name": "Alice", "role": "customer" }, { "name": "Bob", "role": "agent" } ]}
Seems fine to me.
------------------------------
subhanshu shukla
Bharti Airtel Ltd
Original Message:
Sent: Dec 25, 2023 07:04
From: Jonathan Goldberg
Subject: Defining partial amount in product catalogue and managing it on productOrder->productOrderItem->itemPrice
I didn't suggest multiple product offerings, only multiple product offering prices, which would be part of the same product offering.
I'm not so keen on the price alteration, since your use case is really not about adjusting the price.
You could also achieve this by creating a custom sub-entity contained in product offering price, which would give the exact instructions on how to split the payment collection.
------------------------------
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.
Original Message:
Sent: Dec 25, 2023 01:30
From: subhanshu shukla
Subject: Defining partial amount in product catalogue and managing it on productOrder->productOrderItem->itemPrice
HI Jonathan ,
In my situation, the total amount remains constant. Specifically, 30% of the total needs to be gathered online, while the remaining 70% is to be collected offline at the time of installation. Consequently, both the product offering and the product offering price are identical in this scenario. We just need to collect it in a parted manner.
------------------------------
subhanshu shukla
Bharti Airtel Ltd
Original Message:
Sent: Dec 23, 2023 14:55
From: Jonathan Goldberg
Subject: Defining partial amount in product catalogue and managing it on productOrder->productOrderItem->itemPrice
Hi Subhanshu
Considering that the two amounts need to be handled differently, it probably makes sense to have two completely separate ProductOfferingPrice with different IDs, and not use a price alteration.
Bear in mind that the ordering system and/or customer-facing UI needs to understand how to treat these amounts. In your example, one is collected up-front and the other is collected (presumably automatically) just before delivery. But in other business situations, one of the amounts could be collected immediately and the other as a one-time charge on the first bill.
Also need to consider how to handle order cancellation after the first amount was paid.
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.
Original Message:
Sent: Dec 22, 2023 06:43
From: subhanshu shukla
Subject: Defining partial amount in product catalogue and managing it on productOrder->productOrderItem->itemPrice
Hi Team,
I encounter a situation where order payments are divided into two parts, following a methodology akin to that employed by travel agencies. In this structure, an initial 30% is collected upfront, and the remaining 70% is gathered two days before the commencement of the journey.
If I were to define a partial amount within the productOfferingPrice, it could potentially clash with the remaining productOfferingPrice and the actual productOfferingPrice.
One approach to address this challenge is to define two distinct productOfferingPrice components for the product in question.
For instance, considering an actual Manufacturer's Suggested Retail Price (MSRP) of 1000:
Definition of product offering
{ "id": "7655", "name": "Basic Firewall for Business", "description": "This product offering suggests a firewall service that can be deployed in business customer premise.", "version": "2.1", "lastUpdate": "2020-09-27T00:00:00Z", "lifecycleStatus": "Active", "isBundle": false, "isSellable": true, "productOfferingPrice": [ { "id": "1747", "name": "installation-partial", "priceType": "non-recurring", "price": { "dutyFreeAmount": "300" } }, { "id": "1747", "name": "installation-actual", "priceType": "non-recurring", "unitOfMeasure": "INR", "priceAlteration": { "name": "partial-offset", "price": { "dutyFreeAmount": "300" }, "priceType": "non-recurring", "unitOfMeasure": "INR" }, "price": { "dutyFreeAmount": "1000" } } ]}
Definition of product order
{ "id": "OD101", "orderTotalPrice": [ { "price": { "dutyFreeAmount": "1000" }, "priceType": "non-recurring", "unitOfMeasure": "INR" } ], "productOrderItem": [ { "action": "new", "contactMedium": [], "product": {}, "itemTotalPrice": [{ "dutyFreeAmount": "1000" }], "itemPrice": [ { "name": "actual-installation", "price": { "dutyFreeAmount": "1000" }, "priceType": "non-recurring", "unitOfMeasure": "INR", "priceAlteration": { "name": "partial-offset", "price": { "dutyFreeAmount": "300" }, "priceType": "non-recurring", "unitOfMeasure": "INR" } }, { "name": "partial-installation", "priceType": "non-recurring", "price": { "dutyFreeAmount": "300" } } ], "productOffering": { "id": "7655", "name": "Basic Firewall for Business" } } ], "relatedParty": [ { "name": "Alice", "role": "customer" }, { "name": "Bob", "role": "agent" } ]}
Here first price name is partial means collection of 30% and second price is actual with price alteration of partial as offset.
If you have any alternative suggestions or more efficient ways to implement this, please feel free to share them.
------------------------------
subhanshu shukla
Lead Digital Architect
Bharti Airtel Ltd
------------------------------