Product Specification Use Cases

I want to
Request Type
Example URL
Retrieve and display details of a requested product specification.GET by ID{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/productSpecification/{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 specification ID.GET by ID and Fields{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/productSpecification/{ID}?fields=name,description,isBundle
List all the product specifications present in the system.GET List{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/productSpecification
List all the product specifications present in the system
based on the provided field values.
GET List with Fields{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/productSpecification?fields=name,description,isBundle
List all the product specifications 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/productSpecification?fields=name,description,isBundle&isBundle=false
Limit the number of product specification 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/productSpecification?limit=2&offset=2
Create a product specification.POST{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/productSpecification
Update a product specification.PATCH{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/productSpecification/{ID}
Delete a product specification.DELETE{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/productSpecification/{ID}

Consider you want to retrieve details of a product specification 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 specification ID = f58d3bce-e229-74c5-6a4c-40aa68714c53 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/productSpecification/f58d3bce-e229-74c5-6a4c-40aa68714c53?fields=name,description,isBundle

Consider you want to retrieve details of all the product specifications in the inventory.

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/{namespace}/tmforum/productopenapi/v1/productSpecification

Consider you want to retrieve all the product specifications by applying the requested fields.

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/{namespace}/tmforum/productopenapi/v1/productSpecification?fields=name,description,isBundle

Consider you want to retrieve all the product specifications by a specified filter.

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/{namespace}/tmforum/productopenapi/v1/productSpecification?fields=name,description,isBundle&isBundle=false

Consider you want to retrieve perform the following.

  • Limit the number of product specifications 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/productSpecification?offset=1&limit=2

Consider you want to create a new product specification.

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productSpecification

Consider for the product offer ID = f58d3bce-e229-74c5-6a4c-40aa68714c53 you want to update first level attributes and sub-resources.

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/productSpecification/3830