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!
  isShippingRequired: Boolean!
  isDigital: Boolean!
  weight: Weight
  kind: ProductTypeKindEnum!
  products(
    channel: String
    before: String
    after: String
    first: Int
    last: Int
  ): ProductCountableConnection @deprecated
  taxType: TaxType @deprecated
  taxClass: TaxClass
  variantAttributes(
    variantSelection: VariantAttributeScope
  ): [Attribute!] @deprecated
  assignedVariantAttributes(
    variantSelection: VariantAttributeScope
  ): [AssignedVariantAttribute!]
  productAttributes: [Attribute!]
  availableAttributes(
    filter: AttributeFilterInput
    where: AttributeWhereInput
    before: String
    after: String
    first: Int
    last: Int
  ): AttributeCountableConnection
}
Fields
ProductType.id ● ID! non-null scalar miscellaneous
The ID of the product type.
ProductType.privateMetadata ● [MetadataItem!]! non-null object miscellaneous
List of private metadata items. Requires staff permissions to access.
ProductType.privateMetafield ● String scalar miscellaneous
A single key from private metadata. Requires staff permissions to access.
Tip: Use GraphQL aliases to fetch multiple keys.
ProductType.privateMetafield.key ● String! non-null scalar miscellaneous
ProductType.privateMetafields ● Metadata scalar miscellaneous
Private metadata. Requires staff permissions to access. Use keys to control which fields you want to include. The default is to include everything.
ProductType.privateMetafields.keys ● [String!] list scalar miscellaneous
ProductType.metadata ● [MetadataItem!]! non-null object miscellaneous
List of public metadata items. Can be accessed without permissions.
ProductType.metafield ● String scalar miscellaneous
A single key from public metadata.
Tip: Use GraphQL aliases to fetch multiple keys.
ProductType.metafield.key ● String! non-null scalar miscellaneous
ProductType.metafields ● Metadata scalar miscellaneous
Public metadata. Use keys to control which fields you want to include. The default is to include everything.
ProductType.metafields.keys ● [String!] list scalar miscellaneous
ProductType.name ● String! non-null scalar miscellaneous
Name of the product type.
ProductType.slug ● String! non-null scalar miscellaneous
Slug of the product type.
ProductType.hasVariants ● Boolean! non-null scalar miscellaneous
Whether the product type has variants.
ProductType.isShippingRequired ● Boolean! non-null scalar miscellaneous
Whether shipping is required for this product type.
ProductType.isDigital ● Boolean! non-null scalar miscellaneous
Whether the product type is digital.
ProductType.weight ● Weight object miscellaneous
Weight of the product type.
ProductType.kind ● ProductTypeKindEnum! non-null enum products
The product type kind.
ProductType.products ● ProductCountableConnection deprecated object products
This field will be removed in Saleor 4.0. Use the top-level products query with the productTypes filter.
List of products of this type.
ProductType.products.channel ● String scalar miscellaneous
Slug of a channel for which the data should be returned.
ProductType.products.before ● String scalar miscellaneous
Return the elements in the list that come before the specified cursor.
ProductType.products.after ● String scalar miscellaneous
Return the elements in the list that come after the specified cursor.
ProductType.products.first ● Int scalar miscellaneous
Retrieve the first n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query.
ProductType.products.last ● Int scalar miscellaneous
Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query.
ProductType.taxType ● TaxType deprecated object taxes
This field will be removed in Saleor 4.0. Use taxClass field instead.
A type of tax. Assigned by enabled tax gateway
ProductType.taxClass ● TaxClass object taxes
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.
ProductType.variantAttributes ● [Attribute!] deprecated list object attributes
This field will be removed in Saleor 4.0. Use assignedVariantAttributes instead.
Variant attributes of that product type.
ProductType.variantAttributes.variantSelection ● VariantAttributeScope enum products
Define scope of returned attributes.
ProductType.assignedVariantAttributes ● [AssignedVariantAttribute!] list object attributes
Variant attributes of that product type with attached variant selection.
ProductType.assignedVariantAttributes.variantSelection ● VariantAttributeScope enum products
Define scope of returned attributes.
ProductType.productAttributes ● [Attribute!] list object attributes
Product attributes of that product type.
ProductType.availableAttributes ● AttributeCountableConnection object attributes
List of attributes which can be assigned to this product type.
ProductType.availableAttributes.filter ● AttributeFilterInput input attributes
ProductType.availableAttributes.where ● AttributeWhereInput input attributes
ProductType.availableAttributes.before ● String scalar miscellaneous
Return the elements in the list that come before the specified cursor.
ProductType.availableAttributes.after ● String scalar miscellaneous
Return the elements in the list that come after the specified cursor.
ProductType.availableAttributes.first ● Int scalar miscellaneous
Retrieve the first n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query.
ProductType.availableAttributes.last ● Int scalar miscellaneous
Retrieve the last n elements from the list. Note that the system only allows fetching a maximum of 100 objects in a single query.
Interfaces
Node interface miscellaneous
An object with an ID
ObjectWithMetadata interface miscellaneous
Returned By
productType query
Member Of
Product object ● ProductAttributeAssign object ● ProductAttributeAssignmentUpdate object ● ProductAttributeUnassign object ● ProductTypeCountableEdge object ● ProductTypeCreate object ● ProductTypeDelete object ● ProductTypeReorderAttributes object ● ProductTypeUpdate object
Implemented By
_Entity union