Skip to main content
Anchor to ProductVariantConnection

ProductVariantConnection

connection

An auto-generated type for paginating through multiple ProductVariants.

Anchor to Fields with this connectionFields with this connection

•OBJECT

A product and the subset of associated variants that are part of this delivery profile.

•OBJECT

A list of products and product variants that the discount can have as a prerequisite or a list of products and product variants to which the discount can be applied.

•OBJECT

A product variant's inventory information across all locations. The inventory item connects the product variant to its inventory levels at different locations, tracking stock keeping unit (SKU), whether quantities are tracked, shipping requirements, and customs information for the product.

Learn more about inventory object relationships.

•OBJECT

The items to which this price rule applies. This may be multiple products, product variants, collections or combinations of the aforementioned.

•OBJECT

Single or multiple line item products, product variants or collections required for the price rule to be applicable, can also be provided in combination.

•OBJECT

The Product object lets you manage products in a merchant’s store.

Products are the goods and services that merchants offer to customers. They can include various details such as title, description, price, images, and options such as size or color. You can use product variants to create or update different versions of the same product. You can also add or update product media. Products can be organized by grouping them into a collection.

Learn more about working with Shopify's product model, including limitations and considerations.

•OBJECT

A selling method that defines how products can be sold through purchase options like subscriptions, pre-orders, or try-before-you-buy. Groups one or more SellingPlan objects that share the same selling method and options.

The group provides buyer-facing labels and merchant-facing descriptions for the selling method. Associates Product and ProductVariant objects with selling plan groups to offer them through these purchase options.


Caution

Selling plan groups and their associated records are automatically deleted 48 hours after a merchant uninstalls the App that created them. Back up these records if you need to restore them later.


Deprecated fields with this connection


Was this section helpful?

Anchor to Queries with this connectionQueries with this connection

•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.

Arguments

•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.

nametypedescriptionacceptable_valuesdefault_valueexample_use
defaultstringFilter by a case-insensitive search of multiple fields
in a document.- query=Bob Norman
- query=title:green hoodie
barcodestringFilter by the product variant barcode
field.- barcode:ABC-abc-123
collectionstringFilter by the ID of the collection
that the product variant belongs to.- collection:465903092033
delivery_profile_ididFilter by the product variant delivery profile ID
(ProductVariant.deliveryProfile.id).-
delivery_profile_id:108179161409
exclude_compositebooleanFilter by product variants that aren't composites.- exclude_composite:true
exclude_variants_with_componentsbooleanFilter by whether there are components
that are associated with the product variants in a bundle.-
exclude_variants_with_components:true
gift_cardbooleanFilter by the product isGiftCard
field.- gift_card:true
ididFilter by id range.- id:1234
- id:>=1234
- id:<=1234
inventory_quantityintegerFilter by an aggregate of inventory across
all locations where the product variant is stocked.-
inventory_quantity:10
location_ididFilter by the [location
ID](https://shopify.dev/api/admin-graphql/latest/objects/Location#field-id)
for the product variant.- location_id:88511152449
managedbooleanFilter by whether there is fulfillment service
tracking associated with the product variants.- managed:true
managed_bystringFilter by the fulfillment service that tracks the
number of items in stock for the product variant.-
managed_by:shopify
option1stringFilter by a custom property that a shop owner uses to
define product variants.- option1:small
option2stringFilter by a custom property that a shop owner uses to
define product variants.- option2:medium
option3stringFilter by a custom property that a shop owner uses to
define product variants.- option3:large
product_ididFilter by the product id
field.- product_id:8474977763649
product_idsstringFilter by a comma-separated list of product IDs.
- product_ids:8474977763649,8474977796417
product_publication_statusstringFilter by channel approval process
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. For simple visibility checks, use published_status
instead.- * {channel_app_id}-approved
- `*
{channel_app_id}-rejected<br/> - * {channel_app_id}-needs_action`
-
* {channel_app_id}-awaiting_review
- `*
{channel_app_id}-published<br/> - * {channel_app_id}-demoted<br/> - *
{channel_app_id}-scheduled<br/> - *
{channel_app_id}-provisionally_published`-
product_publication_status:189769876-approved
product_statusstringFilter by a comma-separated list of product statuses.
- product_status:ACTIVE,DRAFT
product_typestringFilter by the product type that's associated with
the product variants.- product_type:snowboard
-
product_type:snowboard,skis
- `product_type:snowboard OR
product_type:skis`
publishable_statusstringDeprecated: This parameter is deprecated
as of 2025-12 and will be removed in a future API version. Use published_status
for visibility checks. Filter by the publishable status of the resource on a
channel. The value is a composite of the [channel app
ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price)
(Channel.app.id) and one of the valid status values.- `*
{channel_app_id}-unset<br/> - * {channel_app_id}-pending<br/> - *
{channel_app_id}-approved<br/> - * {channel_app_id}-not_approved`-
publishable_status:580111-unset
- publishable_status:580111-pending
published_statusstringFilter resources by their visibility and
publication state on a channel. Online store channel filtering: -
online_store_channel: Returns all resources in the online store channel,
regardless of publication status. - published/visible: Returns resources
that are published to the online store. - unpublished: Returns resources
that are not published to the online store. Channel-specific filtering using
a channel ID, channel handle, [channel app
ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price)
(Channel.app.id), or app handle with suffixes: -
{id_or_handle}-published: Returns resources published to the specified
channel. - {id_or_handle}-visible: Same as {id_or_handle}-published
(kept for backwards compatibility). - {id_or_handle}-intended: Returns
resources added to the channel but not yet published. -
{id_or_handle}-hidden: Returns resources not added to the channel or not
published. Other: - unavailable: Returns resources not published to any
channel.- online_store_channel
- published
- visible
  • unpublished
    - * {channel_id_or_handle}-published
    - * {channel_id_or_handle}-visible
    - * {channel_id_or_handle}-intended
    - * {channel_id_or_handle}-hidden
    - * {channel_app_id_or_handle}-published
    - * {channel_app_id_or_handle}-visible
    - * {channel_app_id_or_handle}-intended
    - * {channel_app_id_or_handle}-hidden
    - unavailable | | - published_status:online_store_channel
    - published_status:published
    - published_status:580111-published
  • published_status:580111-hidden
    - published_status:my-channel-handle-published
    - published_status:unavailable | | requires_components | boolean | Filter by whether the product variant can only be purchased with components. Learn more. | | | - requires_components:true | | sku | string | Filter by the product variant sku field. Learn more about SKUs. | | | - sku:XYZ-12345 | | tag | string | Filter objects by the tag field. | | | - tag:my_tag | | tag_not | string | Filter by objects that don’t have the specified tag. | | | - tag_not:my_tag | | taxable | boolean | Filter by the product variant taxable field. | | | - taxable:false | | title | string | Filter by the product variant title field. | | | - title:ice | | updated_at | time | Filter by date and time when the product variant was updated. | | | - updated_at:>2020-10-21T23:39:20Z
    - updated_at:<now
    - updated_at:<=2024 | | vendor | string | Filter by the origin or source of the product variant. Learn more about vendors and managing vendor information. | | | - vendor:Snowdevil
    - vendor:Snowdevil,Icedevil
    - vendor:Snowdevil OR vendor:Icedevil | You can apply one or more filters to a query. Learn more about Shopify API search syntax.
•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?