Product Offering Use Cases
| I want to | Request Type | Example URL |
|---|---|---|
| Retrieve and display details of a requested product offering. | GET by ID | {https NOTE: 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 | {https |
| List all the product offerings present in the system. | GET List | {https |
| List all the product offerings present in the system based on the provided field values. | GET List with Fields | {https |
| List all the product offerings present in the inventory based on the provided field values and filter applied. | GET List by Fields and Filtering | {https |
| Limit the number of product offering to a maximum of specified limit and display results from the page specified by an offset. | GET List by limit and offset | {https |
| Create a product offering. | POST | {https |
| Update a product offering. | PATCH | {https |
| Delete a product offering. | DELETE | {https |
Consider you want to retrieve details of a product offering from the inventory.
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
- Fail to retrieve override values applied at grandparent or root bundle levels
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)
Returns all attributes (base + all overridden values from all contexts)
Example 2: Retrieve product with base attributes only
Returns only the base product attributes without any overrides
Example 3: Retrieve product in specific bundle context
Returns the product with attributes and configurations as overridden within the specified parent bundle
Example 4: Retrieve product with explicit hierarchy path
Returns the product resolved through the specified hierarchy path, useful when a product appears multiple times in the bundle structure
- When
handleOverridesis set totrue, the API retrieves all overridden price list entries regardless of hierarchy position within the bundle - Accurate override resolution requires passing the correct
parentContextorhierarchyparameters - Without context parameters, the API defaults to standalone product resolution
- Context-based resolution applies to
GEToperations on theproductOfferingresource
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.
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
Consider you want to retrieve details of all the product offerings in the inventory.
https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering
Consider you want to retrieve all the product offerings by applying the requested fields.
https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering?fields=name,description,isBundle
Consider you want to retrieve all the product offerings by a specified filter.
https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering?lifecycleStatus=Active&fields=lifecycleStatus,name,description
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
https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering?offset=1&limit=2
Consider you want to create a new product offering.
https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering
Consider for the product offer ID = 1f00a691-650f-ce61-d3f3-53b6f988cb9c you want to update first level attributes and sub-resources.
https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering/1f00a691-650f-ce61-d3f3-53b6f988cb9c
Consider you want to delete a product offering ID: 3830.
https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/3830