Product Variant
Requires access scope.
The object represents a 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 object to manage the full lifecycle and configuration of a product's variants. Common
use cases for using the object include:
- Tracking inventory for each variant
- Setting unique prices for each variant
- Assigning barcodes and SKUs to connect variants to fulfillment services
- Attaching variant-specific images and media
- Setting delivery and tax requirements
- Supporting product bundles, subscriptions, and selling plans
A is associated with a parent
Product object.
serves as the central link between a product's merchandising configuration, inventory,
pricing, fulfillment, and sales channels within the GraphQL Admin API schema. Each variant
can reference other GraphQL types such as:
: Used for inventory trackingImage: Used for variant-specific images: Used for subscriptions and selling plans
Learn more about Shopify's product model.
Anchor to FieldsFields
- Anchor to availableForSaleavailable•Boolean!
For Sale non-null Whether the product variant is available for sale.
- Anchor to barcodebarcode•String
The value of the barcode associated with the product.
- Anchor to compareAtPricecompare•Money
At Price The compare-at price of the variant in the default shop currency.
- Anchor to contextualPricingcontextual•Product
Pricing Variant Contextual Pricing! non-null 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 contextcontext•Contextual
Pricing Context! required The context used to generate contextual pricing for the variant.
Arguments
- Anchor to createdAtcreated•Date
At Time! non-null The date and time when the variant was created.
- Anchor to defaultCursordefault•String!
Cursor non-null A default cursor that returns the single next record, sorted ascending by ID.
- Anchor to deliveryProfiledelivery•Delivery
Profile Profile The delivery profile for the variant.
- Anchor to displayNamedisplay•String!
Name 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.
- Anchor to firstfirst•Int
The first
nelements from the paginated list.- Anchor to afterafter•String
The elements that come after the specified cursor.
- Anchor to lastlast•Int
The last
nelements from the paginated list.- Anchor to beforebefore•String
The elements that come before the specified cursor.
- Anchor to reversereverse•BooleanDefault:false
Reverse the order of the underlying list.
- Anchor to sortKeysort•Event
Key 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 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 comments•boolean
Whether or not to include comment-events in your search, passing
falsewill exclude comment-events, any other value will include comment-events.falsetrue- Anchor to created_at•time
Filter by the date and time when the event happened.
created_at:>2020-10-21created_at:<now- Anchor to subject_type•string
The resource type affected by this event. See EventSubjectType for possible values.
PRODUCT_VARIANTPRODUCTCOLLECTION
Example:
Example:
Example:
Arguments
- •ID!non-null
A globally-unique ID.
- Anchor to inventoryIteminventory•Inventory
Item Item! non-null The inventory item, which is used to query for inventory information.
- Anchor to inventoryPolicyinventory•Product
Policy Variant Inventory Policy! non-null Whether customers are allowed to place an order for the product variant when it's out of stock.
- Anchor to inventoryQuantityinventory•Int
Quantity The total sellable quantity of the variant.
- Anchor to legacyResourceIdlegacy•Unsigned
Resource Id Int64! 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 firstfirst•Int
The first
nelements from the paginated list.- Anchor to afterafter•String
The elements that come after the specified cursor.
- Anchor to lastlast•Int
The last
nelements from the paginated list.- Anchor to beforebefore•String
The elements that come before the specified cursor.
- Anchor to reversereverse•BooleanDefault:false
Reverse the order of the underlying list.
Arguments
- Anchor to metafieldmetafield•Metafield
A custom field, including its
namespaceandkey, that's associated with a Shopify resource for the purposes of adding and storing additional information.- Anchor to namespacenamespace•String
The container the metafield belongs to. If omitted, the app-reserved namespace will be used.
- •String!required
The key for the metafield.
Arguments
- Anchor to metafieldsmetafields•Metafield
Connection! non-null A list of custom fields that a merchant associates with a Shopify resource.
- Anchor to namespacenamespace•String
The metafield namespace to filter by. If omitted, the app-reserved namespace will be used.
- Anchor to keyskeys•[String!]
List of keys of metafields in the format
namespace.key, will be returned in the same format.- Anchor to firstfirst•Int
The first
nelements from the paginated list.- Anchor to afterafter•String
The elements that come after the specified cursor.
- Anchor to lastlast•Int
The last
nelements from the paginated list.- Anchor to beforebefore•String
The elements that come before the specified cursor.
- Anchor to reversereverse•BooleanDefault:false
Reverse the order of the underlying list.
Arguments
- 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 productParentsproduct•Product
Parents Connection! non-null A list of products that have product variants that contain this variant as a product component.
- Anchor to firstfirst•Int
The first
nelements from the paginated list.- Anchor to afterafter•String
The elements that come after the specified cursor.
- Anchor to lastlast•Int
The last
nelements from the paginated list.- Anchor to beforebefore•String
The elements that come before the specified cursor.
- Anchor to reversereverse•BooleanDefault:false
Reverse the order of the underlying 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 Normanquery=title:green hoodie- Anchor to bundles•boolean
Filter by a product bundle. A product bundle is a set of two or more related products, which are commonly offered at a discount.
bundles:true- Anchor to category_id•string
Filter by the product category ID (
product.category.id). A product category is the category of a product from Shopify's Standard Product Taxonomy.category_id:sg-4-17-2-17- Anchor to combined_listing_role•string
Filter by the role of the product in a combined listing.
parentchildno_rolecombined_listing_role:parent- Anchor to created_at•time
Filter by the date and time when the product was created.
created_at:>'2020-10-21T23:39:20Z'created_at:<nowcreated_at:<='2024'- Anchor to delivery_profile_id•id
Filter by the delivery profile
idfield.delivery_profile_id:108179161409- Anchor to error_feedback•string
Filter by products with publishing errors.
- Anchor to handle•string
Filter by a comma-separated list of product handles.
handle:the-minimal-snowboard- Anchor to has_only_composites•boolean
Filter by products that have only composite variants.
has_only_composites:true- Anchor to has_only_default_variant•boolean
Filter by products that have only a default variant. A default variant is the only variant if no other variants are specified.
has_only_default_variant:true- Anchor to has_variant_with_components•boolean
Filter by products that have variants with associated components.
has_variant_with_components:true- Anchor to inventory_total•integer
Filter by inventory count.
inventory_total:0inventory_total:>150inventory_total:>=200- Anchor to metafields.{namespace}.{key}•mixed
Filters resources by metafield value. Format:
metafields.{namespace}.{key}:{value}. Learn more about querying by metafield value.metafields.custom.on_sale:truemetafields.product.material:"gid://shopify/Metaobject/43458085"- Anchor to out_of_stock_somewhere•boolean
Filter by products that are out of stock in at least one location.
out_of_stock_somewhere:true- Anchor to product_configuration_owner•string
Filter by the app
idfield.product_configuration_owner:10001- Anchor to 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_status instead.* {channel_app_id}-approved* {channel_app_id}-rejected* {channel_app_id}-needs_action* {channel_app_id}-awaiting_review* {channel_app_id}-published* {channel_app_id}-demoted* {channel_app_id}-scheduled* {channel_app_id}-provisionally_publishedproduct_publication_status:189769876-approved- Anchor to product_type•string
Filter by a comma-separated list of product types.
product_type:snowboard- Anchor to publication_ids•string
Filter by a comma-separated list of publication IDs that are associated with the product.
publication_ids:184111530305,184111694145- Anchor to 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 (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_approvedpublishable_status:580111-unsetpublishable_status:580111-pending- Anchor to published_at•time
Filter by the date and time when the product was published to the online store and other sales channels.
published_at:>2020-10-21T23:39:20Zpublished_at:<nowpublished_at:<=2024- Anchor to 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 resources that are published to the online store. -unpublished: Returns resources that are not published to the online store. Channel-specific filtering using the channelappID (Channel.app.id) with suffixes: -: Returns resources published to the specified channel. -: Same as(kept for backwards compatibility). -: Returns resources added to the channel but not yet published. -: Returns resources not added to the channel or not published. Other: -unavailable: Returns resources not published to any channel.online_store_channelpublishedvisibleunpublished* {channel_app_id}-published* {channel_app_id}-visible* {channel_app_id}-intended* {channel_app_id}-hiddenunavailablepublished_status:online_store_channelpublished_status:publishedpublished_status:580111-publishedpublished_status:580111-hiddenpublished_status:unavailable- Anchor to sku•string
Filter by the product variant
skufield. Learn more about SKUs.sku:XYZ-12345- Anchor to status•string
Filter by a comma-separated list of statuses. You can use statuses to manage inventory. Shopify only displays products with an
status in online stores, sales channels, and apps.activeDefaultarchiveddraftstatus:active,draft- Anchor to tag_not•string
Filter by objects that don’t have the specified tag.
tag_not:my_tag- Anchor to updated_at•time
Filter by the date and time when the product was last updated.
updated_at:>'2020-10-21T23:39:20Z'updated_at:<nowupdated_at:<='2024'- Anchor to variant_title•string
Filter by the product variant
titlefield.variant_title:'Special ski wax'- Anchor to vendor•string
Filter by the origin or source of the product. Learn more about vendors and managing vendor information.
vendor:Snowdevilvendor:Snowdevil OR vendor:Icedevil
Example:
Example:
Example:
Valid values:
Example:
Example:
Example:
Example:
Example:
Example:
Example:
Example:
Example:
Example:
Example:
Valid values:
Example:
Example:
Example:
Valid values:
Example:
Example:
Valid values:
Example:
Example:
Valid values:
Example:
Example:
Example:
Example:
Example:
Arguments
- Anchor to productVariantComponentsproduct•Product
Variant Components Variant Component Connection! non-null A list of the product variant components.
- Anchor to firstfirst•Int
The first
nelements from the paginated list.- Anchor to afterafter•String
The elements that come after the specified cursor.
- Anchor to lastlast•Int
The last
nelements from the paginated list.- Anchor to beforebefore•String
The elements that come before the specified cursor.
- Anchor to reversereverse•BooleanDefault:false
Reverse the order of the underlying list.
Arguments
- Anchor to requiresComponentsrequires•Boolean!
Components 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•[Selected
Options Option!]! non-null List of product options applied to the variant.
- Anchor to sellableOnlineQuantitysellable•Int!
Online Quantity 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•Selling
Plan Groups Plan Group Connection! non-null A list of all selling plan groups defined in the current shop associated with the product variant.
- Anchor to firstfirst•Int
The first
nelements from the paginated list.- Anchor to afterafter•String
The elements that come after the specified cursor.
- Anchor to lastlast•Int
The last
nelements from the paginated list.- Anchor to beforebefore•String
The elements that come before the specified cursor.
- Anchor to reversereverse•BooleanDefault:false
Reverse the order of the underlying list.
Arguments
- Anchor to sellingPlanGroupsCountselling•Count
Plan Groups Count Count of selling plan groups associated with the product variant.
- Anchor to showUnitPriceshow•Boolean!
Unit Price non-null Whether to show the unit price for this product variant.
- •String
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 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 localelocale•String!required
Filters translations locale.
- Anchor to marketIdmarket•ID
Id Filters translations by market ID. Use this argument to retrieve content specific to a market.
Arguments
- Anchor to unitPriceunit•Money
Price V2 The unit price value for the variant based on the variant measurement.
- Anchor to unitPriceMeasurementunit•Unit
Price Measurement Price Measurement The unit price measurement for the variant.
- Anchor to updatedAtupdated•Date
At Time! non-null The date and time (ISO 8601 format) when the product variant was last modified.
Deprecated fields
- Anchor to imageimage•ImageDeprecated
- Anchor to maxWidthmax•Int
Width Deprecated - Anchor to maxHeightmax•Int
Height Deprecated - Anchor to cropcrop•Crop
Region Deprecated - Anchor to scalescale•IntDeprecatedDefault:1
Arguments
- Anchor to metafieldDefinitionsmetafield•Metafield
Definitions Definition Connection! non-nullDeprecated - Anchor to namespacenamespace•String
Filter metafield definitions by namespace.
- Anchor to pinnedStatuspinned•Metafield
Status Definition Pinned Status Default:ANY Filter by the definition's pinned status.
- Anchor to firstfirst•Int
The first
nelements from the paginated list.- Anchor to afterafter•String
The elements that come after the specified cursor.
- Anchor to lastlast•Int
The last
nelements from the paginated list.- Anchor to beforebefore•String
The elements that come before the specified cursor.
- Anchor to reversereverse•BooleanDefault:false
Reverse the order of the underlying list.
- Anchor to sortKeysort•Metafield
Key Definition 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 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 Normanquery=title:green hoodie- Anchor to created_at•time
Filter by the date and time when the metafield definition was created.
created_at:>2020-10-21T23:39:20Zcreated_at:<nowcreated_at:<=2024- Anchor to namespace•string
Filter by the metafield definition
namespacefield.namespace:some-namespace- Anchor to type•string
Filter by the metafield definition
typefield.type:single_line_text_field- Anchor to updated_at•time
Filter by the date and time when the metafield definition was last updated.
updated_at:>2020-10-21T23:39:20Zupdated_at:<nowupdated_at:<=2024
Example:
Example:
Example:
Example:
Example:
Arguments
- Anchor to presentmentPricespresentment•Product
Prices Variant Price Pair Connection! non-nullDeprecated - Anchor to presentmentCurrenciespresentment•[Currency
Currencies Code!] The presentment currencies prices should return in.
- Anchor to firstfirst•Int
The first
nelements from the paginated list.- Anchor to afterafter•String
The elements that come after the specified cursor.
- Anchor to lastlast•Int
The last
nelements from the paginated list.- Anchor to beforebefore•String
The elements that come before the specified cursor.
- Anchor to reversereverse•BooleanDefault:false
Reverse the order of the underlying list.
Arguments
- Anchor to sellingPlanGroupCountselling•Int!
Plan Group Count non-nullDeprecated - Anchor to storefrontIdstorefront•Storefront
Id ID! non-nullDeprecated - Anchor to taxCodetax•String
Code Deprecated
Anchor to QueriesQueries
- •query
Retrieves a product variant by its ID.
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:- Access essential product variant data (for example, title, price, image, and metafields).
- Build product detail pages and manage inventory.
- Handle international sales with localized pricing and content.
- Manage product variants that are part of a bundle or selling plan.
Learn more about working with Shopify's product model.
- •ID!required
The ID of the
to return.
Arguments
- •query
Return a product variant by an identifier.
- Anchor to identifieridentifier•Product
Variant Identifier Input! required The identifier of the product variant.
Arguments
- •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 firstfirst•Int
The first
nelements from the paginated list.- Anchor to afterafter•String
The elements that come after the specified cursor.
- Anchor to lastlast•Int
The last
nelements from the paginated list.- Anchor to beforebefore•String
The elements that come before the specified cursor.
- Anchor to reversereverse•BooleanDefault:false
Reverse the order of the underlying list.
- 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 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 Normanquery=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 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_status instead.* {channel_app_id}-approved* {channel_app_id}-rejected* {channel_app_id}-needs_action* {channel_app_id}-awaiting_review* {channel_app_id}-published* {channel_app_id}-demoted* {channel_app_id}-scheduled* {channel_app_id}-provisionally_publishedproduct_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
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 (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_approvedpublishable_status:580111-unsetpublishable_status:580111-pending- Anchor to 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 resources that are published to the online store. -unpublished: Returns resources that are not published to the online store. Channel-specific filtering using the channelappID (Channel.app.id) with suffixes: -: Returns resources published to the specified channel. -: Same as(kept for backwards compatibility). -: Returns resources added to the channel but not yet published. -: Returns resources not added to the channel or not published. Other: -unavailable: Returns resources not published to any channel.online_store_channelpublishedvisibleunpublished* {channel_app_id}-published* {channel_app_id}-visible* {channel_app_id}-intended* {channel_app_id}-hiddenunavailablepublished_status:online_store_channelpublished_status:publishedpublished_status:580111-publishedpublished_status:580111-hiddenpublished_status:unavailable- 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
skufield. Learn more about SKUs.sku:XYZ-12345- Anchor to tag_not•string
Filter by objects that don’t have the specified tag.
tag_not:my_tag- Anchor to updated_at•time
Filter by date and time when the product variant was updated.
updated_at:>2020-10-21T23:39:20Zupdated_at:<nowupdated_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:Snowdevilvendor: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:
Example:
- Anchor to savedSearchIdsaved•ID
Search Id The ID of a saved search. The search’s query string is used as the query argument.
Arguments
Anchor to MutationsMutations
- •mutation
Appends existing media from a product to specific variants of that product, creating associations between media files and particular product options. This allows different variants to showcase relevant images or videos.
For example, a t-shirt product might have color variants where each color variant displays only the images showing that specific color, helping customers see exactly what they're purchasing.
Use
to:- Associate specific images with product variants for accurate display
- Build variant-specific media management in product interfaces
- Implement automated media assignment based on variant attributes
The operation links existing product media to variants without duplicating files, maintaining efficient media storage while enabling variant-specific displays.
Learn more about product variants.
- Anchor to productIdproduct•ID!
Id required Specifies the product associated to the media.
- Anchor to variantMediavariant•[Product
Media Variant Append Media Input!]! required A list of pairs of variants and media to be attached to the variants.
Arguments
- •mutation
Detaches media from product variants.
- Anchor to productIdproduct•ID!
Id required Specifies the product to which the variants and media are associated.
- Anchor to variantMediavariant•[Product
Media Variant Detach Media Input!]! required A list of pairs of variants and media to be deleted from the variants.
Arguments
- •mutation
Adds multiple selling plan groups to a product variant.
- •ID!required
The ID of the product variant.
- Anchor to sellingPlanGroupIdsselling•[ID!]!
Plan Group Ids required The IDs of the selling plan groups to add.
Arguments
- •ID!
- •mutation
Remove multiple groups from a product variant.
- •ID!required
The ID of the product variant.
- Anchor to sellingPlanGroupIdsselling•[ID!]!
Plan Group Ids required The IDs of the selling plan groups to leave.
Arguments
- •ID!
- •mutation
Creates new bundles, updates component quantities in existing bundles, and removes bundle components for one or multiple
objects.Each bundle variant can contain up to 30 component variants with specified quantities. After an app assigns components to a bundle, only that app can manage those components.
NoteFor most use cases, use
instead, which creates product fixed bundles.is for variant fixed bundles, where each variant has its own component configuration.- Anchor to inputinput•[Product
Variant Relationship Update Input!]! required The input options for the product variant being updated.
Arguments
- •mutation
Creates multiple product variants for a single product in one operation. You can run this mutation directly or as part of a bulk operation for large-scale catalog updates.
Use the
mutation to efficiently add new product variants—such as different sizes, colors, or materials—to an existing product. The mutation is helpful if you need to add product variants in bulk, such as importing from an external system.The mutation supports:
- Creating variants with custom option values
- Associating media (for example, images, videos, and 3D models) with the product or its variants
- Handling complex product configurations
NoteBy default, stores have a limit of 2048 product variants for each product.
After creating variants, you can make additional changes using one of the following mutations:
: Updates multiple product variants for a single product in one operation.: Used to perform multiple operations on products, such as creating or modifying product options and variants.
You can also specifically manage product options through related mutations:
Learn more about the product model and adding product data.
- Anchor to variantsvariants•[Product
Variants Bulk Input!]! required An array of product variants to be created.
- Anchor to productIdproduct•ID!
Id required The ID of the product on which to create the variants.
- Anchor to mediamedia•[Create
Media Input!] List of new media to be added to the product.
- Anchor to strategystrategy•Product
Variants Bulk Create Strategy Default:DEFAULT The strategy defines which behavior the mutation should observe, such as whether to keep or delete the standalone variant (when product has only a single or default variant) when creating new variants in bulk.
Arguments
- •mutation
Updates multiple product variants for a single product in one operation. You can run this mutation directly or as part of a bulk operation for large-scale catalog updates.
Use the
mutation to efficiently modify product variants—such as different sizes, colors, or materials—associated with an existing product. The mutation is helpful if you need to update a product's variants in bulk, such as importing from an external system.The mutation supports:
- Updating variants with custom option values
- Associating media (for example, images, videos, and 3D models) with the product or its variants
- Handling complex product configurations
NoteBy default, stores have a limit of 2048 product variants for each product.
After creating variants, you can make additional changes using the
mutation, which is used to perform multiple operations on products, such as creating or modifying product options and variants.You can also specifically manage product options through related mutations:
Learn more about the product model and adding product data.
- Anchor to variantsvariants•[Product
Variants Bulk Input!]! required An array of product variants to update.
- Anchor to productIdproduct•ID!
Id required The ID of the product associated with the variants to update.
- Anchor to mediamedia•[Create
Media Input!] List of new media to be added to the product.
- Anchor to allowPartialUpdatesallow•Boolean
Partial Updates Default:false When partial updates are allowed, valid variant changes may be persisted even if some of the variants updated have invalid data and cannot be persisted. When partial updates are not allowed, any error will prevent all variants from updating.
Arguments
- •mutation
Updates quantity pricing on a
for specificobjects. You can set fixed prices (see), quantity rules, and quantity price breaks in a single operation.objects define minimum, maximum, and increment constraints for ordering.objects offer tiered pricing based on purchase volume.The mutation executes delete operations before create operations and doesn't allow partial updates.
NoteIf any requested change fails, then the mutation doesn't apply any of the changes.
- Anchor to priceListIdprice•ID!
List Id required The ID of the price list for which quantity pricing will be updated.
- Anchor to inputinput•Quantity
Pricing By Variant Update Input! required The input data used to update the quantity pricing in the price list.
Arguments
Anchor to InterfacesInterfaces
- •interface
- •interface
- •interface
- •interface