Catalog Use Cases

I want to Request Type Example URL
Retrieve and display details of a requested catalog GET by ID {https<nolink>://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/catalog/{ID}<br><br>NOTE:<br>For invalid catalog ID, you will receive HTTP 404 error.
Based on the provided field values, retrieve and display details of a particular catalog ID. GET by ID and Fields {https<nolink>://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/catalog/{ID}?fields=name,id<br>
List all the catalogs present in the system. GET List {https<nolink>://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/catalog
List all the catalogs present in the system based on the provided field values. GET List with Fields {https<nolink>://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/catalog?name=Cloud Services T
List all the catalogs present in the inventory based on the provided field values and filter applied. GET List by Fields and Filtering {https<nolink>://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/catalog?fields=isRoot,name,id&name=Catalog+Wholesale+Business
Limit the number of catalogs to a maximum of specified limit and<br>display results from the page specified by an offset. GET List by limit and offset {https<nolink>://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/catalog?lisRoot=true&fields=lifecycleStatus,name&limit=3&offset=2<br>
Create a catalog POST {https<nolink>://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/catalog<br>
Update a catalog PATCH {https<nolink>://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/catalog/{ID}
Delete a catalog DELETE {https<nolink>://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/catalog/{ID}<br>

GET by ID

Consider you want to retrieve details of a catalog from the inventory. For example, catalog ID = 7cc8a363-51ab-2413-7214-6bf24f90e856.

Sample URL

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/7cc8a363-51ab-2413-7214-6bf24f90e856

Sample Response

200 OK
{
  "PageInfo": "Page 1 of 1",
  "PageSize": 50,
  "Result": {
    "@referredType": "vlocity_cmt__Catalog__c",
    "description": "A category to hold all available cloud service offers",
    "id": "7cc8a363-51ab-2413-7214-6bf24f90e856",
    "isRoot": false,
    "name": "Cloud Services T",
    "lifecycleStatus": true,
    "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/a0e5e000003biUxAAI",
    "relatedParty": [
      {
        "href": "/services/data/v48.0/sobjects/Account/0015e00000qxgtpAAA",
        "@referredType": "RecordType",
        "role": "Consumer",
        "name": "demo user15",
        "id": "123",
        "@type": "RelatedParty"
      }
    ],
    "category": [
      {
        "href": "/services/data/v48.0/sobjects/vlocity_cmt__CatalogRelationship__c/a2R5e000000JxXqEAK",
        "@referredType": "vlocity_cmt__Catalog__c",
        "id": "03ed94db-2d33-af8e-f785-deddd0d6657d",
        "name": "Cloud Storage",
        "@type": "CategoryRef"
      }
    ],
    "validFor": {
      "startDateTime": "2020-08-24T00:00:00.000+0000",
      "endDateTime": "2024-03-25T00:00:00.000+0000"
    },
    "@type": "Catalog"
  }
}


GET by ID and Fields

Consider you want to retrieve details of the catalog ID = 7cc8a363-51ab-2413-7214-6bf24f90e856 and get the name and id details in the output.

Sample URL

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/7cc8a363-51ab-2413-7214-6bf24f90e856?fields=name,id

Sample Response

200 OK
{
  "PageInfo": "Page 1 of 1",
  "PageSize": 50,
  "Result": {
    "@referredType": "vlocity_cmt__Catalog__c",
    "id": "7cc8a363-51ab-2413-7214-6bf24f90e856",
    "name": "Cloud Services T",
    "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/a0e5e000003biUxAAI",
    "@type": "Catalog"
  }
}

GET List

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

Sample URL

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

Sample Response

200 OK
{
  "PageInfo": "Page 1 of 5",
  "PageSize": 50,
  "Result": [
    {
      "@referredType": "vlocity_cmt__Catalog__c",
      "description": "A category to hold all available cloud service offers",
      "id": "35b35cc6-0ac4-5d8d-1b53-c2cee91a8a52",
      "isRoot": true,
      "name": "aaaaaa",
      "lifecycleStatus": true,
      "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/a0e5e000003bsNxAAI",
      "validFor": {
        "startDateTime": "2020-08-24T00:00:00.000+0000",
        "endDateTime": "2024-03-25T00:00:00.000+0000"
      },
      "@type": "Catalog"
    },
    {
      "@referredType": "vlocity_cmt__Catalog__c",
      "description": "ADDON Root catalog",
      "id": "be03bc15-8f67-c5a4-379e-32f4acf3cb96",
      "isRoot": true,
      "name": "Add On",
      "lifecycleStatus": true,
      "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/a0e5e000003bKGIAA2",
      "category": [
        {
          "href": "/services/data/v48.0/sobjects/vlocity_cmt__CatalogRelationship__c/a2R5e000000JxGiEAK",
          "@referredType": "vlocity_cmt__Catalog__c",
          "id": "15847f92-c3df-162a-50a1-3917a1dcf333",
          "name": "Prepaid Add On",
          "@type": "CategoryRef"
        }
      ],
      "@type": "Catalog"
    },
    {
      "@referredType": "vlocity_cmt__Catalog__c",
      "description": "A category to hold all available cloud service offers",
      "id": "28a85d60-4e2d-9e27-80e3-73a3b04f6422",
      "isRoot": false,
      "name": "B12345",
      "lifecycleStatus": true,
      "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/a0e5e000003boN8AAI",
      "relatedParty": [
        {
          "href": "/services/data/v48.0/sobjects/Account/0015e00000qxgtpAAA",
          "@referredType": "RecordType",
          "role": "Consumer",
          "name": "demo user15",
          "id": "123",
          "@type": "RelatedParty"
        }
      ],
      "validFor": {
        "startDateTime": "2020-08-24T00:00:00.000+0000",
        "endDateTime": "2024-03-25T00:00:00.000+0000"
      },
      "@type": "Catalog"
    }
  ]
}

GET List with Fields

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

Sample URL

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog?name=Cloud Services T

Sample Response

200 OK
  {
  "PageInfo": "Page 1 of 1",
  "PageSize": 50,
  "Result": {
    "@referredType": "vlocity_cmt__Catalog__c",
    "description": "A category to hold all available cloud service offers",
    "id": "7cc8a363-51ab-2413-7214-6bf24f90e856",
    "isRoot": false,
    "name": "Cloud Services T",
    "lifecycleStatus": true,
    "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/a0e5e000003biUxAAI",
    "relatedParty": [
      {
        "href": "/services/data/v48.0/sobjects/Account/0015e00000qxgtpAAA",
        "@referredType": "RecordType",
        "role": "Consumer",
        "name": "demo user15",
        "id": "123",
        "@type": "RelatedParty"
      }
    ],
    "category": [
      {
        "href": "/services/data/v48.0/sobjects/vlocity_cmt__CatalogRelationship__c/a2R5e000000JxXqEAK",
        "@referredType": "vlocity_cmt__Catalog__c",
        "id": "03ed94db-2d33-af8e-f785-deddd0d6657d",
        "name": "Cloud Storage",
        "@type": "CategoryRef"
      }
    ],
    "validFor": {
      "startDateTime": "2020-08-24T00:00:00.000+0000",
      "endDateTime": "2024-03-25T00:00:00.000+0000"
    },
    "@type": "Catalog"
  }
}

GET List by Fields and Filtering

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

Sample URL

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog?fields=isRoot,name,id&name=Catalog+Wholesale+Business

Sample Response

200 OK

{
    "PageInfo": "Page 1",
    "PageSize": 50,
    "result": {
        "isBundle": "Simple",
        "isCustomerVisible": true,
        "productOffering": {
            "id": "01tDp000000Ogk0IAC"
        },
        "description": "New DESC",
        "id": "99394f76-7187-c384-b50a-de213527ecd9",
        "name": "Testing Asset",
        "productSerialNumber": "123",
        "status": "Ready for review",
        "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/product/99394f76-7187-c384-b50a-de213527ecd9"
    }
}

GET List by limit and offset

Consider you want to retrieve perform the following.

  • Limit the number of catalogs 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/vlocity_cmt/tmforum/productopenapi/v1/catalog?isRoot=true&fields=lifecycleStatus,name&limit=3&offset=2

Sample Response

200 OK

{
"PageInfo": "Page 3 of 39",
"PageSize": 2,
"Result": [
{
"@referredType": "vlocity_cmt__Catalog__c",
"name": "category demo",
"lifecycleStatus": true,
"@type": "Catalog"
},
{
"@referredType": "vlocity_cmt__Catalog__c",
"name": "category name",
"lifecycleStatus": true,
"@type": "Catalog"
}
]
}

POST

Consider you want to create a new catalog.

Sample URL

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

Sample Request

{
    "name": "Cloud Services retest",
    "description": "A category to hold all available cloud service offers",
    "validFor": {
        "startDateTime": "2020-08-24T00:00:00Z",
        "endDateTime": "2024-03-25T00:00:00Z"
    },
    "lifecycleStatus": "Active",
    "@type": "Catalog",
    "relatedParty": [
           {
            "id": "123",
            "name": "demo user15",
            "role": "Consumer",
            "@referredType": "Account",
            "@type": "RelatedParty"
            }
          ]
}

Sample Response

{
  "validFor": {
    "endDateTime": "2024-03-25T00:00:00.000+0000",
    "startDateTime": "2020-08-24T00:00:00.000+0000"
  },
  "relatedParty": [
    {
      "id": "123",
      "name": "demo user15",
      "role": "Consumer",
      "@referredType": "RecordType"
    }
  ],
  "lifecycleStatus": true,
  "isRoot": false,
  "description": "A category to hold all available cloud service offers",
  "name": "Cloud Services retest",
  "id": "d5dd5c73-588e-857d-732b-d01e3090577a",
  "@referredType": "vlocity_cmt__Catalog__c",
  "statusCode": "201"
}

PATCH

Consider for the catalog ID: f24eb59b-a466-af2a-4db3-67c87430e8a6, you want to update sub-resource: relatedParty.

Sample URL

https://vlocity-1f5-dev-ed.develop.my.salesforce.com/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/f24eb59b-a466-af2a-4db3-67c87430e8a6

Sample Request

{
    "relatedParty": [
        {
            "href": "/services/data/v48.0/sobjects/Account/0015e00000uMie0AAC",
            "@referredType": "RecordType",
            "role": "MobilePhoneAccount",
            "name": "AccTest1",
            "id": "3424",
            "@type": "RelatedParty"
        }
    ]
}

Sample Response

{
    "@type":"Catalog",
    "validFor":{
        "endDateTime":"2024-04-25T00:00:00.000+0000",
        "startDateTime":"2021-08-24T00:00:00.000+0000"
    },
    "category":[
        {
            "@type":"CategoryRef",
            "name":"CloudStorage updated 1",
            "id":"03ed94db-2d33-af8e-f785-deddd0d6657d",
            "@referredType":"vlocity_cmt__Catalog__c",
            "href":"/services/data/v48.0/sobjects/vlocity_cmt__CatalogRelationship__c/a2R5e000001M2WbEAK"
        }
     ],
    "relatedParty":[
        {
        "@type":"RelatedParty",
        "id":"3424",
        "name":"AccTest1",
        "role":"MobilePhoneAccount",
        "@referredType":"RecordType",
        "href":"/services/data/v48.0/sobjects/Account/0015e00000uMie0AAC"
        }
    ],
    "href":"/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/a0e5e000003boMAAAY",
    "lifecycleStatus":false,
    "name":"Update from workbeanch 1",
    "isRoot":false,
    "id":"f24eb59b-a466-af2a-4db3-67c87430e8a6",
    "description":"Update On from workbeanch 1",
    "@referredType":"vlocity_cmt__Catalog__c"
}

DELETE

Consider you want to delete a catalog ID: 3830.

Sample URL

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

Sample Response

204 No content