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