Skip to content
Saleor
Esc
↑↓navigate↵open⌘Jpreview

Schema: Saleor 3.23.43Download SDLUpgrade guides

On this page

ProductType Object

Represents a type of product. It defines what attributes are available to products of this type.

type ProductType implements Node & ObjectWithMetadata {
  id: ID!
  privateMetadata: [MetadataItem!]!
  privateMetafield(key: String!): String
  privateMetafields(keys: [String!]): Metadata
  metadata: [MetadataItem!]!
  metafield(key: String!): String
  metafields(keys: [String!]): Metadata
  name: String!
  slug: String!
  hasVariants: Boolean! @deprecated(reason: "This is a leftover from the past Simple/Configurable product distinction. Products can have multiple variants regardless of this setting. ")
  isShippingRequired: Boolean!
  isDigital: Boolean! @deprecated(reason: "Will be removed in v3.24.0, use metadata or attributes instead.")
  weight: Weight
  kind: ProductTypeKindEnum!
  products(channel: String, before: String, after: String, first: Int, last: Int): ProductCountableConnection @deprecated(reason: "Use the top-level `products` query with the `productTypes` filter.")
  taxType: TaxType @deprecated(reason: "Use `taxClass` field instead.")
  taxClass: TaxClass
  variantAttributes(variantSelection: VariantAttributeScope): [Attribute!] @deprecated(reason: "Use `assignedVariantAttributes` instead.")
  assignedVariantAttributes(variantSelection: VariantAttributeScope): [AssignedVariantAttribute!]
  productAttributes: [Attribute!]
  availableAttributes(filter: AttributeFilterInput @deprecated(reason: "Use `where` filter instead."), where: AttributeWhereInput, search: String, before: String, after: String, first: Int, last: Int): AttributeCountableConnection
}

Interfaces

Node, ObjectWithMetadata

Fields

id

id · ID!

The ID of the product type.

privateMetadata

privateMetadata · [MetadataItem!]!

List of private metadata items. Requires staff permissions to access.

privateMetafield

privateMetafield · String

A single key from private metadata. Requires staff permissions to access.

Tip: Use GraphQL aliases to fetch multiple keys.

key

key · String!

privateMetafields

privateMetafields · Metadata

Private metadata. Requires staff permissions to access. Use keys to control which fields you want to include. The default is to include everything.

keys

keys · [String!]

metadata

metadata · [MetadataItem!]!

List of public metadata items. Can be accessed without permissions.

metafield

metafield · String

A single key from public metadata.

Tip: Use GraphQL aliases to fetch multiple keys.

key

key · String!

metafields

metafields · Metadata

Public metadata. Use keys to control which fields you want to include. The default is to include everything.

keys

keys · [String!]

name

name · String!

Name of the product type.

slug

slug · String!

Slug of the product type.

hasVariants

hasVariants · Boolean!

Whether the product type has variants.

isShippingRequired

isShippingRequired · Boolean!

Whether shipping is required for this product type.

isDigital

isDigital · Boolean!

Whether the product type is digital - doesn’t have any effect, it’s present for backward-compatibility.

weight

weight · Weight

Weight of the product type.

kind

kind · ProductTypeKindEnum!

The product type kind.

products

products · ProductCountableConnection

List of products of this type.

channel

channel · String

Slug of a channel for which the data should be returned.

before

before · String

Return the elements in the list that come before the specified cursor.

after

after · String

Return the elements in the list that come after the specified cursor.

first

first · Int

Retrieve the first n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query.

last

last · Int

Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query.

taxType

taxType · TaxType

A type of tax. Assigned by enabled tax gateway

taxClass

taxClass · TaxClass

Tax class assigned to this product type. All products of this product type use this tax class, unless it’s overridden in the Product type.

Requires one of the following permissions:AUTHENTICATED_STAFF_USERAUTHENTICATED_APP

variantAttributes

variantAttributes · [Attribute!]

Variant attributes of that product type.

variantSelection

variantSelection · VariantAttributeScope

Define scope of returned attributes.

assignedVariantAttributes

assignedVariantAttributes · [AssignedVariantAttribute!]

Variant attributes of that product type with attached variant selection.

variantSelection

variantSelection · VariantAttributeScope

Define scope of returned attributes.

productAttributes

productAttributes · [Attribute!]

Product attributes of that product type.

availableAttributes

availableAttributes · AttributeCountableConnection

List of attributes which can be assigned to this product type.

Requires one of the following permissions:MANAGE_PRODUCTS

filter

filter · AttributeFilterInput

Filtering options for attributes of this product type.

where

where · AttributeWhereInput

Where filtering options for attributes of this product type.

search · String

Search attributes.

before

before · String

Return the elements in the list that come before the specified cursor.

after

after · String

Return the elements in the list that come after the specified cursor.

first

first · Int

Retrieve the first n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query.

last

last · Int

Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query.

Used by


Schema: Saleor 3.23.43. Download SDL.

Last updated on April 13, 2026

Was this page helpful?