productVariants
Returns a list of product variants.
ProductVariantConnection arguments
- Anchor to afterafter•
The elements that come after the specified cursor.
- Anchor to beforebefore•
The elements that come before the specified cursor.
- Anchor to firstfirst•
The first
n
elements from the paginated list.- Anchor to lastlast•
The last
n
elements from the paginated list.- Anchor to queryquery•
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 publishable 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
publishable_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•
Search Id The ID of a saved search. The search’s query string is used as the query argument.
- Anchor to sortKeysort•
Key ProductVariant Default:IDSort Keys 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 non-nullEdge!]! 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•
Info PageInfo! non-null An object that’s used to retrieve cursor information about the current page.
- Get multiple product variants using their IDs and GraphQL aliases
- Get the IDs of the first 10 product variants
- Get the first three product variants sorted by available quantity at a location.
- Get the first three product variants updated after the specified date
- Retrieves a list of product variants
Examples
query {
productVariant1: productVariant(id: "gid://shopify/ProductVariant/30322695") {
id
title
}
productVariant2: productVariant(id: "gid://shopify/ProductVariant/43729076") {
id
title
}
productVariant3: productVariant(id: "gid://shopify/ProductVariant/113711323") {
id
title
}
}
curl -X POST \
https://your-development-store.myshopify.com/admin/api/2025-01/graphql.json \
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token: {access_token}' \
-d '{
"query": "query { productVariant1: productVariant(id: \"gid://shopify/ProductVariant/30322695\") { id title } productVariant2: productVariant(id: \"gid://shopify/ProductVariant/43729076\") { id title } productVariant3: productVariant(id: \"gid://shopify/ProductVariant/113711323\") { id title } }"
}'
const { admin } = await authenticate.admin(request);
const response = await admin.graphql(
`#graphql
query {
productVariant1: productVariant(id: "gid://shopify/ProductVariant/30322695") {
id
title
}
productVariant2: productVariant(id: "gid://shopify/ProductVariant/43729076") {
id
title
}
productVariant3: productVariant(id: "gid://shopify/ProductVariant/113711323") {
id
title
}
}`,
);
const data = await response.json();
const client = new shopify.clients.Graphql({session});
const data = await client.query({
data: `query {
productVariant1: productVariant(id: "gid://shopify/ProductVariant/30322695") {
id
title
}
productVariant2: productVariant(id: "gid://shopify/ProductVariant/43729076") {
id
title
}
productVariant3: productVariant(id: "gid://shopify/ProductVariant/113711323") {
id
title
}
}`,
});
session = ShopifyAPI::Auth::Session.new(
shop: "your-development-store.myshopify.com",
access_token: access_token
)
client = ShopifyAPI::Clients::Graphql::Admin.new(
session: session
)
query = <<~QUERY
query {
productVariant1: productVariant(id: "gid://shopify/ProductVariant/30322695") {
id
title
}
productVariant2: productVariant(id: "gid://shopify/ProductVariant/43729076") {
id
title
}
productVariant3: productVariant(id: "gid://shopify/ProductVariant/113711323") {
id
title
}
}
QUERY
response = client.query(query: query)