Hi all,
We are trying to come up with TMF model for POTSOLVE product and export it in TMF 622 Open API compliant format. Sample product model for the same is depicted below (For the sake of simplicity, prices are ignored from the diagram, though they are present on the child product offerings like Analog Hardware, Onsite Install etc. BundledProductOfferingOption is depicted as cardinalities on top of the bundledProductOfferings for the sake of simplicity E.g. 0..20 meaning numberRelOfferLowerLimit = 0 and numberRelOfferUpperLimit = 20):

We have few characteristics which are common to all these child product offerings (List of characteristics below) and expected to be provided as input as part of the product order. These also need to be passed on to downstream activation and provisioning systems as they have provisioning impact, hence I believe should be present on CustomerFacingServiceSpecs as well?
- Building Address
- Demarc Point
- Contact Name
- Contact Email
- Contact Phone
How should we model such characteristics as per TMF best practices? Options -
Option 1: Create these characteristic specifications on each of the component Product Offerings and their ProductSpecifications in above model using ProdSpecCharValueUse and prodSpecCharacteristic respectively and further model them on CustomerFacingServiceSpec as well
Will result in proliferation of characteristics and with some magic rules needed in Ordering to request input for only one of those product offerings and copy values to others
Option 2: Create these characteristic specifications on each of the child Product offerings in above model using ProductOfferingCharValue and further model them on CustomerFacingServiceSpec as well (Don't model on ProductSpecification)
Will result in proliferation of characteristics and with some magic rules needed in Ordering to request input for only one of those product offerings and copy values to others
Option 3: Model a Product Specification for POTSOLVE SingleDemarcService product offering and its CustomerFacingServiceSpec as well and follow Option 1 or Option 2 for modelling characteristic specifications at ProductOffering, ProductSpecification and CustomerFacingServiceSpecification or at ProductOffering and CustomerFacingServiceSpecification only.
We could observe that Open API doesnt restrict us from creating a Product Specification for Product Offering (IsBundle = true), but SID doesn't incline to this thought.
Option 4: Create another mandatory child Product offering under "POTSOLVE SingleDemarcService" which will house all these characteristics as per option 1 or option 2
What could be best possible way forward here? Or are there any better alternatives?
On a side note, we have a fulfillment characteristic (Tracking ID) too which will be modelled at Product offering since its visible to the customer but the value will not be received until it is not filled in by provisioning systems.
One more question, the can the cardinalities mentioned in BundleProductOfferingOption (e.g. 0..20) translate into single ProductOrderItem with quantity mentioned in ordering, meaning lets say, customer buys 10 instances of Analog Hardware, what could it translate to ?
- One ProductOrderItem (with quantity = 10) and Product instance in ProductOrder and ProductInventory APIs respectively, or,
- 10 ProductOrderItems having their own respective Product instances in Product Order and ProductInventory APIs respectively?
What is suitable/advised/possible/recommended as per TMF under which scenario?
------------------------------
Varun Pandhi
Infosys
------------------------------