Skip to main content
query

Retrieves a list of product variants associated with a product.

A product variant is a specific version of a product that comes in more than one option, such as size or color. For example, if a merchant sells t-shirts with options for size and color, then a small, blue t-shirt would be one product variant and a large, blue t-shirt would be another.

Use the productVariants query when you need to:

  • Search for product variants by attributes such as SKU, barcode, or inventory quantity.
  • Filter product variants by attributes, such as whether they're gift cards or have custom metafields.
  • Fetch product variants for bulk operations, such as updating prices or inventory.
  • Preload data for product variants, such as inventory items, selected options, or associated products.

The productVariants query supports pagination to handle large product catalogs and saved searches for frequently used product variant queries.

The productVariants query returns product variants with their associated metadata, including:

  • Basic product variant information (for example, title, SKU, barcode, price, and inventory)
  • Media attachments (for example, images and videos)
  • Associated products, selling plans, bundles, and metafields

Learn more about working with Shopify's product model.

Anchor to Arguments

ProductVariantConnection arguments

ProductVariantConnection!
String

The elements that come after the specified cursor.

String

The elements that come before the specified cursor.

Int

The first n elements from the paginated list.

Int

The last n elements from the paginated list.

String

A filter made up of terms, connectives, modifiers, and comparators. You can apply one or more filters to a query. Learn more about Shopify API search syntax.

Anchor to default
string

Filter by a case-insensitive search of multiple fields in a document.

Example:

  • query=Bob Norman
  • query=title:green hoodie
Anchor to barcode
string

Filter by the product variant barcode field.

Example:

  • barcode:ABC-abc-123
Anchor to collection
string

Filter by the ID of the collection that the product variant belongs to.

Example:

  • collection:465903092033
Anchor to delivery_profile_id
id

Filter by the product variant delivery profile ID (ProductVariant.deliveryProfile.id).

Example:

  • delivery_profile_id:108179161409
Anchor to exclude_composite
boolean

Filter by product variants that aren't composites.

Example:

  • exclude_composite:true
Anchor to exclude_variants_with_components
boolean

Filter by whether there are components that are associated with the product variants in a bundle.

Example:

  • exclude_variants_with_components:true
Anchor to gift_card
boolean

Filter by the product isGiftCard field.

Example:

  • gift_card:true
id

Filter by id range.

Example:

  • id:1234
  • id:>=1234
  • id:<=1234
Anchor to inventory_quantity
integer

Filter by an aggregate of inventory across all locations where the product variant is stocked.

Example:

  • inventory_quantity:10
Anchor to location_id
id

Filter by the location ID for the product variant.

Example:

  • location_id:88511152449
Anchor to managed
boolean

Filter by whether there is fulfillment service tracking associated with the product variants.

Example:

  • managed:true
Anchor to managed_by
string

Filter by the fulfillment service that tracks the number of items in stock for the product variant.

Example:

  • managed_by:shopify
Anchor to option1
string

Filter by a custom property that a shop owner uses to define product variants.

Example:

  • option1:small
Anchor to option2
string

Filter by a custom property that a shop owner uses to define product variants.

Example:

  • option2:medium
Anchor to option3
string

Filter by a custom property that a shop owner uses to define product variants.

Example:

  • option3:large
Anchor to product_id
id

Filter by the product id field.

Example:

  • product_id:8474977763649
Anchor to product_ids
string

Filter by a comma-separated list of product IDs.

Example:

  • product_ids:8474977763649,8474977796417
Anchor to product_publication_status
string

Filter by the publication status of the resource on a channel, such as the online store. The value is a composite of the channel app ID (Channel.app.id) and one of the valid values.

Valid values:

  • approved
  • rejected
  • needs_action
  • awaiting_review
  • published
  • demoted
  • scheduled
  • provisionally_published

Example:

  • publication_status:189769876-approved
Anchor to product_status
string

Filter by a comma-separated list of product statuses.

Example:

  • product_status:ACTIVE,DRAFT
Anchor to product_type
string

Filter by the product type that's associated with the product variants.

Example:

  • product_type:snowboard
Anchor to publishable_status
string

Filter by the publishable status of the resource on a channel, such as the online store. The value is a composite of either the channel app ID (Channel.app.id) or channel name and one of the valid values.

Valid values:

  • online_store_channel
  • published
  • unpublished
  • visible
  • unavailable
  • hidden
  • intended
  • visible

Example:

  • publishable_status:published
  • publishable_status:189769876-visible
  • publishable_status:pos-hidden
Anchor to published_status
string

Filter by the published status of the resource on a channel, such as the online store.

Valid values:

  • unset
  • pending
  • approved
  • not approved

Example:

  • published_status:approved
Anchor to requires_components
boolean

Filter by whether the product variant can only be purchased with components. Learn more.

Example:

  • requires_components:true
string

Filter by the product variant sku field. Learn more about SKUs.

Example:

  • sku:XYZ-12345
string

Filter objects by the tag field.

Example:

  • tag:my_tag
Anchor to tag_not
string

Filter by objects that don’t have the specified tag.

Example:

  • tag_not:my_tag
Anchor to taxable
boolean

Filter by the product variant taxable field.

Example:

  • taxable:false
string

Filter by the product variant title field.

Example:

  • title:ice
Anchor to updated_at
time

Filter by date and time when the product variant was updated.

Example:

  • updated_at:>2020-10-21T23:39:20Z
  • updated_at:<now
  • updated_at:<=2024
string

Filter by the origin or source of the product variant. Learn more about vendors and managing vendor information.

Example:

  • vendor:Snowdevil
  • vendor:Snowdevil OR vendor:Icedevil
Boolean
Default:false

Reverse the order of the underlying list.

ID

The ID of a saved search. The search’s query string is used as the query argument.

ProductVariantSortKeys
Default:ID

Sort the underlying list using a key. If your query is slow or returns an error, then try specifying a sort key that matches the field used in the search.


Was this section helpful?

[ProductVariantEdge!]!
non-null

The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node.

[ProductVariant!]!
non-null

A list of nodes that are contained in ProductVariantEdge. You can fetch data about an individual node, or you can follow the edges to fetch data about a collection of related nodes. At each node, you specify the fields that you want to retrieve.

PageInfo!
non-null

An object that’s used to retrieve cursor information about the current page.


Was this section helpful?