Open APIs

 View Only
  • 1.  Defining partial amount in product catalogue and managing it on productOrder->productOrderItem->itemPrice

    Posted Dec 22, 2023 06:44
    Edited by subhanshu shukla Dec 22, 2023 09:58
    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
    ------------------------------



  • 2.  RE: Defining partial amount in product catalogue and managing it on productOrder->productOrderItem->itemPrice

    Posted Dec 23, 2023 14:55

    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.
    ------------------------------



  • 3.  RE: Defining partial amount in product catalogue and managing it on productOrder->productOrderItem->itemPrice

    Posted Dec 25, 2023 01:30

    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
    ------------------------------



  • 4.  RE: Defining partial amount in product catalogue and managing it on productOrder->productOrderItem->itemPrice

    Posted Dec 25, 2023 07:04

    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.
    ------------------------------



  • 5.  RE: Defining partial amount in product catalogue and managing it on productOrder->productOrderItem->itemPrice

    Posted Dec 25, 2023 13:06

    Hi Jonathan,

    You mean to say I keep two product offering prices example

    1. partial-installment
    2. 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
    ------------------------------



  • 6.  RE: Defining partial amount in product catalogue and managing it on productOrder->productOrderItem->itemPrice

    Posted Dec 25, 2023 15:03

    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.



    ------------------------------
    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.
    ------------------------------



  • 7.  RE: Defining partial amount in product catalogue and managing it on productOrder->productOrderItem->itemPrice

    Posted Dec 25, 2023 09:50

    Hi Subhanshu,

    I think, we should consider product price and payment separately. Product price can remain INR 1000. Payment collection can be in following way depending on the implementation.

    a) Milestone based payment in the order fulfilment. E.g. Upfront payment INR 300 during order submit/generation. Order flow can remain in progress after confirming the booking and wait in a remaining payment collection node till 2 days of actual travel. Once payment is received, order should be completed (if payment is not received before 2 days of travel, next steps can be define based on business requirement, e.g. cancel the booking and complete the order etc). OR,

    b) If the order was completed after confirming the booking, the system will still have partial payment for the purchased product. If any subsequent payment received for that customer/product before 2 days of travel, it should settle the product purchase fee. If payment not received, then some backend job need to scan such pending records and do the necessary action as required from business.

    Regards

    Ajit



    ------------------------------
    Ajit Kumar Pal
    COVALENSE DIGITAL SOLUTIONS LLC
    ------------------------------



  • 8.  RE: Defining partial amount in product catalogue and managing it on productOrder->productOrderItem->itemPrice

    Posted Dec 25, 2023 22:29

    Hi Ajit,

    The rationale behind seeking two distinct productOfferingPrice structures is to allocate the partial payment to the settlement account. Indeed, as you pointed out, I am maintaining the order in a processing state until the entire payment is complete.



    ------------------------------
    subhanshu shukla
    Bharti Airtel Ltd
    ------------------------------



  • 9.  RE: Defining partial amount in product catalogue and managing it on productOrder->productOrderItem->itemPrice

    Posted Dec 26, 2023 03:07
    Edited by Dr. Sudhir Kumar Mittal Dec 26, 2023 03:07

    From SID, I see the business entity CustomerPayment which has both the attributes, "amount" and "remainingAmount".  This way the partial payment can be attributed.  However the extent of the partial payments should be handled by the Price.  

    Regards,



    ------------------------------
    Dr. Sudhir Kumar Mittal
    Jio Platforms Limited
    ------------------------------