ProductVariant
Requires access scope.
Represents a product variant.
Anchor to Fields and connectionsFields and connections
- Anchor to availableForSaleavailable•
For Sale Boolean!non-null Whether the product variant is available for sale.
- Anchor to barcodebarcode•
The value of the barcode associated with the product.
- Anchor to compareAtPricecompare•
At Price The compare-at price of the variant in the default shop currency.
- Anchor to contextualPricingcontextual•
Pricing ProductVariant non-nullContextual Pricing! The pricing that applies for a customer in a given context. As of API version 2025-04, only active markets are considered in the price resolution.
- Anchor to createdAtcreated•
At DateTime! non-null The date and time when the variant was created.
- Anchor to defaultCursordefault•
Cursor String!non-null A default cursor that returns the single next record, sorted ascending by ID.
- Anchor to deliveryProfiledelivery•
Profile The delivery profile for the variant.
- Anchor to displayNamedisplay•
Name String!non-null Display name of the variant, based on product's title + variant's title.
- Anchor to eventsevents•Event
Connection! non-null The paginated list of events associated with the host subject.
- •ID!non-null
A globally-unique ID.
- Anchor to imageimage•
The featured image for the variant.
- Anchor to inventoryIteminventory•
Item InventoryItem! non-null The inventory item, which is used to query for inventory information.
- Anchor to inventoryPolicyinventory•
Policy ProductVariant non-nullInventory Policy! Whether customers are allowed to place an order for the product variant when it's out of stock.
- Anchor to inventoryQuantityinventory•
Quantity The total sellable quantity of the variant.
- Anchor to legacyResourceIdlegacy•
Resource Id UnsignedInt64! non-null The ID of the corresponding resource in the REST Admin API.
- Anchor to mediamedia•Media
Connection! non-null The media associated with the product variant.
- Anchor to metafieldmetafield•
A custom field, including its
namespace
andkey
, that's associated with a Shopify resource for the purposes of adding and storing additional information.- Anchor to metafieldsmetafields•Metafield
Connection! non-null A list of custom fields that a merchant associates with a Shopify resource.
- Anchor to positionposition•Int!non-null
The order of the product variant in the list of product variants. The first position in the list is 1.
- Anchor to priceprice•Money!non-null
The price of the product variant in the default shop currency.
- Anchor to productproduct•Product!non-null
The product that this variant belongs to.
- Anchor to productVariantComponentsproduct•
Variant Components A list of the product variant components.
- Anchor to requiresComponentsrequires•
Components Boolean!non-null Whether a product variant requires components. The default value is
false
. Iftrue
, then the product variant can only be purchased as a parent bundle with components and it will be omitted from channels that don't support bundles.- Anchor to selectedOptionsselected•
Options [SelectedOption!]! non-null List of product options applied to the variant.
- Anchor to sellableOnlineQuantitysellable•
Online Quantity Int!non-null The total sellable quantity of the variant for online channels. This doesn't represent the total available inventory or capture limitations based on customer location.
- Anchor to sellingPlanGroupsselling•
Plan Groups SellingPlan non-nullGroup Connection! A list of all selling plan groups defined in the current shop associated with the product variant.
- Anchor to sellingPlanGroupsCountselling•
Plan Groups Count Count of selling plan groups associated with the product variant.
- •
A case-sensitive identifier for the product variant in the shop. Required in order to connect to a fulfillment service.
- Anchor to taxabletaxable•Boolean!non-null
Whether a tax is charged when the product variant is sold.
- Anchor to taxCodetax•
Code The tax code for the product variant.
- Anchor to titletitle•String!non-null
The title of the product variant.
- Anchor to translationstranslations•[Translation!]!non-null
The published translations associated with the resource.
- Anchor to unitPriceMeasurementunit•
Price Measurement The unit price measurement for the variant.
- Anchor to updatedAtupdated•
At DateTime! non-null The date and time (ISO 8601 format) when the product variant was last modified.
Map
Fields and connections with this object
- AbandonedCheckoutLineItem.variant
- CalculatedDraftOrderLineItem.variant
- CalculatedExchangeLineItem.variant
- CalculatedLineItem.variant
- CombinedListingChild.parentVariant
- CustomerVisitProductInfo.variant
- DeliveryProfileItem.variants
- DiscountProducts.productVariants
- DraftOrderLineItem.variant
- FulfillmentOrderLineItem.variant
- InventoryItem.variant
- LineItem.variant
- OrderStagedChangeAddVariant.variant
- PriceListPrice.variant
- PriceRuleItemEntitlements.productVariants
- PriceRuleLineItemPrerequisites.productVariants
- Product.variants
- ProductBundleComponent.componentVariants
- ProductVariantComponent.productVariant
- ProductVariantConnection.nodes
- ProductVariantEdge.node
- QuantityPriceBreak.variant
- QuantityRule.productVariant
- SellingPlanGroup.productVariants
- SubscriptionBillingAttemptInsufficientStockProductVariantsError.insufficientStockProductVariants
Possible type in
Anchor to QueriesQueries
- •query
Returns a ProductVariant resource by ID.
- •query
Returns a list of product variants.
ProductVariant Queries
Queried by
Anchor to MutationsMutations
- •mutation
Appends media from a product to variants of the product.
- •mutation
Detaches media from product variants.
- •mutation
Adds multiple selling plan groups to a product variant.
- •mutation
Remove multiple groups from a product variant.
- •mutation
Creates new bundles, updates existing bundles, and removes bundle components for one or multiple bundles.
- •mutation
Creates multiple variants in a single product. This mutation can be called directly or via the bulkOperation.
- •mutation
Updates multiple variants in a single product. This mutation can be called directly or via the bulkOperation.
- •mutation
Updates quantity pricing on a price list. You can use the
mutation to set fixed prices, quantity rules, and quantity price breaks. This mutation does not allow partial successes. If any of the requested resources fail to update, none of the requested resources will be updated. Delete operations are executed before create operations.