Skip to main content

Cluster

Cluster entity representing grouped products with shared characteristics.

External entity from the catalog service that provides cluster identification and categorization. Clusters group related products together based on shared attributes, features, or business logic. Used as a reference for cluster-specific attributes and group-level properties within the attribute system.

type Cluster implements IResource, IBaseProduct, ICluster {
id: Int!
clusterId: Int!
categoryId: Int!
attributes(
input: AttributeResultSearchInput
): AttributeResultResponse
favoriteLists(
input: FavoriteListsSearchInput
): FavoriteListsResponse
orderlists(
input: OrderlistSearchInput
): OrderlistsResponse!
language: String @deprecated
class: ProductClass! @deprecated
hidden: YesNo!
uuid: ID!
type: ProductClass!
sku: String! @deprecated
priority: Int
categoryIds: [Int!]!
defaultLanguage: String! @deprecated
names(
language: String
): [LocalizedString!]!
descriptions(
language: String
): [LocalizedString!]!
shortDescriptions(
language: String
): [LocalizedString!]!
slugs(
language: String
): [LocalizedString!]!
shortNames(
language: String
): [LocalizedString!]!
metadataTitles(
language: String
): [LocalizedString!]!
metadataDescriptions(
language: String
): [LocalizedString!]!
metadataKeywords(
language: String
): [LocalizedString!]!
metadataCanonicalUrls(
language: String
): [LocalizedString!]!
sources: [Source!]!
createdAt: DateTime!
lastModifiedAt: DateTime!
code: String
category(
hidden: YesNo
): Category
categories(
input: ClusterCategorySearchInput
): CategoryResponse!
categoryPath(
hidden: YesNo
): [Category!]!
products(
input: ClusterProductSearchInput
): [Product!]!
defaultProduct(
hidden: Boolean
): Product
clusterConfig: ClusterConfig
config: ClusterConfig
drillDowns: [ClusterDrillDown!] @deprecated
options(
input: ClusterOptionSearchInput
): [ClusterOption!]!
crossupsellsFrom(
input: CrossupsellSearchInput
): CrossupsellsResponse!
crossupsellsTo(
input: CrossupsellSearchInput
): CrossupsellsResponse!
categoryRelations: [BaseProductCategoryRelationship!]!
}

Fields

Cluster.id ● Int! non-null scalar

Identifier of the cluster the product is assigned to, if any.

Cluster.clusterId ● Int! non-null scalar

Identifier of the cluster the product is assigned to, if any.

Cluster.categoryId ● Int! non-null scalar

Identifier of the category exposed as the default for federation purposes.

Cluster.attributes ● AttributeResultResponse object

Lists attributes for this cluster based on the search input.

Cluster.attributes.input ● AttributeResultSearchInput input

Cluster.favoriteLists ● FavoriteListsResponse object

Collection of favorite lists that contain this cluster.

Returns paginated results of all favorite lists where this cluster has been added. Useful for understanding cluster popularity and usage patterns.

**Response Structure**:

  • Paginated list of favorite lists containing this cluster
  • Complete favorite list metadata
  • Owner information (company, contact, or customer)
  • Creation and modification timestamps

**Analytics Capabilities**:

  • Cluster popularity tracking
  • Usage pattern analysis
  • Cross-list cluster relationships
  • Category preference insights

**Use Cases**:

  • Category recommendation systems
  • Popular cluster identification
  • Bulk product management insights
  • Inventory category demand analysis
Cluster.favoriteLists.input ● FavoriteListsSearchInput input

Cluster.orderlists ● OrderlistsResponse! non-null object

Order lists that include this product cluster.

Returns a paginated collection of order lists where this cluster has been assigned.

  • POSITIVE order lists: Assigned users/companies can see and order all products in this cluster
  • NEGATIVE order lists: Assigned users/companies cannot see or order any products in this cluster

Clusters enable efficient management of product access for groups of related products. Results can be filtered using the input parameter for more specific queries.

Cluster.orderlists.input ● OrderlistSearchInput input

Search and filtering criteria for order lists that include this product cluster.

Filters the results to show only order lists where this specific product cluster has been assigned.

  • POSITIVE order lists: Assigned users/companies can see and order products from this cluster
  • NEGATIVE order lists: Assigned users/companies cannot see or order products from this cluster

The cluster inclusion means ALL products within this cluster are affected by the order list rules. All standard search criteria can be applied in addition to the cluster-specific filtering.

If not provided, returns all order lists that include this cluster with default pagination settings.

Cluster.hidden ● YesNo! non-null enum

Hides the record from public catalog and search surfaces when set.

Cluster.uuid ● ID! non-null scalar

Globally unique identifier for the product or cluster.

Cluster.type ● ProductClass! non-null enum

Discriminator that distinguishes between a product and a cluster within the shared catalogue.

Cluster.priority ● Int scalar

Relative ranking used when ordering records; higher values surface first.

Cluster.categoryIds ● [Int!]! non-null scalar

Identifiers of every category the product belongs to.

Cluster.names ● [LocalizedString!]! non-null object

Localized names shown to end users in catalog and search surfaces. The catalogue's default language must be present.

Cluster.names.language ● String scalar

Cluster.descriptions ● [LocalizedString!]! non-null object

Localized long-form descriptions shown on product detail surfaces.

Cluster.descriptions.language ● String scalar

Cluster.shortDescriptions ● [LocalizedString!]! non-null object

Localized short descriptions surfaced in listings and tiles.

Cluster.shortDescriptions.language ● String scalar

Cluster.slugs ● [LocalizedString!]! non-null object

URL-friendly identifiers, one per language, used in human-readable links.

Cluster.slugs.language ● String scalar

Cluster.shortNames ● [LocalizedString!]! non-null object

Localized short labels shown when the full name is too long.

Cluster.shortNames.language ● String scalar

Cluster.metadataTitles ● [LocalizedString!]! non-null object

Localized titles surfaced in search engine result pages.

Cluster.metadataTitles.language ● String scalar

Cluster.metadataDescriptions ● [LocalizedString!]! non-null object

Localized descriptive snippets surfaced in search engine result pages.

Cluster.metadataDescriptions.language ● String scalar

Cluster.metadataKeywords ● [LocalizedString!]! non-null object

Localized keyword lists used by search engines, supplied as comma-separated values.

Cluster.metadataKeywords.language ● String scalar

Cluster.metadataCanonicalUrls ● [LocalizedString!]! non-null object

Localized canonical URLs that search engines should treat as the authoritative location.

Cluster.metadataCanonicalUrls.language ● String scalar

Cluster.sources ● [Source!]! non-null object

Pairs of external system names and the identifiers each system assigned to the record.

Cluster.createdAt ● DateTime! non-null scalar

Timestamp marking when the record was created, in UTC ISO 8601 format.

Cluster.lastModifiedAt ● DateTime! non-null scalar

Timestamp marking the last modification of the record, in UTC ISO 8601 format.

Cluster.code ● String scalar

Cluster code. Uniquely identifies a cluster within the catalogue and is only meaningful on cluster records.

Cluster.category ● Category object

Cluster.category.hidden ● YesNo enum

Cluster.categories ● CategoryResponse! non-null object

Cluster.categories.input ● ClusterCategorySearchInput input

Cluster.categoryPath ● [Category!]! non-null object

Cluster.categoryPath.hidden ● YesNo enum

Cluster.products ● [Product!]! non-null object

Cluster.products.input ● ClusterProductSearchInput input

Cluster.defaultProduct ● Product object

Cluster.defaultProduct.hidden ● Boolean scalar

Cluster.clusterConfig ● ClusterConfig object

Cluster.config ● ClusterConfig object

Cluster.options ● [ClusterOption!]! non-null object

Cluster.options.input ● ClusterOptionSearchInput input

Cluster.crossupsellsFrom ● CrossupsellsResponse! non-null object

Cross- and up-sell relationships originating from the cluster.

AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] OR (('user is authenticated') AND ('userId if present in input matches JWT' AND 'companyId(s) if present in input matches JWT'))

Cluster.crossupsellsFrom.input ● CrossupsellSearchInput input

Filtering and pagination criteria for the cross-upsell relationships.

Cluster.crossupsellsTo ● CrossupsellsResponse! non-null object

Cross- and up-sell relationships targeting the cluster.

AUTH: Role=[product.OWNER,product.EDITOR,product.VIEWER] OR (('user is authenticated') AND ('userId if present in input matches JWT' AND 'companyId(s) if present in input matches JWT'))

Cluster.crossupsellsTo.input ● CrossupsellSearchInput input

Filtering and pagination criteria for the cross-upsell relationships.

Cluster.categoryRelations ● [BaseProductCategoryRelationship!]! non-null object

Show deprecated

Interfaces

IResource interface

IBaseProduct interface

Base interface for all product types in the system.

Defines common properties shared across products and clusters. This interface provides a unified structure for product-related data while allowing for type-specific implementations.

ICluster interface

Returned By

cluster query ● clusterAssignProduct mutation ● clusterCreate mutation ● clusterSetDefaultCategory mutation ● clusterUnassignProduct mutation ● clusterUpdate mutation

Member Of

BaseProductClusterRelationship object ● ClusterAssignProductsResponse object ● ClustersResponse object ● ClusterUnassignProductsResponse object ● Product object

Implemented By

BaseProduct union