Product Variant 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.
- Anchor to PriceRuleLineItemPrerequisites.productVariantsPrice•OBJECT
Rule Line Item Prerequisites.productVariants 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
Productobject 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
The product's component information.
- •OBJECT
The product component information.
- •OBJECT
The product component information.
- •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
objects that share the same selling method and options.The group provides buyer-facing labels and merchant-facing descriptions for the selling method. Associates
Productandobjects with selling plan groups to offer them through these purchase options.CautionSelling plan groups and their associated records are automatically deleted 48 hours after a merchant uninstalls the
Appthat created them. Back up these records if you need to restore them later.Caution:Selling plan groups and their associated records are automatically deleted 48 hours after a merchant uninstalls the
Appthat created them. Back up these records if you need to restore them later.Caution: Selling plan groups and their associated records are automatically deleted 48 hours after a merchant uninstalls the <a href="https://shopify.dev/docs/api/admin-graphql/latest/objects/App"><code>App</code></a> that created them. Back up these records if you need to restore them later.
- Anchor to SubscriptionBillingAttemptInsufficientStockProductVariantsError.insufficientStockProductVariantsSubscription•OBJECT
Billing Attempt Insufficient Stock Product Variants Error.insufficientStockProductVariants An inventory error caused by an issue with one or more of the contract merchandise lines.
- Anchor to SubscriptionBillingAttemptInventoryError.insufficientStockProductVariantsSubscription•OBJECT
Billing Attempt Inventory Error.insufficientStockProductVariants An inventory-related error that occurred during a subscription billing attempt.
Deprecated fields with this connection
- : deprecated
- : deprecated
- •OBJECTDeprecated
Anchor to Queries with this connectionQueries with this connection
- productVariants (ProductVariantConnection!)
- •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
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
query supports pagination to handle large product catalogs and saved searches for frequently used product variant queries.The
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 afterafter•String
The elements that come after the specified cursor.
- Anchor to beforebefore•String
The elements that come before the specified cursor.
- Anchor to firstfirst•Int
The first
nelements from the paginated list.- Anchor to lastlast•Int
The last
nelements from the paginated list.- Anchor to queryquery•String
A filter made up of terms, connectives, modifiers, and comparators.
name type description acceptable_values default_value example_use default string Filter by a case-insensitive search of multiple fields in a document. - query=Bob Norman
-query=title:green hoodiebarcode string Filter by the product variant barcodefield. - collection string Filter by the ID of the collection that the product variant belongs to. - collection:465903092033delivery_profile_id id Filter by the product variant delivery profile ID ( ).- exclude_composite boolean Filter by product variants that aren't composites. - exclude_variants_with_components boolean Filter by whether there are components that are associated with the product variants in a bundle. - gift_card boolean Filter by the product field. - id id Filter by idrange.- id:1234
-id:>=1234
-id:<=1234inventory_quantity integer Filter by an aggregate of inventory across all locations where the product variant is stocked. - location_id id Filter by the [location ID](https://shopify.dev/api/admin-graphql/latest/objects/Location#field-id) for the product variant. - managed boolean Filter by whether there is fulfillment service tracking associated with the product variants. - managed:truemanaged_by string Filter by the fulfillment service that tracks the number of items in stock for the product variant. - option1 string Filter by a custom property that a shop owner uses to define product variants. - option1:smalloption2 string Filter by a custom property that a shop owner uses to define product variants. - option2:mediumoption3 string Filter by a custom property that a shop owner uses to define product variants. - option3:largeproduct_id id Filter by the product idfield. - product_ids string Filter by a comma-separated list of product IDs. - product_publication_status string Filter by channel approval process status of the resource on a channel, such as the online store. The value is a composite of the channel appID( Channel.app.id) and one of the valid values. For simple visibility checks, use published_statusinstead. -
- `*{channel_app_id}-rejected * {channel_app_id}-needs_action`
-
- `*{channel_app_id}-published * {channel_app_id}-demoted*{channel_app_id}-scheduled *{channel_app_id}-provisionally_published` - product_status string Filter by a comma-separated list of product statuses. - product_type string Filter by the product type that's associated with the product variants. -
-
- `product_type:snowboard ORproduct_type:skis` publishable_status string Deprecated: 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 appID](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 * {channel_app_id}-pending*{channel_app_id}-approved * {channel_app_id}-not_approved`-
-published_status string Filter resources by their visibility and publication state on a channel. Online store channel filtering: - : Returns all resources in the online store channel,regardless of publication status. - published/visible: Returns resourcesthat are published to the online store. - unpublished: Returns resourcesthat are not published to the online store. Channel-specific filtering using a channel ID, channel handle, [channel appID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) ( Channel.app.id), or app handle with suffixes: -: Returns resources published to the specifiedchannel. - : Same as(kept for backwards compatibility). - : Returnsresources added to the channel but not yet published. - : Returns resources not added to the channel or notpublished. Other: - unavailable: Returns resources not published to anychannel. -
-published
-visibleunpublished
-
-
-
-
-
-
-
-
-unavailable| | -
-
-
-
-| | requires_components | boolean | Filter by whether the product variant can only be purchased with components. Learn more. | | | -| | sku | string | Filter by the product variantskufield. Learn more about SKUs. | | | -| | tag | string | Filter objects by thetagfield. | | | -| | tag_not | string | Filter by objects that don’t have the specified tag. | | | -| | taxable | boolean | Filter by the product varianttaxablefield. | | | -taxable:false| | title | string | Filter by the product varianttitlefield. | | | -title:ice| | updated_at | time | Filter by date and time when the product variant was updated. | | | -
-
-| | 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
-| You can apply one or more filters to a query. Learn more about Shopify API search syntax.
- Anchor to reversereverse•BooleanDefault:false
Reverse the order of the underlying list.
- Anchor to savedSearchIdsaved•ID
Search Id The ID of a saved search. The search’s query string is used as the query argument.
- Anchor to sortKeysort•Product
Key Variant Sort Keys 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.
Arguments
Anchor to Possible returnsPossible returns
- edges ([ProductVariantEdge!]!)
- nodes ([ProductVariant!]!)
- pageInfo (PageInfo!)
- Anchor to edgesedges•[Product
Variant Edge!]! non-null The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node.
- Anchor to nodesnodes•[Product
Variant!]! 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.
- Anchor to pageInfopage•Page
Info Info! non-null An object that’s used to retrieve cursor information about the current page.