Well Jimmy, you should do what's best for you. There are many ways to skin a cat :) .
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: Oct 26, 2021 09:47
From: Jimmy Kongoli
Subject: TMF620: ProductSpecification API for Devices
thank you @Jonathan Goldberg
Few comments below:
- Our product catalog is not TMF compliant. We are using Commercetools for the product catalog. The data model is simple: product.sku[*]. The product, which could have been close to TMF productSpecification does not encapsulate "characteristic specifications".
- We are implementing a TMF layer which consumes CommerceToosls API and maps the data to TMF compliance resource data model.
- To meet UX requirements, TMF approach for rendering a simple PDP page, is not very efficient in our case.
The implementation would be chatty and there are unnecessary http calls we need to be able to render a simple PDP compared to the tradition hardgoods catalog browsing.
If we follow TMF, the sequence of http calls we need to render a PDP page [ we need to render all valid combinations of characteristic specifications values and the cheapest price ] would be
- Get /productSpecification/{id}. Get the list of characteristic specifications for memory and color values. We will actually build this from commerceTools: get all SKUs for a device and build the list of unique values for each of product specification characteristic.
- Iterate though values of one of the characteristics (for example the color) and Get all respective /productOffering (n http calls)
- Implement logic to find the cheapest productOffering
- Aggregate and render PDP page.
A more efficient option for us would be to request the list of productOfferings for a given device ( we have here for each productOffering ProductSpecificationCharacteristicValueUse and productOfferingPrice. That is all we need for the PDP page) . In this case we have only one HTTP request call.
------------------------------
Jimmy Kongoli
Epam Systems, Inc.
Original Message:
Sent: Oct 26, 2021 03:31
From: Jonathan Goldberg
Subject: TMF620: ProductSpecification API for Devices
Hi Jimmy
I'm not sure that this approach is the best way to go (having the SKU as the lead characteristic, and embedding the color and memory within that). Given the tools we currently have in the TMF620 catalog model, I would suggest the following:
- Define a single product specification for iPhone 11
- Define separate characteristic specifications for memory and color, set them both to configurable false, and given them the list of characteristic spec values
- Define a characteristic specification for SKU, and give it a list of characteristic spec values (the allowed SKUs)
- Define a product offering for each SKU, with an appropriate product offering price (the 128gb will be more expensive than 64gb, and if there was a premium color - gold - that would also be more expensive)
- Now here's the tricky bit. In the product offering, use the ProductSpecificationCharacteristicValueUse to restrict the valid value list in each of your characteristic specs (color, memory, SKU) to a single value, so that the color and memory will match the SKU
In this way, you have captured the technical definition of an iPhone 11 in the product specification (allowable memories and colors), and dealt with the commercial aspects in the product offerings (the price, and the available combinations of memory/color - depending on your supply chain or business the available combinations might change in the future).
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: Oct 12, 2021 15:46
From: Jimmy Kongoli
Subject: TMF620: ProductSpecification API for Devices
What are the recommendation to model the following case:
We have a iPhone 11 which is defined as :
- iPhone 11 comes in two storage sizes: 128GB and 64GB
- iPhone 11 comes in three colors : Black, White and Purple
There are four SKUs available for this phone
sku
|
color
|
memory
|
sku_1
|
Black
|
128GB
|
sku_2
|
Purple
|
64GB
|
sku_3
|
Black
|
64GB
|
sku_4
|
White
|
64GB
|
Getting and listing all Color and Memory values at productSpecification.productSpecCharacteristic[*]. productSpecCharacteristicValue[*] is not usable to us as not all the color – memory combinations are valid.
Design Patter described at IG1261 Product Catalog Commercial Modeling Patterns v1.0.0 | TM Forum section 3.5.7 is relevant to our case. However, providing the Searchable characteristic: [ color + memory] as ProductSpecificationCharacteristic is not clear.
One option we are thinking is the following:
"productSpecCharacteristic": [
{
"configurable": false,
"extensible": false,
"name": "SKU",
"minCardinality": 1,
"maxCardinality": 1,
"productSpecCharacteristicValue": [
{
"valueType": "list",
"value": [
{
"name": "productOfferingRef",
"type": "object",
"value": {
"href": "/productOffering/sku_1",
"name": "iPhone 11 balck 128GB",
"id": "sku_1"
}
},
{
"name": "color",
"type": "object",
"value": {
"key": "black",
"name": "Black",
"id": "black"
}
},
{
"name": "memory",
"type": "object",
"value": {
"key": "128gb",
"name": "128GB",
"id": "128gb"
}
}
],
"validFor": {
"endDateTime": "",
"startDateTime": "2019-09-11T09:30Z"
}
},
…
]
}
}
------------------------------
Jimmy Kongoli
Epam Systems, Inc.
------------------------------