Product Offering Use Cases

I want to
Request Type
Example URL
Retrieve and display details of a requested product offering.GET by ID{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering/{ID}

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://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering/{ID}?fields=name,description,isBundle
List all the product offerings present in the system.GET List{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering
List all the product offerings present in the system
based on the provided field values.
GET List with Fields{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering?fields=name,description,isBundle
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://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
display results from the page specified by an offset.
GET List by limit and offset{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering?offset=1&limit=2
Create a product offering.POST{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering
Update a product offering.PATCH{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering/{ID}
Delete a product offering.DELETE{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/productOffering/{ID}

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:

ParameterTypeDescription
handleOverridesBooleanControls override resolution behavior. When true, returns only contextually relevant overrides; when false or omitted, returns all configurations including base and overridden values.
parentContextStringThe unique product ID of the root or bundle product providing context for override resolution.
hierarchyStringThe 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 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

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