--- title: ProductVariantConnection - GraphQL Admin description: An auto-generated type for paginating through multiple ProductVariants. api_version: 2025-10 api_name: admin type: connection api_type: graphql source_url: html: https://shopify.dev/docs/api/admin-graphql/latest/connections/ProductVariantConnection md: https://shopify.dev/docs/api/admin-graphql/latest/connections/ProductVariantConnection.md --- # Product​Variant​Connection connection An auto-generated type for paginating through multiple ProductVariants. ## Fields with this connection * [Delivery​Profile​Item.variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryProfileItem#field-DeliveryProfileItem.fields.variants) OBJECT A product and the subset of associated variants that are part of this delivery profile. * [Discount​Products.productVariants](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountProducts#field-DiscountProducts.fields.productVariants) 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. * [Price​Rule​Item​Entitlements.productVariants](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceRuleItemEntitlements#field-PriceRuleItemEntitlements.fields.productVariants) OBJECT The items to which this price rule applies. This may be multiple products, product variants, collections or combinations of the aforementioned. * [Price​Rule​Line​Item​Prerequisites.productVariants](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceRuleLineItemPrerequisites#field-PriceRuleLineItemPrerequisites.fields.productVariants) 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. * [Product.variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product#field-Product.fields.variants) 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](https://shopify.dev/docs/api/admin-graphql/latest/objects/productvariant) to create or update different versions of the same product. You can also add or update product [media](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/media). Products can be organized by grouping them into a [collection](https://shopify.dev/docs/api/admin-graphql/latest/objects/collection). Learn more about working with [Shopify's product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/product-model-components), including limitations and considerations. * [Product​Bundle​Component.componentVariants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductBundleComponent#field-ProductBundleComponent.fields.componentVariants) OBJECT The product's component information. * [Product​Component​Type.componentVariants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductComponentType#field-ProductComponentType.fields.componentVariants) OBJECT The product component information. * [Product​Component​Type.nonComponentVariants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductComponentType#field-ProductComponentType.fields.nonComponentVariants) OBJECT The product component information. * [Selling​Plan​Group.productVariants](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlanGroup#field-SellingPlanGroup.fields.productVariants) OBJECT Represents a selling method (for example, "Subscribe and save" or "Pre-paid"). Selling plan groups and associated records (selling plans and policies) are deleted 48 hours after a merchant uninstalls their subscriptions app. We recommend backing up these records if you need to restore them later. * [Subscription​Billing​Attempt​Insufficient​Stock​Product​Variants​Error.insufficientStockProductVariants](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionBillingAttemptInsufficientStockProductVariantsError#field-SubscriptionBillingAttemptInsufficientStockProductVariantsError.fields.insufficientStockProductVariants) OBJECT An inventory error caused by an issue with one or more of the contract merchandise lines. ### Deprecated fields with this connection * [Shop.productVariants](https://shopify.dev/docs/api/admin-graphql/latest/objects/Shop#field-Shop.fields.productVariants) OBJECT Deprecated * [Subscription​Billing​Attempt​Out​Of​Stock​Product​Variants​Error.outOfStockProductVariants](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionBillingAttemptOutOfStockProductVariantsError#field-SubscriptionBillingAttemptOutOfStockProductVariantsError.fields.outOfStockProductVariants) OBJECT Deprecated *** ## Queries with this connection * [product​Variants](https://shopify.dev/docs/api/admin-graphql/latest/queries/productVariants) query Retrieves a list of [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) associated with a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product). A product variant is a specific version of a product that comes in more than one [option](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption), 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](https://shopify.dev/docs/api/usage/pagination-graphql) to handle large product catalogs and [saved searches](https://shopify.dev/docs/api/admin-graphql/latest/queries/productVariants#arguments-savedSearchId) 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](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/product-model-components). *** ## Possible returns * edges [\[Product​Variant​Edge!\]!](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariantEdge) non-null The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. * nodes [\[Product​Variant!\]!](https://shopify.dev/docs/api/admin-graphql/latest/objects/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. * page​Info [Page​Info!](https://shopify.dev/docs/api/admin-graphql/latest/objects/PageInfo) non-null An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page. *** ## Map ### Fields with this connection * {}[Delivery​Profile​Item.variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryProfileItem#field-DeliveryProfileItem.fields.variants) * {}[Discount​Products.productVariants](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountProducts#field-DiscountProducts.fields.productVariants) * {}[Price​Rule​Item​Entitlements.productVariants](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceRuleItemEntitlements#field-PriceRuleItemEntitlements.fields.productVariants) * {}[Price​Rule​Line​Item​Prerequisites.productVariants](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceRuleLineItemPrerequisites#field-PriceRuleLineItemPrerequisites.fields.productVariants) * {}[Product.variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product#field-Product.fields.variants) * {}[Product​Bundle​Component.componentVariants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductBundleComponent#field-ProductBundleComponent.fields.componentVariants) * {}[Product​Component​Type.componentVariants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductComponentType#field-ProductComponentType.fields.componentVariants) * {}[Product​Component​Type.nonComponentVariants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductComponentType#field-ProductComponentType.fields.nonComponentVariants) * {}[Selling​Plan​Group.productVariants](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlanGroup#field-SellingPlanGroup.fields.productVariants) * {}[Subscription​Billing​Attempt​Insufficient​Stock​Product​Variants​Error.insufficientStockProductVariants](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionBillingAttemptInsufficientStockProductVariantsError#field-SubscriptionBillingAttemptInsufficientStockProductVariantsError.fields.insufficientStockProductVariants) ### Queries with this connection * \[product​Variants](https://shopify.dev/docs/api/admin-graphql/latest/connections/productVariants) ### Possible returns * <->[Product​Variant​Connection.edges](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariantConnection#returns-edges) * <->[Product​Variant​Connection.nodes](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariantConnection#returns-nodes) * <->[Product​Variant​Connection.pageInfo](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariantConnection#returns-pageInfo)