Overview

  • The TMF637 API provides a standardized client interface to Inventory Management Systems to retrieve product inventory information.
  • Following block diagram provides a high-level overview of how the various components are involved in handling TMF 637 API operation (GET).

TMF637 Components

Currently, you can perform the following operation product resource using TMF637 API:

  • Retrieval of a product or a collection of products depending on filter criteria

In general, we can consider the various use cases listed based on the operation you want to perform.

It is assumed that you have completed the following.

Following block diagram provides a sequence of operations involved. Sequence

NOTE:

  • For mandatory fields and resource mappings, refer TMF637 Resource Mappings
  • For more information on supported Integration Procedures, Data Raptors, Apex Interfaces, Custom Metadata, refer Extend TMF637 API.
I want to
Request Type
Example URL
Retrieve and display details of a requested product entityGET by ID{https://yourInstance.salesforce.com}/services/apexrest/{namespace}/tmforum/productopenapi/v1/product/{ID}

NOTE:
For invalid product ID, you will receive HTTP 404 error.
Based on the provided field values, retrieve and display details of a particular product ID. For example, name of the product, and description.GET by ID and Fields
{https://yourInstance.salesforce.com}/services/apexrest/{namespace}/tmforum/productopenapi/v1/product/{ID}?fields=name,description
List all the products present in the inventory.GET List
{https://yourInstance.salesforce.com}/services/apexrest/{namespace}/tmforum/productopenapi/v1/product
List all the product present in the inventory based on the provided field values.GET List with Fields
{https://yourInstance.salesforce.com}/services/apexrest/{namespace}/tmforum/productopenapi/v1/product?fields=name,isBundle,isCustomerVisible,orderDate,description,status,productSerialNumber,startDate
List all the products present in the inventory based on the provided field values and filter applied.GET List by Fields and Filtering
{https://yourInstance.salesforce.com}/services/apexrest/{namespace}/tmforum/productopenapi/v1/product?status=Ready for review&name=Testing Asset&productSerialNumber=123&fields=name,isBundle,isCustomerVisible,orderDate,description,status,productSerialNumber,startDate
Limit the number of products to a maximum of specified limit and display results from the page specified by an offset.GET List by limit and offset
{https://yourInstance.salesforce.com}/services/apexrest/{namespace}/tmforum/productopenapi/v1/product?limit=1&offset=3

Consider you want to retrieve details of a product from the inventory. For example, product ID = 1b55a381-1782-56d6-a90a-2030798d6e4b

NOTE:

  • vlocity__cmtAssetReferenceId__c is used as unique identifier.
  • Sample response is considering V2 model is disabled. If enabled, the valueType in productCharacteristic will not appear.
  • The field terminationDate is supported only if the LifecycleManagement license is present. Specifically, the Addon License AssetLifecycleManagementAddon should be present.
  • The Product Characteristics are mapped to Asset.AttributeSelectedValues__c if V2 attributes are enabled.

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/product/1b55a381-1782-56d6-a90a-2030798d6e4b

Consider you want to retrieve details of the product ID = 1b55a381-1782-56d6-a90a-2030798d6e4b and get the name and description details in the output.

NOTE:

  • Id, href, productOffering details are always returned, if present.

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/product/1b55a381-1782-56d6-a90a-2030798d6e4b?fields=name,description

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

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

NOTE:

  • Sample response assumes there are 3 products in the inventory, displays all the sub-resources, if present.
  • Sample response is considering V2 model is disabled. If enabled, the valueType in productCharacteristic will not appear.

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

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/product?fields=name,isBundle,isCustomerVisible,orderDate,description,status,productSerialNumber,startDate

NOTE:

  • The requested fields will be part of output if they have value.
  • The sample output is assuming the total products in the system is 3.
  • Sample response is considering V2 model is disabled. If enabled, the valueType in productCharacteristic will not appear.
  • Id, href, productOffering are always returned, if present.
  • Sub-resources are not supported as field selection.

Consider you want to retrieve all the products by specified filter.

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/product?status=Ready for review&name=Testing Asset&productSerialNumber=123&fields=name,isBundle,isCustomerVisible,orderDate,description,status,productSerialNumber,startDate

NOTE:

  • Filtering is enabled for: status, name, productSerialNumber, description
  • Recommendation for filtering for description.
    • Use full word search.
    • Wildcard are only for suffix. For example, to search ‘Sample’, use ?description=Sam or ?description=Sampl
  • Id, href, productOffering are always returned, if present.

Consider you want to retrieve perform the following.

  • Limit the number of products 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/vlocity_cmt/tmforum/productopenapi/v1/product?limit=1&offset=3

NOTE:

  • Sample response is considering V2 model is disabled. If enabled, the valueType in productCharacteristic will not appear.
  • If the total products are 3, the above pagination query - **limit=1&offset=3 **will start display from page 3 and will have 1 record.