product Variants
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.
ProductVariantConnection arguments
- 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
n
elements from the paginated list.- Anchor to lastlast•Int
The last
n
elements from the paginated list.- Anchor to queryquery•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.
query=Bob Norman
query=title:green hoodie
- Anchor to collection•string
Filter by the ID of the collection that the product variant belongs to.
collection:465903092033
- Anchor to delivery_profile_id•id
Filter by the product variant delivery profile ID (
).
delivery_profile_id:108179161409
- Anchor to exclude_composite•boolean
Filter by product variants that aren't composites.
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.
exclude_variants_with_components:true
- Anchor to inventory_quantity•integer
Filter by an aggregate of inventory across all locations where the product variant is stocked.
inventory_quantity:10
- Anchor to location_id•id
Filter by the location ID for the product variant.
location_id:88511152449
- Anchor to managed•boolean
Filter by whether there is fulfillment service tracking associated with the product variants.
managed:true
- Anchor to managed_by•string
Filter by the fulfillment service that tracks the number of items in stock for the product variant.
managed_by:shopify
- Anchor to option1•string
Filter by a custom property that a shop owner uses to define product variants.
option1:small
- Anchor to option2•string
Filter by a custom property that a shop owner uses to define product variants.
option2:medium
- Anchor to option3•string
Filter by a custom property that a shop owner uses to define product variants.
option3:large
- Anchor to product_ids•string
Filter by a comma-separated list of product IDs.
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.approved
rejected
needs_action
awaiting_review
published
demoted
scheduled
provisionally_published
publication_status:189769876-approved
- Anchor to product_status•string
Filter by a comma-separated list of product statuses.
product_status:ACTIVE,DRAFT
- Anchor to product_type•string
Filter by the product type that's associated with the product variants.
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 channelname
and one of the valid values.online_store_channel
published
unpublished
visible
unavailable
hidden
intended
visible
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.
unset
pending
approved
not approved
published_status:approved
- Anchor to requires_components•boolean
Filter by whether the product variant can only be purchased with components. Learn more.
requires_components:true
- Anchor to sku•string
Filter by the product variant
sku
field. Learn more about SKUs.sku:XYZ-12345
- Anchor to 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
- Anchor to vendor•string
Filter by the origin or source of the product variant. Learn more about vendors and managing vendor information.
vendor:Snowdevil
vendor:Snowdevil OR vendor:Icedevil
Example:
Example:
Example:
Example:
Example:
Example:
Example:
Example:
Example:
Example:
Example:
Example:
Example:
Valid values:
Example:
Example:
Example:
Valid values:
Example:
Valid values:
Example:
Example:
Example:
Example:
Example:
- 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.
Anchor to Possible returnsPossible returns
- 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.