---
schema_version: "1"
id: 86718272849a5e4037bd939282484e514375b45c71c643ab8c9e2c2c62101415
title: Product Offering Use Cases
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/industries-integrations/comms/guides/TMF620/product-offering-use-cases.md
canonical_url: https://developer.salesforce.com/docs/industries/communications/guide/product-offering-use-cases.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 22a74101607ce4211c20ff5895d86d6097dcbf4cecdac3930587164abbe3e545
products:
  - Communications Cloud TM Forum API
  - Industries Integrations
---
# Product Offering Use Cases

| I want to <br> <div style="width:120px"></div>                                                                                    | Request Type <br> <div style="width:290px"></div>                     | Example URL <br> <div style="width:290px"></div>                                                                                                                                                |
| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Retrieve and display details of a requested product offering.                                                                     | [GET by ID](#get-by-id)                                               | _{https<nolink>://MyDomainLoginUrl}_/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering/{ID}<br><br>**NOTE:**<br>For invalid category ID, you will receive HTTP 404 error. |
| Based on the provided field values, retrieve and display details of a particular product offering ID.                             | [GET by ID and Fields](#get-by-id-and-fields)                         | _{https<nolink>://MyDomainLoginUrl}_/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering/{ID}?fields=name,description,isBundle                                              |
| List all the product offerings present in the system.                                                                             | [GET List](#get-list)                                                 | _{https<nolink>://MyDomainLoginUrl}_/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering                                                                                    |
| List all the product offerings present in the system<br>based on the provided field values.                                       | [GET List with Fields](#get-list-with-fields)                         | _{https<nolink>://MyDomainLoginUrl}_/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering?fields=name,description,isBundle<br>                                               |
| List all the product offerings present in the inventory based on the provided field values and filter applied.                    | [GET List by Fields and Filtering](#get-list-by-fields-and-filtering) | _{https<nolink>://MyDomainLoginUrl}_/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering?lifecycleStatus=Active&fields=lifecycleStatus,name,description                     |
| Limit the number of product offering to a maximum of specified limit and<br>display results from the page specified by an offset. | [GET List by limit and offset](#get-list-by-limit-and-offset)         | _{https<nolink>://MyDomainLoginUrl}_/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering?offset=1&limit=2<br>                                                               |
| Create a product offering.                                                                                                        | [POST](#post)                                                         | _{https<nolink>://MyDomainLoginUrl}_/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering<br>                                                                                |
| Update a product offering.                                                                                                        | [PATCH](#patch)                                                       | _{https<nolink>://MyDomainLoginUrl}_/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering/{ID}<br>                                                                           |
| Delete a product offering.                                                                                                        | [DELETE](#delete)                                                     | _{https<nolink>://MyDomainLoginUrl}_/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering/{ID}<br>                                                                           |

### GET by ID

Consider you want to retrieve details of a product offering from the inventory.

#### Context-Based Override Resolution

The TMF620 Product Catalog Management API now supports accurate resolution of product configurations, attributes, and pricing within specific bundle contexts through enhanced override handling capabilities.

**What's Changed**

Previously, when retrieving product details from bundled product hierarchies, the API would:

- Return duplicate records for child products that were overridden at multiple hierarchy levels
- Resolve child product attributes using only the immediate parent context

The enhanced API now correctly resolves a single, contextually accurate representation of products and their configurations based on the specified bundle hierarchy.

**Key Capabilities**

The API supports three types of context-specific overrides:

- **Child Item Overrides**: Retrieve bundle-specific child product configurations, including quantity, selling periods, and inclusion/exclusion rules
- **Attribute Overrides**: Access characteristic values (such as data balance, speed, or capacity) that differ within specific bundle contexts
- **Price List Entry Overrides**: Retrieve bundle-specific pricing instead of standard product pricing

**New Query Parameters**

Three new query parameters enable context-based resolution:

| Parameter         | Type    | Description                                                                                                                                                                                 |
| ----------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `handleOverrides` | Boolean | Controls override resolution behavior. When `true`, returns only contextually relevant overrides; when `false` or omitted, returns all configurations including base and overridden values. |
| `parentContext`   | String  | The unique product ID of the root or bundle product providing context for override resolution.                                                                                              |
| `hierarchy`       | String  | The complete path from root product to target product, used when a child product appears multiple times in the bundle structure. Format: `rootProductId<parentProductId<childProductId`     |

**Usage Examples**

Consider a product hierarchy: Triple Play Bundle → Internet Services → Fiber Internet 1Gbps

_Example 1: Retrieve standalone product with all attributes (default behavior)_

```
GET /productOffering/{productId}
```

Returns all attributes (base + all overridden values from all contexts)

_Example 2: Retrieve product with base attributes only_

```
GET /productOffering/{productId}?handleOverrides=true
```

Returns only the base product attributes without any overrides

_Example 3: Retrieve product in specific bundle context_

```
GET /productOffering/{productId}?handleOverrides=true&parentContext={bundleProductId}
```

Returns the product with attributes and configurations as overridden within the specified parent bundle

_Example 4: Retrieve product with explicit hierarchy path_

```
GET /productOffering/{productId}?handleOverrides=true&hierarchy={rootId}<{parentId}<{productId}
```

Returns the product resolved through the specified hierarchy path, useful when a product appears multiple times in the bundle structure

**important:** - When `handleOverrides` is set to `true`, the API retrieves all overridden price list entries regardless of hierarchy position within the bundle
- Accurate override resolution requires passing the correct `parentContext` or `hierarchy` parameters
- Without context parameters, the API defaults to standalone product resolution
- Context-based resolution applies to `GET` operations on the `productOffering` resource

### GET by ID and Fields

Consider you want to retrieve details of the product offer ID = 0b1a75ff-f9ee-2547-2c57-e2f27b860356 and get the `name`, `description` and `isBundle` details in the output.

#### Sample URL

`https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering/0b1a75ff-f9ee-2547-2c57-e2f27b860356?fields=name,description,isBundle`

#### Sample Response

```
200 OK
{
  {
 "PageInfo": "Page 1 of 1",
 "PageSize": 50,
 "result": {
 "description": "Airtel Wifi Router with 1000Mbps Bandwidth",
 "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/0b1a75ff-f9ee-2547-2c57-e2f27b860356",
 "isBundle": false,
 "name": "Airtel Wifi Router"
 }
}
}
```

### GET List

Consider you want to retrieve details of all the product offerings in the inventory.

#### Sample URL

`https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering`

#### Sample Response

```
200 OK
{
"PageInfo": "Page 1 of 1",
"PageSize": 50,
"result": [
{
"description": "Airtel Wifi Router with 1000Mbps Bandwidth",
"href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01tDo000000iAfhIAE",
"id": "0b1a75ff-f9ee-2547-2c57-e2f27b860356",
"isBundle": false,
"isSellable": true,
"lastUpdate": "2023-08-24T06:49:33.000+0000",
"lifecycleStatus": "Active",
"name": "Airtel Wifi Router",
"productNumber": "Airtel_Wifi_Router",
"version": "1.0",
"validFor": {
"endDateTime": "2022-08-25T00:00:00.000+0000",
"startDateTime": "2022-05-23T00:00:00.000+0000"
},
"productOfferingPrice": [
{
"version": "1.0",
"priceType": "One-time",
"name": "a3GDo0000008rT3",
"href": "/services/data/v57.0/sobjects/vlocity_cmt__PriceListEntry__c/a3GDo0000008rT3MAI",
"isBundle": false,
"price": {
"amount": "0"
    }
  }
  ]
  },
{
"description": "Airtel Wifi Router with 1000Mbps Bandwidth",
"href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01tDo000000iAfmIAE",
"id": "829c48a3-6b85-5d49-1f1f-9589b7d42816",
"isBundle": false,
"isSellable": true,
"lastUpdate": "2023-08-24T06:49:46.000+0000",
"lifecycleStatus": "Active",
"name": "Airtel Wifi Router",
"productNumber": "Airtel_Wifi_Router",
"version": "1.0",
"validFor": {
"endDateTime": "2022-08-25T00:00:00.000+0000",
"startDateTime": "2022-05-23T00:00:00.000+0000"
},
"productOfferingPrice": [
{
"version": "1.0",
"priceType": "One-time",
"name": "a3GDo0000008rT8",
"href": "/services/data/v57.0/sobjects/vlocity_cmt__PriceListEntry__c/a3GDo0000008rT8MAI",
"isBundle": false,
"price": {
"amount": "0"
   }
 }
 ]
}
]
}
```

### GET List with Fields

Consider you want to retrieve all the product offerings by applying the requested fields.

#### Sample URL

`https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering?fields=name,description,isBundle`

#### Sample Response

```
200 OK

{
"PageInfo": "Page 1 of 1",
"PageSize": 50,
"result": [
{
"description": "Airtel Wifi Router with 1000Mbps Bandwidth",
"href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01tDo000000iAfhIAE",
"isBundle": false,
"name": "Airtel Wifi Router"
},
{
"description": "Airtel Wifi Router with 1000Mbps Bandwidth",
"href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01tDo000000iAfmIAE",
"isBundle": false,
"name": "Airtel Wifi Router"
},
{
"description": "Airtel Wifi Router with 1000Mbps Bandwidth",
"href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01tDo000000iAfrIAE",
"isBundle": false,
"name": "Airtel Wifi Router"
}
]
}

```

### GET List by Fields and Filtering

Consider you want to retrieve all the product offerings by a specified filter.

#### Sample URL

`https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering?lifecycleStatus=Active&fields=lifecycleStatus,name,description`

#### Sample Response

```
200 OK
{
"PageInfo": "Page 1 of 1",
"PageSize": 50,
"result": [
{
"description": "Airtel Wifi Router with 1000Mbps Bandwidth",
"href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01tDo000000iAfhIAE",
"lifecycleStatus": "Active",
"name": "Airtel Wifi Router"
},
{
"description": "Airtel Wifi Router with 1000Mbps Bandwidth",
"href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01tDo000000iAfmIAE",
"lifecycleStatus": "Active",
"name": "Airtel Wifi Router"
},
{
"description": "Airtel Wifi Router with 1000Mbps Bandwidth",
"href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01tDo000000iAfrIAE",
"lifecycleStatus": "Active",
"name": "Airtel Wifi Router"
}
]
}
```

### GET List by limit and offset

Consider you want to retrieve perform the following.

- Limit the number of product offerings to a maximum of specified limit
- Display results from the page specified by an offset

#### Sample URL

`https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering?offset=1&limit=2`

#### Sample Response

```
200 OK

{
"PageInfo": "Page 1 of 4",
"PageSize": 2,
"result": [
{
"description": "Airtel Wifi Router with 1000Mbps Bandwidth",
"href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01tDo000000iAfhIAE",
"id": "0b1a75ff-f9ee-2547-2c57-e2f27b860356",
"isBundle": false,
"isSellable": true,
"lastUpdate": "2023-08-24T06:49:33.000+0000",
"lifecycleStatus": "Active",
"name": "Airtel Wifi Router",
"productNumber": "Airtel_Wifi_Router",
"version": "1.0",
"validFor": {
"endDateTime": "2022-08-25T00:00:00.000+0000",
"startDateTime": "2022-05-23T00:00:00.000+0000"
},
"productOfferingPrice": [
{
"version": "1.0",
"priceType": "One-time",
"href": "/services/data/v57.0/sobjects/vlocity_cmt__PriceListEntry__c/a3GDo0000008rT3MAI",
"isBundle": false,
"name": "a3GDo0000008rT3",
"price": {
"amount": "0"
}
}
]
},
{
"description": "Airtel Wifi Router with 1000Mbps Bandwidth",
"href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01tDo000000iAfmIAE",
"id": "829c48a3-6b85-5d49-1f1f-9589b7d42816",
"isBundle": false,
"isSellable": true,
"lastUpdate": "2023-08-24T06:49:46.000+0000",
"lifecycleStatus": "Active",
"name": "Airtel Wifi Router",
"productNumber": "Airtel_Wifi_Router",
"version": "1.0",
"validFor": {
"endDateTime": "2022-08-25T00:00:00.000+0000",
"startDateTime": "2022-05-23T00:00:00.000+0000"
},
"productOfferingPrice": [
{
"version": "1.0",
"priceType": "One-time",
"href": "/services/data/v57.0/sobjects/vlocity_cmt__PriceListEntry__c/a3GDo0000008rT8MAI",
"isBundle": false,
"name": "a3GDo0000008rT8",
"price": {
"amount": "0"
}
}
]
}
]
}
```

### POST

Consider you want to create a new product offering.

#### Sample URL

`https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering`

#### Sample Request

```
{
"productOfferingPrice": [
{
"price": {
"amount": "0"
},
"name": "a3GDo00000090sT",
"isBundle": false,
"href": "/services/data/v57.0/sobjects/vlocity_cmt__PriceListEntry__c/a3GDo00000090sTMAQ",
"priceType": "One-time",
"version": "1.0"
}
],
"version": "1.0 ",
"lifecycleStatus": "Active",
"validFor": {
"endDateTime": "2022-08-25T00:00:00Z",
"startDateTime": "2022-05-23T00:00:00Z"
},
"isSellable": "true",
"isBundle": "false",
"productNumber": "Airtel_Wifi_Router",
"name": "Airtel Wifi Router",
"description": "Airtel Wifi Router with 1000Mbps Bandwidth"
}
```

#### Sample Response

```
200 OK
{
 "productOfferingPrice": [
 {
 "price": {
 "amount": "0"
 },
 "name": "a3GDo00000090sT",
 "isBundle": *false*,
 "href": "/services/data/v57.0/sobjects/vlocity_cmt__PriceListEntry__c/a3GDo00000090sYMAQ",
 "priceType": "One-time",
 "version": "1.0"
 }
 ],
 "validFor": {
 "startDateTime": "2022-05-23T00:00:00.000+0000",
 "endDateTime": "2022-08-25T00:00:00.000+0000"
 },
 "version": "1.0",
 "productNumber": "Airtel_Wifi_Router",
 "name": "Airtel Wifi Router",
 "lifecycleStatus": "Active",
 "lastUpdate": "2023-09-27T09:42:58.000+0000",
 "isSellable": *true*,
 "isBundle": *false*,
 "id": "1f00a691-650f-ce61-d3f3-53b6f988cb9c",
 "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01tDo000000iQGbIAM",
 "description": "Airtel Wifi Router with 1000Mbps Bandwidth"
}
```

### PATCH

Consider for the product offer ID = 1f00a691-650f-ce61-d3f3-53b6f988cb9c you want to update first level attributes and sub-resources.

#### Sample URL

`https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering/1f00a691-650f-ce61-d3f3-53b6f988cb9c`

#### Sample Request

```
{
"version": "2.0 ",
"lifecycleStatus": "Active",
"validFor": {
"endDateTime": "2022-08-31T00:00:00Z",
"startDateTime": "2022-05-23T00:00:00Z"
},
"productNumber": "Airtel_Wifi_Router",
"name": "updated - Airtel Wifi Router",
"description": "updated - Airtel Wifi Router with 1000Mbps Bandwidth"
}
```

#### Sample Response

```
{
"productOfferingPrice": [
{
"price": {
"amount": "0"
},
"name": "a3GDo00000090sd",
"isBundle": false,
"href": "/services/data/v57.0/sobjects/vlocity_cmt__PriceListEntry__c/a3GDo00000090sdMAA",
"priceType": "One-time",
"version": "2.0"
}
],
"validFor": {
"startDateTime": "2022-05-23T00:00:00.000+0000",
"endDateTime": "2022-08-31T00:00:00.000+0000"
},
"version": "2.0",
"productNumber": "Airtel_Wifi_Router",
"name": "updated - Airtel Wifi Router",
"lifecycleStatus": "Active",
"lastUpdate": "2023-09-27T09:45:44.000+0000",
"isSellable": true,
"isBundle": false,
"id": "1f00a691-650f-ce61-d3f3-53b6f988cb9c",
"href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01tDo000000iQGbIAM",
"description": "updated - Airtel Wifi Router with 1000Mbps Bandwidth"
}
```

### DELETE

Consider you want to delete a product offering ID: 3830.

#### Sample URL

`https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/3830`

#### Sample Response

```
204 No content
```
