data-src=../../includes/commerce-only.md

Assign categories and products to a shared catalog

The shared catalog configuration process includes assigning categories and products to the shared catalog. To assign these items to a shared catalog, the following conditions must be met:

Assign categories

The sharedCatalogCategoryManagementV1 service is based on catalogCategoryManagementV1. To view a store's category structure, call GET /V1/categories.

data-variant=info
data-slots=text
Products that are defined within a category are not included when you assign a category to a shared catalog. You must add products separately.

Service name:

sharedCatalogCategoryManagementV1

REST Endpoints:

POST /V1/sharedCatalog/:id/assignCategories
POST /V1/sharedCatalog/:id/unassignCategories
GET  /V1/sharedCatalog/:id/categories

Category parameters:

data-variant=info
data-slots=text
Although you can specify other parameters defined within a categories object, the id is the only one used to assign or unassign a category to a shared catalog.
Name
Description
Format
Requirements
id
The category ID number
integer
Required to assign or unassign a category

Assign categories to shared catalog

The following example adds the Luma Gear category (id=3) as well as its subcategories (id=4,5,6) to a custom shared catalog.

Sample usage:

POST <host>/rest/<store_code>/V1/sharedCatalog/2/assignCategories

data-slots=heading, code
data-repeat=2
data-languages=JSON, JSON

Payload

{
  "categories": [
    {
      "id": 3
    },
    {
      "id": 4
    },
    {
      "id": 5
    },
    {
      "id": 6
    }
  ]
}

Response

// `true`, indicating the operation was successful

Unassign categories from a shared catalog

When you unassign a category from a shared catalog, Commerce also removes its products from the shared catalog. If a product is assigned to multiple categories, then Commerce removes the product from the unassigned category only.

The following example removes two categories from the shared catalog.

Sample usage:

POST <host>/rest/<store_code>/V1/sharedCatalog/2/unassignCategories

data-slots=heading, code
data-repeat=2
data-languages=JSON, JSON

Payload

{
  "categories": [
    {
      "id": 7
    },

    {
      "id": 8
    }
  ]
}

Response

// `true`, indicating the operation was successful

List the shared catalog categories

The GET call returns an array of catalog IDs.

Sample Usage:

GET <host>/rest/<store_code>/V1/sharedCatalog/2/categories

data-slots=heading, code
data-repeat=2
data-languages=JSON, JSON

Payload

// Not applicable

Response

[
  3,
  4,
  5,
  6
]

Assign products

The sharedCatalogProductManagementV1 service is based on catalogProductManagementV1. To return a list of products defined within a category, call GET /V1/categories/:categoryId/products.

Service name:

sharedCatalogProductManagementV1

REST endpoints:

POST  /V1/sharedCatalog/:id/assignProducts
POST  /V1/sharedCatalog/:id/unassignProducts
GET  /V1/sharedCatalog/:id/products

Category parameters:

data-variant=info
data-slots=text
Although you can specify other parameters defined within a products object, the sku is the only one used to assign or unassign a product to a shared catalog.
Name
Description
Format
Requirements
sku
The product's SKU identifier
string
Required to assign or unassign a product to a shared catalog

Assign products to shared catalog

The following example adds two products each in the Bags, Fitness Equipment, and Watches categories to a custom shared catalog. The specified products do not have to be in the same category.

Sample usage:

POST <host>/rest/<store_code>/V1/sharedCatalog/2/assignProducts

data-slots=heading, code
data-repeat=2
data-languages=JSON, JSON

Payload

{
 "products": [
     {
         "sku": "24-MB01"
     },
     {
         "sku": "24-MB04"
     },
     {
         "sku": "24-UG06"
     },
     {
         "sku": "24-UG07"
     },
     {
         "sku": "24-MG04"
     },
     {
         "sku": "24-MG01"
     }
 ]
}

Response

// `true`, indicating the operation was successful

Unassign products from the shared catalog

Unassigning a product does not remove it from its category or categories.

Sample usage:

POST <host>/rest/<store_code>/V1/sharedCatalog/2/unassignProducts

data-slots=heading, code
data-repeat=2
data-languages=JSON, JSON

Payload

{
  "products": [
   {
     "sku": "24-MG01"
   }
  ]
}

Response

// `true`, indicating the operation was successful

List the shared catalog products

The GET call returns an array of SKUs.

Sample Usage:

GET <host>/rest/<store_code>/V1/sharedCatalog/2/products

data-slots=heading, code
data-repeat=2
data-languages=JSON, JSON

Payload

// Not applicable

Response

[
  "24-MB01",
  "24-MB04",
  "24-UG06",
  "24-UG07",
  "24-MG04"
]