Menu
productOptionUpdate
Updates an option on a product, such as size, color, or material. Each option includes a name, position, and a list of values.
Use it in a workflow
- Add a step and choose the Shopify connector.
- Pick the productOptionUpdate action (under Product).
- Fill in the fields below, then reference the result from later steps as
{{productoptionupdate.response.data}}.
Query
This is the mutation the action sends by default. Edit it in the step's Query field to change which fields come back.
mutation ProductOptionUpdate($option: OptionUpdateInput!, $productId: ID!, $optionValuesToAdd: [OptionValueCreateInput!], $optionValuesToUpdate: [OptionValueUpdateInput!], $optionValuesToDelete: [ID!], $variantStrategy: ProductOptionUpdateVariantStrategy) {
productOptionUpdate(
option: $option
productId: $productId
optionValuesToAdd: $optionValuesToAdd
optionValuesToUpdate: $optionValuesToUpdate
optionValuesToDelete: $optionValuesToDelete
variantStrategy: $variantStrategy
) {
product {
availablePublicationsCount {
count
precision
}
bodyHtml
bundleConsolidatedOptions {
name
selections
}
category {
ancestorIds
childrenIds
fullName
id
isArchived
isLeaf
isRoot
level
name
parentId
}
combinedListing {
parentProduct
}
combinedListingRole
compareAtPriceRange {
maxVariantCompareAtPrice
minVariantCompareAtPrice
}
createdAt
customProductType
defaultCursor
descriptionHtml
descriptionPlainSummary
featuredImage {
altText
height
id
originalSrc
src
thumbhash
width
}
featuredMedia {
alt
id
mediaContentType
mediaErrors
mediaWarnings
preview
status
}
feedback {
appFeedback
details
summary
}
giftCardSettings {
crossCurrencyRedeemable
issuanceCurrency
}
giftCardTemplateSuffix
handle
hasOnlyDefaultVariant
hasOutOfStockVariants
hasVariantsThatRequiresComponents
id
isGiftCard
legacyResourceId
mediaCount {
count
precision
}
onlineStorePreviewUrl
onlineStoreUrl
priceRange {
maxVariantPrice
minVariantPrice
}
priceRangeV2 {
maxVariantPrice
minVariantPrice
}
productCategory {
productTaxonomyNode
}
productComponentsCount {
count
precision
}
productType
publishedAt
publishedOnCurrentChannel
publishedOnCurrentPublication
requiresSellingPlan
resourcePublicationOnCurrentPublication {
isPublished
publication
publishDate
publishable
}
sellingPlanGroupCount
sellingPlanGroupsCount {
count
precision
}
seo {
description
title
}
standardizedProductType {
productTaxonomyNode
}
status
storefrontId
tags
templateSuffix
title
totalInventory
totalVariants
tracksInventory
updatedAt
variantsCount {
count
precision
}
vendor
}
userErrors {
code
field
message
}
}
}
Variables
Pass these as a JSON object in the step's Variables field.
{
"option": {
"id": "string",
"name": "string",
"position": 0,
"linkedMetafield": {
"namespace": "string",
"key": "string"
}
},
"productId": "string",
"optionValuesToAdd": [
{
"name": "string",
"linkedMetafieldValue": "string"
}
],
"optionValuesToUpdate": [
{
"id": "string",
"name": "string",
"linkedMetafieldValue": "string"
}
],
"optionValuesToDelete": [
"string"
],
"variantStrategy": "LEAVE_AS_IS"
}
Response
Read the result with {{productoptionupdate.response.data.data.productOptionUpdate}}. If the API returns errors, the step fails and they are at {{productoptionupdate.response.data.errors}}.
Need more? See the Shopify guide for connection setup and behaviour shared by every action.
Was this page helpful?