Product

A product represents an individual item for sale in a Shopify store. Products are often physical, but they don't have to be. For example, a digital download (such as a movie, music or ebook file) also qualifies as a product, as do services (such as equipment rental, work for hire, customization of another product or an extended warranty).

Required access

unauthenticated_read_product_listings access scope

Show definition
"""
A product represents an individual item for sale in a Shopify store. Products are often physical, but they don't have to be.
For example, a digital download (such as a movie, music or ebook file) also
qualifies as a product, as do services (such as equipment rental, work for hire,
customization of another product or an extended warranty).
"""
type Product implements HasMetafields & Node {
  """
  Indicates if at least one product variant is available for sale.
  """
  availableForSale: Boolean!
  """
  List of collections a product belongs to.
  """
  collections(
    """
    Returns the elements that come after the specified cursor.
    """
    after: String
    """
    Returns the elements that come before the specified cursor.
    """
    before: String
    """
    Returns up to the first `n` elements from the list.
    """
    first: Int
    """
    Returns up to the last `n` elements from the list.
    """
    last: Int
    """
    Reverse the order of the underlying list.
    """
    reverse: Boolean = false
  ): CollectionConnection!
  """
  The date and time when the product was created.
  """
  createdAt: DateTime!
  """
  Stripped description of the product, single line with HTML tags removed.
  """
  description(
    """
    Truncates string after the given length.
    """
    truncateAt: Int
  ): String!
  """
  The description of the product, complete with HTML formatting.
  """
  descriptionHtml: HTML!
  """
  A human-friendly unique string for the Product automatically generated from its title.
  They are used by the Liquid templating language to refer to objects.
  """
  handle: String!
  """
  Globally unique identifier.
  """
  id: ID!
  """
  List of images associated with the product.
  """
  images(
    """
    Returns the elements that come after the specified cursor.
    """
    after: String
    """
    Returns the elements that come before the specified cursor.
    """
    before: String
    """
    Crops the image according to the specified region. This argument is
    deprecated: Use `crop` on `Image.transformedSrc` instead.
    """
    crop: CropRegion
    """
    Returns up to the first `n` elements from the list.
    """
    first: Int
    """
    Returns up to the last `n` elements from the list.
    """
    last: Int
    """
    Image height in pixels between 1 and 2048. This argument is deprecated: Use
    `maxHeight` on `Image.transformedSrc` instead.
    """
    maxHeight: Int
    """
    Image width in pixels between 1 and 2048. This argument is deprecated: Use `maxWidth` on `Image.transformedSrc` instead.
    """
    maxWidth: Int
    """
    Reverse the order of the underlying list.
    """
    reverse: Boolean = false
    """
    Image size multiplier for high-resolution retina displays. Must be between 1
    and 3. This argument is deprecated: Use `scale` on `Image.transformedSrc` instead.
    """
    scale: Int = 1
    """
    Sort the underlying list by the given key.
    """
    sortKey: ProductImageSortKeys = POSITION
  ): ImageConnection!
  """
  The metafield associated with the resource.
  """
  metafield(
    """
    Identifier for the metafield (maximum of 30 characters).
    """
    key: String!
    """
    Container for a set of metafields (maximum of 20 characters).
    """
    namespace: String!
  ): Metafield
  """
  A paginated list of metafields associated with the resource.
  """
  metafields(
    """
    Returns the elements that come after the specified cursor.
    """
    after: String
    """
    Returns the elements that come before the specified cursor.
    """
    before: String
    """
    Returns up to the first `n` elements from the list.
    """
    first: Int
    """
    Returns up to the last `n` elements from the list.
    """
    last: Int
    """
    Container for a set of metafields (maximum of 20 characters).
    """
    namespace: String
    """
    Reverse the order of the underlying list.
    """
    reverse: Boolean = false
  ): MetafieldConnection!
  """
  The online store URL for the product.
  A value of `null` indicates that the product is not published to the Online Store sales channel.
  """
  onlineStoreUrl: URL
  """
  List of custom product options (maximum of 3 per product).
  """
  options(
    """
    Truncate the array result to this size.
    """
    first: Int
  ): [ProductOption!]!
  """
  List of price ranges in the presentment currencies for this shop.
  """
  presentmentPriceRanges(
    """
    Returns the elements that come after the specified cursor.
    """
    after: String
    """
    Returns the elements that come before the specified cursor.
    """
    before: String
    """
    Returns up to the first `n` elements from the list.
    """
    first: Int
    """
    Returns up to the last `n` elements from the list.
    """
    last: Int
    """
    Specifies the presentment currencies to return a price range in.
    """
    presentmentCurrencies: [CurrencyCode!]
    """
    Reverse the order of the underlying list.
    """
    reverse: Boolean = false
  ): ProductPriceRangeConnection!
  """
  The price range.
  """
  priceRange: ProductPriceRange!
  """
  A categorization that a product can be tagged with, commonly used for filtering and searching.
  """
  productType: String!
  """
  The date and time when the product was published to the channel.
  """
  publishedAt: DateTime!
  """
  A categorization that a product can be tagged with, commonly used for filtering and searching.
  Additional access scope required for private apps: unauthenticated_read_product_tags.
  """
  tags: [String!]!
  """
  The product’s title.
  """
  title: String!
  """
  The date and time when the product was last modified.
  """
  updatedAt: DateTime!
  """
  Find a product’s variant based on its selected options.
  This is useful for converting a user’s selection of product options into a single matching variant.
  If there is not a variant for the selected options, `null` will be returned.
  """
  variantBySelectedOptions(selectedOptions: [SelectedOptionInput!]!): ProductVariant
  """
  List of the product’s variants.
  """
  variants(
    """
    Returns the elements that come after the specified cursor.
    """
    after: String
    """
    Returns the elements that come before the specified cursor.
    """
    before: String
    """
    Returns up to the first `n` elements from the list.
    """
    first: Int
    """
    Returns up to the last `n` elements from the list.
    """
    last: Int
    """
    Reverse the order of the underlying list.
    """
    reverse: Boolean = false
    """
    Sort the underlying list by the given key.
    """
    sortKey: ProductVariantSortKeys = POSITION
  ): ProductVariantConnection!
  """
  The product’s vendor name.
  """
  vendor: String!
}

Implements

Connections

collections (CollectionConnection!)

List of collections a product belongs to.

after ( String )

Returns the elements that come after the specified cursor.

before ( String )

Returns the elements that come before the specified cursor.

first ( Int )

Returns up to the first n elements from the list.

last ( Int )

Returns up to the last n elements from the list.

reverse ( Boolean )

Reverse the order of the underlying list.
Default value: true

images (ImageConnection!)

List of images associated with the product.

after ( String )

Returns the elements that come after the specified cursor.

before ( String )

Returns the elements that come before the specified cursor.

crop ( CropRegion )

Crops the image according to the specified region. This argument is deprecated: Use crop on Image.transformedSrc instead.

first ( Int )

Returns up to the first n elements from the list.

last ( Int )

Returns up to the last n elements from the list.

maxHeight ( Int )

Image height in pixels between 1 and 2048. This argument is deprecated: Use maxHeight on Image.transformedSrc instead.

maxWidth ( Int )

Image width in pixels between 1 and 2048. This argument is deprecated: Use maxWidth on Image.transformedSrc instead.

reverse ( Boolean )

Reverse the order of the underlying list.
Default value: true

scale ( Int )

Image size multiplier for high-resolution retina displays. Must be between 1 and 3. This argument is deprecated: Use scale on Image.transformedSrc instead.
Default value: true

sortKey ( ProductImageSortKeys )

Sort the underlying list by the given key.
Default value: true

metafields (MetafieldConnection!)

A paginated list of metafields associated with the resource.

after ( String )

Returns the elements that come after the specified cursor.

before ( String )

Returns the elements that come before the specified cursor.

first ( Int )

Returns up to the first n elements from the list.

last ( Int )

Returns up to the last n elements from the list.

namespace ( String )

Container for a set of metafields (maximum of 20 characters).

reverse ( Boolean )

Reverse the order of the underlying list.
Default value: true

presentmentPriceRanges (ProductPriceRangeConnection!)

List of price ranges in the presentment currencies for this shop.

after ( String )

Returns the elements that come after the specified cursor.

before ( String )

Returns the elements that come before the specified cursor.

first ( Int )

Returns up to the first n elements from the list.

last ( Int )

Returns up to the last n elements from the list.

presentmentCurrencies ( [CurrencyCode!] )

Specifies the presentment currencies to return a price range in.

reverse ( Boolean )

Reverse the order of the underlying list.
Default value: true

variants (ProductVariantConnection!)

List of the product’s variants.

after ( String )

Returns the elements that come after the specified cursor.

before ( String )

Returns the elements that come before the specified cursor.

first ( Int )

Returns up to the first n elements from the list.

last ( Int )

Returns up to the last n elements from the list.

reverse ( Boolean )

Reverse the order of the underlying list.
Default value: true

sortKey ( ProductVariantSortKeys )

Sort the underlying list by the given key.
Default value: true

Fields

availableForSale (Boolean!)

Indicates if at least one product variant is available for sale.

createdAt (DateTime!)

The date and time when the product was created.

description (String!)

Stripped description of the product, single line with HTML tags removed.

truncateAt ( Int )

Truncates string after the given length.

descriptionHtml (HTML!)

The description of the product, complete with HTML formatting.

handle (String!)

A human-friendly unique string for the Product automatically generated from its title. They are used by the Liquid templating language to refer to objects.

id (ID!)

Globally unique identifier.

metafield (Metafield)

The metafield associated with the resource.

key ( String! ) required

Identifier for the metafield (maximum of 30 characters).

namespace ( String! ) required

Container for a set of metafields (maximum of 20 characters).

onlineStoreUrl (URL)

The online store URL for the product. A value of null indicates that the product is not published to the Online Store sales channel.

options ([ProductOption!]!)

List of custom product options (maximum of 3 per product).

first ( Int )

Truncate the array result to this size.

priceRange (ProductPriceRange!)

The price range.

productType (String!)

A categorization that a product can be tagged with, commonly used for filtering and searching.

publishedAt (DateTime!)

The date and time when the product was published to the channel.

tags ([String!]!)

A categorization that a product can be tagged with, commonly used for filtering and searching. Additional access scope required for private apps: unauthenticated_read_product_tags.

title (String!)

The product’s title.

updatedAt (DateTime!)

The date and time when the product was last modified.

variantBySelectedOptions (ProductVariant)

Find a product’s variant based on its selected options. This is useful for converting a user’s selection of product options into a single matching variant. If there is not a variant for the selected options, null will be returned.

selectedOptions ( [SelectedOptionInput!]! ) required
vendor (String!)

The product’s vendor name.

A product represents an individual item for sale in a Shopify store. Products are often physical, but they don't have to be. For example, a digital download (such as a movie, music or ebook file) also qualifies as a product, as do services (such as equipment rental, work for hire, customization of another product or an extended warranty).

Required access

unauthenticated_read_product_listings access scope

Show definition
"""
A product represents an individual item for sale in a Shopify store. Products are often physical, but they don't have to be.
For example, a digital download (such as a movie, music or ebook file) also
qualifies as a product, as do services (such as equipment rental, work for hire,
customization of another product or an extended warranty).
"""
type Product implements HasMetafields & Node {
  """
  Indicates if at least one product variant is available for sale.
  """
  availableForSale: Boolean!
  """
  List of collections a product belongs to.
  """
  collections(
    """
    Returns the elements that come after the specified cursor.
    """
    after: String
    """
    Returns the elements that come before the specified cursor.
    """
    before: String
    """
    Returns up to the first `n` elements from the list.
    """
    first: Int
    """
    Returns up to the last `n` elements from the list.
    """
    last: Int
    """
    Reverse the order of the underlying list.
    """
    reverse: Boolean = false
  ): CollectionConnection!
  """
  The date and time when the product was created.
  """
  createdAt: DateTime!
  """
  Stripped description of the product, single line with HTML tags removed.
  """
  description(
    """
    Truncates string after the given length.
    """
    truncateAt: Int
  ): String!
  """
  The description of the product, complete with HTML formatting.
  """
  descriptionHtml: HTML!
  """
  A human-friendly unique string for the Product automatically generated from its title.
  They are used by the Liquid templating language to refer to objects.
  """
  handle: String!
  """
  Globally unique identifier.
  """
  id: ID!
  """
  List of images associated with the product.
  """
  images(
    """
    Returns the elements that come after the specified cursor.
    """
    after: String
    """
    Returns the elements that come before the specified cursor.
    """
    before: String
    """
    Crops the image according to the specified region. This argument is
    deprecated: Use `crop` on `Image.transformedSrc` instead.
    """
    crop: CropRegion
    """
    Returns up to the first `n` elements from the list.
    """
    first: Int
    """
    Returns up to the last `n` elements from the list.
    """
    last: Int
    """
    Image height in pixels between 1 and 2048. This argument is deprecated: Use
    `maxHeight` on `Image.transformedSrc` instead.
    """
    maxHeight: Int
    """
    Image width in pixels between 1 and 2048. This argument is deprecated: Use `maxWidth` on `Image.transformedSrc` instead.
    """
    maxWidth: Int
    """
    Reverse the order of the underlying list.
    """
    reverse: Boolean = false
    """
    Image size multiplier for high-resolution retina displays. Must be between 1
    and 3. This argument is deprecated: Use `scale` on `Image.transformedSrc` instead.
    """
    scale: Int = 1
    """
    Sort the underlying list by the given key.
    """
    sortKey: ProductImageSortKeys = POSITION
  ): ImageConnection!
  """
  The metafield associated with the resource.
  """
  metafield(
    """
    Identifier for the metafield (maximum of 30 characters).
    """
    key: String!
    """
    Container for a set of metafields (maximum of 20 characters).
    """
    namespace: String!
  ): Metafield
  """
  A paginated list of metafields associated with the resource.
  """
  metafields(
    """
    Returns the elements that come after the specified cursor.
    """
    after: String
    """
    Returns the elements that come before the specified cursor.
    """
    before: String
    """
    Returns up to the first `n` elements from the list.
    """
    first: Int
    """
    Returns up to the last `n` elements from the list.
    """
    last: Int
    """
    Container for a set of metafields (maximum of 20 characters).
    """
    namespace: String
    """
    Reverse the order of the underlying list.
    """
    reverse: Boolean = false
  ): MetafieldConnection!
  """
  The online store URL for the product.
  A value of `null` indicates that the product is not published to the Online Store sales channel.
  """
  onlineStoreUrl: URL
  """
  List of custom product options (maximum of 3 per product).
  """
  options(
    """
    Truncate the array result to this size.
    """
    first: Int
  ): [ProductOption!]!
  """
  List of price ranges in the presentment currencies for this shop.
  """
  presentmentPriceRanges(
    """
    Returns the elements that come after the specified cursor.
    """
    after: String
    """
    Returns the elements that come before the specified cursor.
    """
    before: String
    """
    Returns up to the first `n` elements from the list.
    """
    first: Int
    """
    Returns up to the last `n` elements from the list.
    """
    last: Int
    """
    Specifies the presentment currencies to return a price range in.
    """
    presentmentCurrencies: [CurrencyCode!]
    """
    Reverse the order of the underlying list.
    """
    reverse: Boolean = false
  ): ProductPriceRangeConnection!
  """
  The price range.
  """
  priceRange: ProductPriceRange!
  """
  A categorization that a product can be tagged with, commonly used for filtering and searching.
  """
  productType: String!
  """
  The date and time when the product was published to the channel.
  """
  publishedAt: DateTime!
  """
  A categorization that a product can be tagged with, commonly used for filtering and searching.
  Additional access scope required for private apps: unauthenticated_read_product_tags.
  """
  tags: [String!]!
  """
  The product’s title.
  """
  title: String!
  """
  The date and time when the product was last modified.
  """
  updatedAt: DateTime!
  """
  Find a product’s variant based on its selected options.
  This is useful for converting a user’s selection of product options into a single matching variant.
  If there is not a variant for the selected options, `null` will be returned.
  """
  variantBySelectedOptions(selectedOptions: [SelectedOptionInput!]!): ProductVariant
  """
  List of the product’s variants.
  """
  variants(
    """
    Returns the elements that come after the specified cursor.
    """
    after: String
    """
    Returns the elements that come before the specified cursor.
    """
    before: String
    """
    Returns up to the first `n` elements from the list.
    """
    first: Int
    """
    Returns up to the last `n` elements from the list.
    """
    last: Int
    """
    Reverse the order of the underlying list.
    """
    reverse: Boolean = false
    """
    Sort the underlying list by the given key.
    """
    sortKey: ProductVariantSortKeys = POSITION
  ): ProductVariantConnection!
  """
  The product’s vendor name.
  """
  vendor: String!
}

Implements

Connections

collections (CollectionConnection!)

List of collections a product belongs to.

after ( String )

Returns the elements that come after the specified cursor.

before ( String )

Returns the elements that come before the specified cursor.

first ( Int )

Returns up to the first n elements from the list.

last ( Int )

Returns up to the last n elements from the list.

reverse ( Boolean )

Reverse the order of the underlying list.
Default value: true

images (ImageConnection!)

List of images associated with the product.

after ( String )

Returns the elements that come after the specified cursor.

before ( String )

Returns the elements that come before the specified cursor.

crop ( CropRegion )

Crops the image according to the specified region. This argument is deprecated: Use crop on Image.transformedSrc instead.

first ( Int )

Returns up to the first n elements from the list.

last ( Int )

Returns up to the last n elements from the list.

maxHeight ( Int )

Image height in pixels between 1 and 2048. This argument is deprecated: Use maxHeight on Image.transformedSrc instead.

maxWidth ( Int )

Image width in pixels between 1 and 2048. This argument is deprecated: Use maxWidth on Image.transformedSrc instead.

reverse ( Boolean )

Reverse the order of the underlying list.
Default value: true

scale ( Int )

Image size multiplier for high-resolution retina displays. Must be between 1 and 3. This argument is deprecated: Use scale on Image.transformedSrc instead.
Default value: true

sortKey ( ProductImageSortKeys )

Sort the underlying list by the given key.
Default value: true

metafields (MetafieldConnection!)

A paginated list of metafields associated with the resource.

after ( String )

Returns the elements that come after the specified cursor.

before ( String )

Returns the elements that come before the specified cursor.

first ( Int )

Returns up to the first n elements from the list.

last ( Int )

Returns up to the last n elements from the list.

namespace ( String )

Container for a set of metafields (maximum of 20 characters).

reverse ( Boolean )

Reverse the order of the underlying list.
Default value: true

presentmentPriceRanges (ProductPriceRangeConnection!)

List of price ranges in the presentment currencies for this shop.

after ( String )

Returns the elements that come after the specified cursor.

before ( String )

Returns the elements that come before the specified cursor.

first ( Int )

Returns up to the first n elements from the list.

last ( Int )

Returns up to the last n elements from the list.

presentmentCurrencies ( [CurrencyCode!] )

Specifies the presentment currencies to return a price range in.

reverse ( Boolean )

Reverse the order of the underlying list.
Default value: true

variants (ProductVariantConnection!)

List of the product’s variants.

after ( String )

Returns the elements that come after the specified cursor.

before ( String )

Returns the elements that come before the specified cursor.

first ( Int )

Returns up to the first n elements from the list.

last ( Int )

Returns up to the last n elements from the list.

reverse ( Boolean )

Reverse the order of the underlying list.
Default value: true

sortKey ( ProductVariantSortKeys )

Sort the underlying list by the given key.
Default value: true

Fields

availableForSale (Boolean!)

Indicates if at least one product variant is available for sale.

createdAt (DateTime!)

The date and time when the product was created.

description (String!)

Stripped description of the product, single line with HTML tags removed.

truncateAt ( Int )

Truncates string after the given length.

descriptionHtml (HTML!)

The description of the product, complete with HTML formatting.

handle (String!)

A human-friendly unique string for the Product automatically generated from its title. They are used by the Liquid templating language to refer to objects.

id (ID!)

Globally unique identifier.

metafield (Metafield)

The metafield associated with the resource.

key ( String! ) required

Identifier for the metafield (maximum of 30 characters).

namespace ( String! ) required

Container for a set of metafields (maximum of 20 characters).

onlineStoreUrl (URL)

The online store URL for the product. A value of null indicates that the product is not published to the Online Store sales channel.

options ([ProductOption!]!)

List of custom product options (maximum of 3 per product).

first ( Int )

Truncate the array result to this size.

priceRange (ProductPriceRange!)

The price range.

productType (String!)

A categorization that a product can be tagged with, commonly used for filtering and searching.

publishedAt (DateTime!)

The date and time when the product was published to the channel.

tags ([String!]!)

A categorization that a product can be tagged with, commonly used for filtering and searching. Additional access scope required for private apps: unauthenticated_read_product_tags.

title (String!)

The product’s title.

updatedAt (DateTime!)

The date and time when the product was last modified.

variantBySelectedOptions (ProductVariant)

Find a product’s variant based on its selected options. This is useful for converting a user’s selection of product options into a single matching variant. If there is not a variant for the selected options, null will be returned.

selectedOptions ( [SelectedOptionInput!]! ) required
vendor (String!)

The product’s vendor name.

Sign up for a Partner account to get started.

Sign up