Catalog Use Cases

I want toRequest TypeExample URL
Retrieve and display details of a requested catalogGET by ID{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/catalog/{ID}

NOTE:
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://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/catalog/{ID}?fields=name,id
List all the catalogs present in the system.GET List{https://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://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://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
display results from the page specified by an offset.
GET List by limit and offset{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/catalog?lisRoot=true&fields=lifecycleStatus,name&limit=3&offset=2
Create a catalogPOST{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/catalog
Update a catalogPATCH{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/catalog/{ID}
Delete a catalogDELETE{https://MyDomainLoginUrl}/services/apexrest/{namespace}/tmforum/productopenapi/v1/catalog/{ID}

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 

1200 OK
2{
3  "PageInfo": "Page 1 of 1",
4  "PageSize": 50,
5  "Result": {
6    "@referredType": "vlocity_cmt__Catalog__c",
7    "description": "A category to hold all available cloud service offers",
8    "id": "7cc8a363-51ab-2413-7214-6bf24f90e856",
9    "isRoot": false,
10    "name": "Cloud Services T",
11    "lifecycleStatus": true,
12    "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/a0e5e000003biUxAAI",
13    "relatedParty": [
14      {
15        "href": "/services/data/v48.0/sobjects/Account/0015e00000qxgtpAAA",
16        "@referredType": "RecordType",
17        "role": "Consumer",
18        "name": "demo user15",
19        "id": "123",
20        "@type": "RelatedParty"
21      }
22    ],
23    "category": [
24      {
25        "href": "/services/data/v48.0/sobjects/vlocity_cmt__CatalogRelationship__c/a2R5e000000JxXqEAK",
26        "@referredType": "vlocity_cmt__Catalog__c",
27        "id": "03ed94db-2d33-af8e-f785-deddd0d6657d",
28        "name": "Cloud Storage",
29        "@type": "CategoryRef"
30      }
31    ],
32    "validFor": {
33      "startDateTime": "2020-08-24T00:00:00.000+0000",
34      "endDateTime": "2024-03-25T00:00:00.000+0000"
35    },
36    "@type": "Catalog"
37  }
38}

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 

1200 OK
2{
3  "PageInfo": "Page 1 of 1",
4  "PageSize": 50,
5  "Result": {
6    "@referredType": "vlocity_cmt__Catalog__c",
7    "id": "7cc8a363-51ab-2413-7214-6bf24f90e856",
8    "name": "Cloud Services T",
9    "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/a0e5e000003biUxAAI",
10    "@type": "Catalog"
11  }
12}

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 

1200 OK
2{
3  "PageInfo": "Page 1 of 5",
4  "PageSize": 50,
5  "Result": [
6    {
7      "@referredType": "vlocity_cmt__Catalog__c",
8      "description": "A category to hold all available cloud service offers",
9      "id": "35b35cc6-0ac4-5d8d-1b53-c2cee91a8a52",
10      "isRoot": true,
11      "name": "aaaaaa",
12      "lifecycleStatus": true,
13      "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/a0e5e000003bsNxAAI",
14      "validFor": {
15        "startDateTime": "2020-08-24T00:00:00.000+0000",
16        "endDateTime": "2024-03-25T00:00:00.000+0000"
17      },
18      "@type": "Catalog"
19    },
20    {
21      "@referredType": "vlocity_cmt__Catalog__c",
22      "description": "ADDON Root catalog",
23      "id": "be03bc15-8f67-c5a4-379e-32f4acf3cb96",
24      "isRoot": true,
25      "name": "Add On",
26      "lifecycleStatus": true,
27      "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/a0e5e000003bKGIAA2",
28      "category": [
29        {
30          "href": "/services/data/v48.0/sobjects/vlocity_cmt__CatalogRelationship__c/a2R5e000000JxGiEAK",
31          "@referredType": "vlocity_cmt__Catalog__c",
32          "id": "15847f92-c3df-162a-50a1-3917a1dcf333",
33          "name": "Prepaid Add On",
34          "@type": "CategoryRef"
35        }
36      ],
37      "@type": "Catalog"
38    },
39    {
40      "@referredType": "vlocity_cmt__Catalog__c",
41      "description": "A category to hold all available cloud service offers",
42      "id": "28a85d60-4e2d-9e27-80e3-73a3b04f6422",
43      "isRoot": false,
44      "name": "B12345",
45      "lifecycleStatus": true,
46      "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/a0e5e000003boN8AAI",
47      "relatedParty": [
48        {
49          "href": "/services/data/v48.0/sobjects/Account/0015e00000qxgtpAAA",
50          "@referredType": "RecordType",
51          "role": "Consumer",
52          "name": "demo user15",
53          "id": "123",
54          "@type": "RelatedParty"
55        }
56      ],
57      "validFor": {
58        "startDateTime": "2020-08-24T00:00:00.000+0000",
59        "endDateTime": "2024-03-25T00:00:00.000+0000"
60      },
61      "@type": "Catalog"
62    }
63  ]
64}

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 

1200 OK
2  {
3  "PageInfo": "Page 1 of 1",
4  "PageSize": 50,
5  "Result": {
6    "@referredType": "vlocity_cmt__Catalog__c",
7    "description": "A category to hold all available cloud service offers",
8    "id": "7cc8a363-51ab-2413-7214-6bf24f90e856",
9    "isRoot": false,
10    "name": "Cloud Services T",
11    "lifecycleStatus": true,
12    "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/a0e5e000003biUxAAI",
13    "relatedParty": [
14      {
15        "href": "/services/data/v48.0/sobjects/Account/0015e00000qxgtpAAA",
16        "@referredType": "RecordType",
17        "role": "Consumer",
18        "name": "demo user15",
19        "id": "123",
20        "@type": "RelatedParty"
21      }
22    ],
23    "category": [
24      {
25        "href": "/services/data/v48.0/sobjects/vlocity_cmt__CatalogRelationship__c/a2R5e000000JxXqEAK",
26        "@referredType": "vlocity_cmt__Catalog__c",
27        "id": "03ed94db-2d33-af8e-f785-deddd0d6657d",
28        "name": "Cloud Storage",
29        "@type": "CategoryRef"
30      }
31    ],
32    "validFor": {
33      "startDateTime": "2020-08-24T00:00:00.000+0000",
34      "endDateTime": "2024-03-25T00:00:00.000+0000"
35    },
36    "@type": "Catalog"
37  }
38}

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 

1200 OK
2
3{
4    "PageInfo": "Page 1",
5    "PageSize": 50,
6    "result": {
7        "isBundle": "Simple",
8        "isCustomerVisible": true,
9        "productOffering": {
10            "id": "01tDp000000Ogk0IAC"
11        },
12        "description": "New DESC",
13        "id": "99394f76-7187-c384-b50a-de213527ecd9",
14        "name": "Testing Asset",
15        "productSerialNumber": "123",
16        "status": "Ready for review",
17        "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/product/99394f76-7187-c384-b50a-de213527ecd9"
18    }
19}

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 

1200 OK
2
3{
4"PageInfo": "Page 3 of 39",
5"PageSize": 2,
6"Result": [
7{
8"@referredType": "vlocity_cmt__Catalog__c",
9"name": "category demo",
10"lifecycleStatus": true,
11"@type": "Catalog"
12},
13{
14"@referredType": "vlocity_cmt__Catalog__c",
15"name": "category name",
16"lifecycleStatus": true,
17"@type": "Catalog"
18}
19]
20}

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 

1{
2    "name": "Cloud Services retest",
3    "description": "A category to hold all available cloud service offers",
4    "validFor": {
5        "startDateTime": "2020-08-24T00:00:00Z",
6        "endDateTime": "2024-03-25T00:00:00Z"
7    },
8    "lifecycleStatus": "Active",
9    "@type": "Catalog",
10    "relatedParty": [
11           {
12            "id": "123",
13            "name": "demo user15",
14            "role": "Consumer",
15            "@referredType": "Account",
16            "@type": "RelatedParty"
17            }
18          ]
19}

Sample Response 

1{
2  "validFor": {
3    "endDateTime": "2024-03-25T00:00:00.000+0000",
4    "startDateTime": "2020-08-24T00:00:00.000+0000"
5  },
6  "relatedParty": [
7    {
8      "id": "123",
9      "name": "demo user15",
10      "role": "Consumer",
11      "@referredType": "RecordType"
12    }
13  ],
14  "lifecycleStatus": true,
15  "isRoot": false,
16  "description": "A category to hold all available cloud service offers",
17  "name": "Cloud Services retest",
18  "id": "d5dd5c73-588e-857d-732b-d01e3090577a",
19  "@referredType": "vlocity_cmt__Catalog__c",
20  "statusCode": "201"
21}

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 

1{
2    "relatedParty": [
3        {
4            "href": "/services/data/v48.0/sobjects/Account/0015e00000uMie0AAC",
5            "@referredType": "RecordType",
6            "role": "MobilePhoneAccount",
7            "name": "AccTest1",
8            "id": "3424",
9            "@type": "RelatedParty"
10        }
11    ]
12}

Sample Response 

1{
2    "@type":"Catalog",
3    "validFor":{
4        "endDateTime":"2024-04-25T00:00:00.000+0000",
5        "startDateTime":"2021-08-24T00:00:00.000+0000"
6    },
7    "category":[
8        {
9            "@type":"CategoryRef",
10            "name":"CloudStorage updated 1",
11            "id":"03ed94db-2d33-af8e-f785-deddd0d6657d",
12            "@referredType":"vlocity_cmt__Catalog__c",
13            "href":"/services/data/v48.0/sobjects/vlocity_cmt__CatalogRelationship__c/a2R5e000001M2WbEAK"
14        }
15     ],
16    "relatedParty":[
17        {
18        "@type":"RelatedParty",
19        "id":"3424",
20        "name":"AccTest1",
21        "role":"MobilePhoneAccount",
22        "@referredType":"RecordType",
23        "href":"/services/data/v48.0/sobjects/Account/0015e00000uMie0AAC"
24        }
25    ],
26    "href":"/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/a0e5e000003boMAAAY",
27    "lifecycleStatus":false,
28    "name":"Update from workbeanch 1",
29    "isRoot":false,
30    "id":"f24eb59b-a466-af2a-4db3-67c87430e8a6",
31    "description":"Update On from workbeanch 1",
32    "@referredType":"vlocity_cmt__Catalog__c"
33}

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 

1204 No content