Categories resource (Data API 23.2)
Summary
| Http Method | Resource | Description | 
|---|---|---|
| GET | /catalogs/{catalog_id}/categories | Action to get all the categories with no filtering. | 
| PUT | /catalogs/{catalog_id}/categories/{category_id} | Creates a catalog category using the information provided. | 
| PATCH | /catalogs/{catalog_id}/categories/{category_id} | Updates a catalog category using the information provided. | 
| GET | /catalogs/{catalog_id}/categories/{category_id} | Action to read an existing category within a catalog. By default, the server also returns the first level of sub-categories, but you can specify another level by setting the levels parameter. Please note, using a large value for levels may cause performance issues in case of a large and deep category tree. | 
| DELETE | /catalogs/{catalog_id}/categories/{category_id} | Deletes the category by catalog ID and category ID | 
| PUT | /catalogs/{catalog_id}/categories/{category_id}/products/{product_id} | 
 Creates a category product assignment using the information provided; As the assigned position n is a normalized target position, we'll make sure that the product is assigned to a position so that the order of positions are maintained. For example, product A, B, C at position 1, 2, 3. product D is assigned to position 2, the end result is A, D, B, C with order of positions 1, 2, 3, 4; If there are n existing positioned assignment, assigning a new product to position >= n+1 will end with new assignment with position n+1.  | 
| PATCH | /catalogs/{catalog_id}/categories/{category_id}/products/{product_id} | 
 Updates the category product assignment with the specified information, such as position. As the assigned position n is a normalized target position, we'll make sure that the product is assigned to a position so that the order of positions are maintained. For example, if we have products A, B, C, D at positions 1, 2, 3, 4 and update product A with new position 3, the end result is B, C, A, D with order of positions 1, 2, 3, 4. If we then update product C to no position, the end result is B, A, D, C with order of positions 1, 2, 3, null. If there are n existing positioned assignment, updating product to position >= n will end with new assignment with position such that the order of positions is maintained.  | 
| DELETE | /catalogs/{catalog_id}/categories/{category_id}/products/{product_id} | Removes a category product assignment;
 For example, if we have products A, B, C at positions 1, 2, 7.5 and delete assignment for product B, this will end up the products A, B, C at positions 1, null, 7.5.  | 
| GET | /catalogs/{catalog_id}/categories/{category_id}/products/{product_id} | Retrieves category product assignment information.
Expands that can be applied for the get request
  | 
Get Categories
Action to get all the categories with no filtering.Url
GET https://hostname:port/dw/data/v23_2/catalogs/{catalog_id}/categories?start={Integer}&count={Integer}&select={String}&expand={String}
Formats
json, xml
Authentication
| Name | Description | 
|---|---|
| OAuth | Authentication via OAuth token. | 
Response Document
Path Parameters
| Parameter | Type | Description | Constraints | 
|---|---|---|---|
| catalog_id | String | minLength=1, nullable=false | 
Query Parameters
| Parameter | Type | Description | Constraints | 
|---|---|---|---|
| count | Integer | Optional count for retrieving only a subset of the items (default is 25). | |
| expand | String | ||
| select | String | The property selector. | |
| start | Integer | Optional start index for retrieving the items from a given index (default 0). | 
In case of a failure Fault Document is returned.
Faults
| Status | Type | Arguments | Description | 
|---|---|---|---|
| 404 | CatalogNotFoundException | 
 catalogId (String)  | 
Indicates that the catalog is not provided in the request. | 
Sample
REQUEST:
GET /s/-/dw/data/v23_2/catalogs/main-catalog/categories?expand=vm&select=(**) HTTP/1.1
Host: example.com
Accept: application/json
RESPONSE:
HTTPS/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Cache-Control: max-age=900,must-revalidate
{
  "_v" : "23.2",
  "count" : 1,
  "data" : [
      "_v" : "23.2",
      "_type" : "category",
      "categories" :
      [
         {
            "_type" : "category",
            "creation_date" : "2015-11-30T18:48:37.333Z",
            "description" :
            {
               "default" : "sub-category 1 for main catalog"
            },
            "id" : "sub-category-1",
            "image" : "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201.1%20image",
            "link" : "https://example.com/s/-/dw/data/v23_2/catalogs/main-catalog/categories/sub-category-1",
            "name" :
            {
               "default" : "Sub-category 1"
            },
            "online" : true,
            "parent_category_id" : "root",
            "paths" :
            [
               {
                  "_type" : "path_record",
                  "id" : "sub-category-1",
                  "name" :
                  {
                     "default" : "Sub-category 1"
                  }
               }
            ],
            "position" : 1.0,
            "thumbnail" : "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201.1%20thumbnail"
         }
      ],
      "creation_date" : "2015-11-29T18:48:37.333Z",
      "description" :
      {
         "default" : "root category for main catalog"
      },
      "id" : "root",
      "image" : "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201%20image",
      "link" : "https://example.com/s/-/dw/data/v23_2/catalogs/main-catalog/categories/root",
      "name" :
      {
         "default" : "Root Category"
      },
      "online" : true,
      "paths" :
      [
         {
            "_type" : "path_record",
            "id" : "root",
            "name" :
            {
               "default" : "root"
            }
         }
      ],
      "position" : 1.0,
      "sorting_rules" :
      [
         {
            "_type" : "sorting_rule",
            "creation_date" : "2015-11-19T20:46:37.000Z",
            "description" : "Sorts by price ascending",
            "id" : "price-low-to-high",
            "product_sorting_rule_steps" :
            [
               {
                  "_type" : "sorting_rule_step",
                  "direction" : "Ascending",
                  "is_system" : false,
                  "position" : 0,
                  "text_relevance_included" : false,
                  "type_id" : "price"
               }
            ],
            "site" : "main-site"
         }
      ],
      "thumbnail" : "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201%20thumbnail",
   }],
   "select": "**",
   "start": 0,
   "total": 1
}
# in case of failure:
 
RESPONSE:
HTTP/1.1 404 Not Found
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Content-Type: application/json;charset=UTF-8
Cache-Control: max-age=0,no-cache,no-store,must-revalidate
{
  "_v" : "23.2",
  "fault":{
    "type":"CatalogNotFoundException",
    "message":"No catalog with ID 'main-catalog' was found."
  }
}
Create Category
Creates a catalog category using the information provided.Url
PUT https://hostname:port/dw/data/v23_2/catalogs/{catalog_id}/categories/{category_id}
Formats
json, xml
Authentication
| Name | Description | 
|---|---|
| OAuth | Authentication via OAuth token. | 
Request Document
Response Document
Path Parameters
| Parameter | Type | Description | Constraints | 
|---|---|---|---|
| catalog_id | String | The id of the catalog. | minLength=1 | 
| category_id | String | The id of the category to be created | maxLength=256, minLength=1, nullable=false | 
In case of a failure Fault Document is returned.
Faults
| Status | Type | Arguments | Description | 
|---|---|---|---|
| 400 | CategoryInvalidException | 
 catalogId (String) categoryId (String) field (String)  | 
Indicates that the category in the request is not valid (the argument indicates the field that was invalid). | 
| 400 | IdConflictException | 
 bodyID (String) urlID (String)  | 
Indicates that the category ID in the request URL does not match the category ID in the request body. | 
| 404 | CatalogNotFoundException | 
 catalogId (String)  | 
Indicates that the catalog is not provided in the request. | 
Sample
REQUEST:
PUT /s/-/dw/data/v23_2/catalogs/main-catalog/categories/category1 HTTP/1.1
Host: example.com
Accept: application/json
{ 
  "description" : "category 1 description", 
  "id" : "category1", 
  "image": "demandware.jpg",
  "name" : "category 1 name", 
  "page_description": "category 1 page description",
  "page_keywords": "category 1 page keywords",
  "page_title": "category 1 page title",
  "parent_category_id" : "root", 
  "online" : true,
  "position": 2,
  "thumbnail": "demandware-thumb.jpg"
}
RESPONSE:
HTTPS/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Cache-Control: max-age=900,must-revalidate
{
   "_v" : "23.2",
   "_resource_state" : "860cde3040519cce439cd99e209f8a87c3ad0b7e2813edbf6f5501f763b73bd5",
   "_type" : "category",
   "creation_date" : "2015-12-15T19:57:23.421Z",
   "description" : 
   {
      "default" : "category 1 description"
   },
   "id" : "category1",
   "image" : "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1450204042887/demandware.jpg",
   "link" : "https://example.com/s/-/dw/data/v23_2/catalogs/main-catalog/categories/category1",
   "name" : 
   {
      "default" : "category 1 name"
   },
   "online" : true,
   "page_description" : 
   {
      "default" : "category 1 page description"
   },
   "page_keywords" : 
   {
      "default" : "category 1 page keywords"
   },
   "page_title" : 
   {
      "default" : "category 1 page title"
   },
   "parent_category_id" : "root",
   "position" : 2.0,
   "thumbnail" : "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1450204042887/demandware-thumb.jpg"
}
# in case of failure:
 
RESPONSE:
HTTP/1.1 404 Not Found
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Content-Type: application/json;charset=UTF-8
Cache-Control: max-age=0,no-cache,no-store,must-revalidate
{
  "_v" : "23.2",
  "fault":{
    "type":"CatalogNotFoundException",
    "message":"No catalog with ID 'main-catalog' was found."
  }
}
RESPONSE:
HTTP/1.1 400 Bad Request
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Content-Type: application/json;charset=UTF-8
Cache-Control: max-age=0,no-cache,no-store,must-revalidate
{
  "_v" : "23.2",
  "fault":{
    "type":"CategoryDuplicateException",    
    "message":"The category could not be created because of duplicate ID 'category2' in catalog 'main-catalog'."
  }
}
RESPONSE:
HTTP/1.1 400 Bad Request
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Content-Type: application/json;charset=UTF-8
Cache-Control: max-age=0,no-cache,no-store,must-revalidate
{
  "_v" : "23.2",
  "fault":{
    "type":"IdConflictException",
    "message":"The ID in the request body ('category1') does not match the ID in the URL ('category2')."
  }
}
RESPONSE:
HTTP/1.1 400 Bad Request
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Content-Type: application/json;charset=UTF-8
Cache-Control: max-age=0,no-cache,no-store,must-revalidate
{
  "_v" : "23.2",
  "fault":{
    "type":"CategoryInvalidException",
    "message":"The field 'parent_category_id' for the category with catalog ID ''main-catalog' and category ID 'category1' is invalid."
  }
}
Update Category
Updates a catalog category using the information provided.Url
PATCH https://hostname:port/dw/data/v23_2/catalogs/{catalog_id}/categories/{category_id}
Formats
json, xml
Authentication
| Name | Description | 
|---|---|
| OAuth | Authentication via OAuth token. | 
Request Document
Response Document
Path Parameters
| Parameter | Type | Description | Constraints | 
|---|---|---|---|
| catalog_id | String | The id of the catalog. | minLength=1 | 
| category_id | String | The id of the category | maxLength=256, minLength=1, nullable=false | 
In case of a failure Fault Document is returned.
Faults
| Status | Type | Arguments | Description | 
|---|---|---|---|
| 400 | CategoryInvalidException | 
 catalogId (String) categoryId (String) field (String)  | 
Indicates that the category in the request is not valid (the argument indicates the field that was invalid). | 
| 404 | CatalogNotFoundException | 
 catalogId (String)  | 
Indicates that the catalog is not provided in the request. | 
| 404 | CategoryNotFoundException | 
 catalogId (String) categoryId (String)  | 
Indicates that the category does not exist for the catalog provided in the request. | 
Sample
REQUEST:
PATCH /s/-/dw/data/v23_2/catalogs/main-catalog/categories/category1 HTTP/1.1
Host: example.com
Accept: application/json
{
   "_resource_state" : "860cde3040519cce439cd99e209f8a87c3ad0b7e2813edbf6f5501f763b73bd5",
   "description" : "category 1 description", 
   "id" : "category1", 
   "image": "demandware.jpg",
   "name" : "category 1 name", 
   "online" : true,
   "page_description": "category 1 page description",
   "page_keywords": "category 1 page keywords",
   "page_title": "category 1 page title",
   "parent_category_id" : "category2", 
   "position" : 5, 
   "thumbnail": "demandware-thumb.jpg"
}
RESPONSE:
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Cache-Control: max-age=900,must-revalidate
{
   "_v" : "23.2",
   "_resource_state" : "045f07bb655171dc37d8eb8bf4b0db7ac1fb3a160002eb96fbe6e2f95aa4b6cc",
   "_type" : "category",
   "description" : 
   {
      "default" : "category 1 description"
   },
   "id" : "category1",
   "image" : "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1450204042887/demandware.jpg",
   "link" : "https://example.com/s/-/dw/data/v23_2/catalogs/main-catalog/categories/category1",
   "name" : 
   {
      "default" : "category 1 name"
   },
   "online" : true,
   "page_description" : 
   {
      "default" : "category 1 page description"
   },
   "page_keywords" : 
   {
      "default" : "category 1 page keywords"
   },
   "page_title" : 
   {
      "default" : "category 1 page title"
   },
   "parent_category_id" : "category2",
   "position" : 5.0,
   "thumbnail" : "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1450204042887/demandware-thumb.jpg"
}
# in case of failure:
 
RESPONSE:
HTTP/1.1 404 Not Found
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Content-Type: application/json;charset=UTF-8
Cache-Control: max-age=0,no-cache,no-store,must-revalidate
{
  "_v" : "23.2",
  "fault":{
    "type":"CategoryNotFoundException",
       "message":"No category with ID 'category1' for catalog 'main-catalog' was found."
  }
}
RESPONSE:
HTTP/1.1 404 Not Found
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Content-Type: application/json;charset=UTF-8
Cache-Control: max-age=0,no-cache,no-store,must-revalidate
{
  "_v" : "23.2",
  "fault":{
    "type":"CatalogNotFoundException",
    "message":"No catalog with ID 'main-catalog' was found."
  }
}
RESPONSE:
HTTP/1.1 400 Bad Request
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Content-Type: application/json;charset=UTF-8
Cache-Control: max-age=0,no-cache,no-store,must-revalidate
{
  "_v" : "23.2",
  "fault":{
    "type":"CategoryInvalidException",
    "message":"The field 'parent_category_id' for the category with catalog ID ''main-catalog' and category ID 'category1' is invalid."
  }
}
Get category
Action to read an existing category within a catalog. By default, the server also returns the first level of sub-categories, but you can specify another level by setting the levels parameter. Please note, using a large value for levels may cause performance issues in case of a large and deep category tree.Url
GET https://hostname:port/dw/data/v23_2/catalogs/{catalog_id}/categories/{category_id}?levels={Integer}&expand={String}
Formats
json, xml
Authentication
| Name | Description | 
|---|---|
| OAuth | Authentication via OAuth token. | 
Response Document
Path Parameters
| Parameter | Type | Description | Constraints | 
|---|---|---|---|
| catalog_id | String | the id of the catalog that the category belongs to | minLength=1, nullable=false | 
| category_id | String | the id of the category requested | maxLength=256, minLength=1, nullable=false | 
Query Parameters
| Parameter | Type | Description | Constraints | 
|---|---|---|---|
| expand | String | the expansion that client can use to specify and retrieve further information about the category (Internal use only for now). | |
| levels | Integer | Specifies how many levels of nested sub-categories you want the server to return. The default value is 1. | minIntegerValue=0 | 
In case of a failure Fault Document is returned.
Faults
| Status | Type | Arguments | Description | 
|---|---|---|---|
| 404 | CatalogNotFoundException | 
 catalogId (String)  | 
Indicates that the catalog is not provided in the request. | 
| 404 | CategoryNotFoundException | 
 catalogId (String) categoryId (String)  | 
Indicates that the category does not exist for the catalog provided in the request. | 
Sample
REQUEST:
GET /s/-/dw/data/v23_2/catalogs/main-catalog/categories/root HTTP/1.1
Host: example.com
Accept: application/json
RESPONSE:
HTTPS/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Cache-Control: max-age=900,must-revalidate
{
   "_v" : "23.2",
   "_resource_state" : "43c2d7a118bd0a4034399ed86c86654b40c198ea64fd3195e5587d9211d10d7e",
   "_type" : "category",
   "categories" : 
   [
      {
         "_type" : "category",
         "_resource_state" : "860cde3040519cce439cd99e209f8a87c3ad0b7e2813edbf6f5501f763b73bd5",
         "creation_date" : "2015-11-30T18:48:37.333Z",
         "description" : 
         {
            "default" : "sub-category 1 for main catalog"
         },
         "id" : "sub-category-1",
         "image" : "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201.1%20image",
         "link" : "https://example.com/s/-/dw/data/v23_2/catalogs/main-catalog/categories/sub-category-1",
         "name" : 
         {
            "default" : "Sub-category 1"
         },
         "online" : true,
         "parent_category_id" : "root",
         "paths" : 
         [
            
            {
               "_type" : "path_record",
               "id" : "main-catalog",
               "name" : 
               {
                  "default" : "Main Catalog"
               }
            },
            
            {
               "_type" : "path_record",
               "id" : "root",
               "name" : 
               {
                  "default" : "root category"
               }
            },
            
            {
               "_type" : "path_record",
               "id" : "sub-category-1",
               "name" : 
               {
                  "default" : "Sub-category 1"
               }
            }
         ],
         "position" : 1.0,
         "thumbnail" : "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201.1%20thumbnail"
      },
      {
         "_type" : "category",
          "_resource_state" : "045f07bb655171dc37d8eb8bf4b0db7ac1fb3a160002eb96fbe6e2f95aa4b6cc",
         "creation_date" : "2015-12-02T18:48:37.333Z",
         "description" : 
         {
            "default" : "sub-category 2 for main catalog"
         },
         "id" : "sub-category-2",
         "image" : "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201.1%20image",
         "link" : "https://example.com/s/-/dw/data/v23_2/catalogs/main-catalog/categories/sub-category-2",
         "name" : 
         {
            "default" : "Sub-category 2"
         },
         "online" : true,
         "parent_category_id" : "root",
         "paths" : 
         [
            {
               "_type" : "path_record",
               "id" : "main-catalog",
               "name" : 
               {
                  "default" : "Main Catalog"
               }
            },
            
            {
               "_type" : "path_record",
               "id" : "root",
               "name" : 
               {
                  "default" : "root category"
               }
            },
            
            {
               "_type" : "path_record",
               "id" : "sub-category-2",
               "name" : 
               {
                  "default" : "Sub-category 2"
               }
            }
         ],
         "position" : 2.0,
         "thumbnail" : "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201.1%20thumbnail"
      }
   ],
   "creation_date" : "2015-11-29T18:48:37.333Z",
   "description" : 
   {
      "default" : "root category for main catalog"
   },
   "id" : "root",
   "image" : "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201%20image",
   "link" : "https://example.com/s/-/dw/data/v23_2/catalogs/main-catalog/categories/root",
   "name" : 
   {
      "default" : "Root Category"
   },
   "online" : true,
   "paths" : 
   [
      
      {
         "_type" : "path_record",
         "id" : "main-catalog",
         "name" : 
         {
            "default" : "Main Catalog"
         }
      },
      
      {
         "_type" : "path_record",
         "id" : "root",
         "name" : 
         {
            "default" : "root"
         }
      }
   ],
   "position" : 1.0,
   "sorting_rules" : 
   [
      {
         "_type" : "sorting_rule",
         "creation_date" : "2015-11-19T20:46:37.000Z",
         "description" : "Sorts by price ascending",
         "id" : "price-low-to-high",
         "product_sorting_rule_steps" : 
         [
            
            {
               "_type" : "sorting_rule_step",
               "direction" : "Ascending",
               "is_system" : false,
               "position" : 0,
               "text_relevance_included" : false,
               "type_id" : "price"
            }
         ],
         "site" : "main-site"
      },
      {
         "_type" : "sorting_rule",
         "creation_date" : "2015-11-19T20:46:37.000Z",
         "description" : "Sorts by price ascending",
         "id" : "price-low-to-high",
         "product_sorting_rule_steps" : 
         [
            
            {
               "_type" : "sorting_rule_step",
               "direction" : "Ascending",
               "is_system" : false,
               "position" : 0,
               "text_relevance_included" : false,
               "type_id" : "price"
            }
         ],
         "site" : "main-site"
      }
   ],
   "thumbnail" : "https://example.com/on/demandware.static/-/Sites-main-catalog/default/v1447965267239/category%201%20thumbnail",
}
# in case of failure:
 
RESPONSE:
HTTP/1.1 404 Not Found
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Content-Type: application/json;charset=UTF-8
Cache-Control: max-age=0,no-cache,no-store,must-revalidate
{
  "_v" : "23.2",
  "fault":{
    "type":"CategoryNotFoundException",
    "message":"No category with ID 'root' for catalog 'main-catalog' was found."
  }
}
RESPONSE:
HTTP/1.1 404 Not Found
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Content-Type: application/json;charset=UTF-8
Cache-Control: max-age=0,no-cache,no-store,must-revalidate
{
  "_v" : "23.2",
  "fault":{
    "type":"CatalogNotFoundException",
    "message":"No catalog with ID 'main-catalog' was found."
  }
}
Delete Category
Deletes the category by catalog ID and category IDUrl
DELETE https://hostname:port/dw/data/v23_2/catalogs/{catalog_id}/categories/{category_id}
Formats
json, xml
Authentication
| Name | Description | 
|---|---|
| OAuth | Authentication via OAuth token. | 
Path Parameters
| Parameter | Type | Description | Constraints | 
|---|---|---|---|
| catalog_id | String | The site context. | minLength=1, nullable=false | 
| category_id | String | The category id to remove | minLength=1, nullable=false | 
In case of a failure Fault Document is returned.
Faults
| Status | Type | Arguments | Description | 
|---|---|---|---|
| 404 | CatalogNotFoundException | 
 catalogId (String)  | 
Indicates that the catalog is not provided in the request. | 
| 404 | CategoryNotFoundException | 
 catalogId (String) categoryId (String)  | 
Indicates that the category does not exist for the catalog provided in the request. | 
Sample
REQUEST:
DELETE /s/-/dw/data/v23_2/catalogs/main-catalog/categories/category1  HTTP/1.1
Host: example.com
Accept: application/json
x-dw-resource-state: 860cde3040519cce439cd99e209f8a87c3ad0b7e2813edbf6f5501f763b73bd5
RESPONSE:
HTTPS/1.1 204 NO CONTENT
# in case of failure:
 
RESPONSE:
HTTP/1.1 404 Not Found
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Content-Type: application/json;charset=UTF-8
Cache-Control: max-age=0,no-cache,no-store,must-revalidate
{
  "_v" : "23.2",
  "fault":{
    "type":"CategoryNotFoundException",
    "message":"No category with ID 'category1' for catalog 'main-catalog' was found."
  }
}
RESPONSE:
HTTP/1.1 404 Not Found
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Content-Type: application/json;charset=UTF-8
Cache-Control: max-age=0,no-cache,no-store,must-revalidate
{
  "_v" : "23.2",
  "fault":{
    "type":"CatalogNotFoundException",
    "message":"No catalog with ID 'main-catalog' was found."
  }
}
Create Category Product Assignment
Creates a category product assignment using the information provided;
As the assigned position n is a normalized target position, we'll make sure that the product is assigned to a position so that the order of positions are maintained. For example, product A, B, C at position 1, 2, 3. product D is assigned to position 2, the end result is A, D, B, C with order of positions 1, 2, 3, 4;
If there are n existing positioned assignment, assigning a new product to position >= n+1 will end with new assignment with position n+1.
Url
PUT https://hostname:port/dw/data/v23_2/catalogs/{catalog_id}/categories/{category_id}/products/{product_id}
Formats
json, xml
Authentication
| Name | Description | 
|---|---|
| OAuth | Authentication via OAuth token. | 
Request Document
Response Document
Path Parameters
| Parameter | Type | Description | Constraints | 
|---|---|---|---|
| catalog_id | String | The id of the requested catalog to which to assign the product. | minLength=1 | 
| category_id | String | The id of the requested category to which to assign the product. | minLength=1 | 
| product_id | String | The id (SKU) of the requested product to assign. | minLength=1 | 
In case of a failure Fault Document is returned.
Faults
| Status | Type | Arguments | Description | 
|---|---|---|---|
| 400 | IdConflictException | 
 bodyID (String) urlID (String)  | 
if the Id in request is not the same as the ID in document. | 
| 404 | CategoryNotFoundException | 
 catalogId (String) categoryId (String)  | 
Thrown if the category does not exist matching the given id. | 
| 404 | CatalogNotFoundException | 
 catalogId (String)  | 
Thrown if the catalog does not exist matching the given id. | 
| 404 | ProductNotFoundException | 
 productId (String)  | 
Thrown if the product does not exist matching the given id. | 
Sample
REQUEST:
PUT /s/-/dw/data/v23_2/catalogs/MyCatalog/categories/MyCategory/products/MyProduct HTTP/1.1
Host: example.com
Authorization: Bearer a5b6eb0d-8312-41a3-88f3-2c53c4507367
{
  "position":1
}
# in case of success:
RESPONSE:
HTTP/1.1 201 CREATED
Content-Length: 67
Location: https://example.com/s/-/dw/data/v23_2/catalogs/MyCatalog/categories/MyCategory/products/MyProduct
Content-Type: application/json; charset=UTF-8
{
   "_v" : "23.2",
   "_resource_state" : "860cde3040519cce439cd99e209f8a87c3ad0b7e2813edbf6f5501f763b73bd5",
   "_type" : "category_product_assignment",
   "catalog_id" : "MyCatalog",
   "category_id" : "MyCategory",
   "link": "https://example.com/s/-/dw/data/v23_2/catalogs/MyCatalog/categories/MyCategory/products/MyProduct",
   "owning_catalog_name" : 
   {
      "default" : "My Catalog"
   },
   "position" : 1.0,
   "product_id" : "MyProduct",
   "product_name" : 
   {
      "default" : "My Product"
   }
}
# in case of failure:
RESPONSE:
HTTP/1.1 404 Not found
Content-Type: application/json;charset=UTF-8
Cache-Control: max-age=0,no-cache,no-store,must-revalidate
{
   "_v" : "23.2",
   "fault" : 
   {
      "type" : "CategoryNotFoundException",
      "message" : "No category with ID 'MyCategory' for catalog 'MyCatalog' was found."
   }
}
Update Category Product Assignment
Updates the category product assignment with the specified information, such as position.
As the assigned position n is a normalized target position, we'll make sure that the product is assigned to a position so that the order of positions are maintained.
For example, if we have products A, B, C, D at positions 1, 2, 3, 4 and update product A with new position 3, the end result is B, C, A, D with order of positions 1, 2, 3, 4.
If we then update product C to no position, the end result is B, A, D, C with order of positions 1, 2, 3, null.
If there are n existing positioned assignment, updating product to position >= n will end with new assignment with position such that the order of positions is maintained.
Url
PATCH https://hostname:port/dw/data/v23_2/catalogs/{catalog_id}/categories/{category_id}/products/{product_id}
Formats
json, xml
Authentication
| Name | Description | 
|---|---|
| OAuth | Authentication via OAuth token. | 
Request Document
Response Document
Path Parameters
| Parameter | Type | Description | Constraints | 
|---|---|---|---|
| catalog_id | String | The id of the requested catalog to which the product is assigned. | minLength=1 | 
| category_id | String | The id of the requested category to which the product is assigned. | minLength=1 | 
| product_id | String | The id (SKU) of the requested assigned product. | minLength=1 | 
In case of a failure Fault Document is returned.
Faults
| Status | Type | Arguments | Description | 
|---|---|---|---|
| 404 | CategoryNotFoundException | 
 catalogId (String) categoryId (String)  | 
Thrown if the category does not exist matching the given id. | 
| 404 | CatalogNotFoundException | 
 catalogId (String)  | 
Thrown if the catalog does not exist matching the given id. | 
| 404 | ProductNotFoundException | 
 productId (String)  | 
Thrown if the product does not exist matching the given id. | 
| 404 | CategoryProductAssignmentNotFoundException | 
 catalogId (String) categoryId (String) siteId (String)  | 
Thrown if the category product assignment does not exist. | 
Sample
REQUEST:
PATCH /s/-/dw/data/v23_2/catalogs/MyCatalog/categories/MyCategory/products/MyProduct HTTP/1.1
Host: example.com
Authorization: Bearer a5b6eb0d-8312-41a3-88f3-2c53c4507367
{
   "_resource_state" : "860cde3040519cce439cd99e209f8a87c3ad0b7e2813edbf6f5501f763b73bd5",
   "position":2
}
# in case of success:
RESPONSE:
HTTP/1.1 200 OK
Content-Length: 67
Content-Type: application/json; charset=UTF-8
{
   "_v" : "23.2",
   "_resource_state" : "860cde3040519cce439cd99e209f8a87c3ad0b7e2813edbf6f5501f763b73bd5",
   "_type" : "category_product_assignment",
   "catalog_id" : "MyCatalog",
   "category_id" : "MyCategory",
   "link": "https://example.com/s/-/dw/data/v23_2/catalogs/MyCatalog/categories/MyCategory/products/MyProduct",
   "owning_catalog_name" : 
   {
      "default" : "My Catalog"
   },
   "position" : 2.0,
   "product_id" : "MyProduct",
   "product_name" : 
   {
      "default" : "My Product"
   }
}
# in case of failure:
RESPONSE:
HTTP/1.1 404 Not found
Content-Type: application/json;charset=UTF-8
Cache-Control: max-age=0,no-cache,no-store,must-revalidate
{
  "_v" : "23.2",
   "_type":"fault",
  "fault":{
    "type":"CategoryProductAssignmentNotFoundException",
    "message":"No product category assignment with catalog ID MyCatalog and category id MyCategory and product id MyProduct was found."
  }
}
Delete Category Product Assignment
Removes a category product assignment;For example, if we have products A, B, C at positions 1, 2, 7.5 and delete assignment for product B, this will end up the products A, B, C at positions 1, null, 7.5.
Url
DELETE https://hostname:port/dw/data/v23_2/catalogs/{catalog_id}/categories/{category_id}/products/{product_id}
Formats
json, xml
Authentication
| Name | Description | 
|---|---|
| OAuth | Authentication via OAuth token. | 
Path Parameters
| Parameter | Type | Description | Constraints | 
|---|---|---|---|
| catalog_id | String | The catalog of the assignment. | minLength=1 | 
| category_id | String | The id of the requested category. | minLength=1 | 
| product_id | String | The id of the requested product to un-assign. | minLength=1, nullable=false | 
In case of a failure Fault Document is returned.
Faults
| Status | Type | Arguments | Description | 
|---|---|---|---|
| 404 | CategoryNotFoundException | 
 catalogId (String) categoryId (String)  | 
Thrown if the category does not exist matching the given id. | 
| 404 | CatalogNotFoundException | 
 catalogId (String)  | 
Thrown if the catalog does not exist matching the given id. | 
Sample
REQUEST:
DELETE /s/-/dw/data/v23_2/catalogs/MyCatalog/categories/MyCategory/products/product1 HTTP/1.1
Host: example.com
Authorization: Bearer a5b6eb0d-8312-41a3-88f3-2c53c4507367
x-dw-resource-state: 860cde3040519cce439cd99e209f8a87c3ad0b7e2813edbf6f5501f763b73bd5
# in case of success:
RESPONSE:
HTTP/1.1 204 No Content
Get Category Product Assignment
Retrieves category product assignment information. Expands that can be applied for the get request- product_base - String
 - product_images - String - to fetch image groups specified for the given product
 - product_all_images - String - to fetch image groups specified for the given product plus images for its variants and variation groups
 
Url
GET https://hostname:port/dw/data/v23_2/catalogs/{catalog_id}/categories/{category_id}/products/{product_id}?site_id={String}&expand={String}&select={String}
Formats
json, xml
Authentication
| Name | Description | 
|---|---|
| OAuth | Authentication via OAuth token. | 
Response Document
Path Parameters
| Parameter | Type | Description | Constraints | 
|---|---|---|---|
| catalog_id | String | The catalog of the assignment. | minLength=1 | 
| category_id | String | The id of the requested category. | minLength=1 | 
| product_id | String | The id (SKU) of the requested assigned product. | minLength=1 | 
Query Parameters
| Parameter | Type | Description | Constraints | 
|---|---|---|---|
| expand | String | The List of expansion values applied to the product associated to the assignment. | |
| select | String | The selector for the get. If not passed, then the defaultSelector will be used instead. | |
| site_id | String | The site context. | 
In case of a failure Fault Document is returned.
Faults
| Status | Type | Arguments | Description | 
|---|---|---|---|
| 404 | CategoryNotFoundException | 
 catalogId (String) categoryId (String)  | 
Thrown if the category does not exist matching the given id. | 
| 404 | CatalogNotFoundException | 
 catalogId (String)  | 
Thrown if the catalog does not exist matching the given id. | 
| 404 | ProductNotFoundException | 
 productId (String)  | 
Thrown if the product does not exist matching the given id. | 
| 404 | CategoryProductAssignmentNotFoundException | 
 catalogId (String) categoryId (String) siteId (String)  | 
Thrown if the category product assignment does not exist matching the given ids. | 
Sample
REQUEST:
GET /s/-/dw/data/v23_2/catalogs/MyCatalog/categories/MyCategory/products/MyProduct HTTP/1.1
Host: example.com
Authorization: Bearer a5b6eb0d-8312-41a3-88f3-2c53c4507367
Content-Type: application/json; charset=UTF-8
# in case of success:
 
RESPONSE:
HTTP/1.1 200 OK
Expires: Thu, 01-Aug-2014 00:00:00 GMT
{
   "_v" : "23.2",
   "_resource_state" : "860cde3040519cce439cd99e209f8a87c3ad0b7e2813edbf6f5501f763b73bd5",
   "_type" : "category_product_assignment",
   "catalog_id" : "MyCatalog",
   "category_id" : "MyCategory",
   "link": "https://example.com/s/-/dw/data/v23_2/catalogs/MyCatalog/categories/MyCategory/products/MyProduct",
   "owning_catalog_name" : 
   {
      "default" : "My Catalog"
   },
   "product_id" : "MyProduct",
   "product_name" : 
   {
      "default" : "My Product"
   }
}
# in case of failure:
 
RESPONSE:
HTTP/1.1 404 NOT FOUND
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Content-Type: application/json;charset=UTF-8
Cache-Control: max-age=0,no-cache,no-store,must-revalidate
{
  "_v" : "23.2",
   "_type":"fault",
  "fault":{
    "type":"CategoryProductAssignmentNotFoundException",
    "message":"No product category assignment with catalog ID 'MyCatalog' and category id 'MyCategory' and product id 'MyProduct' was found."
  }
}