Menu
productDelete
Permanently deletes a product and all its associated data, including variants, media, publications, and inventory items.
Use it in a workflow
- Add a step and choose the Shopify connector.
- Pick the productDelete action (under Product).
- Fill in the fields below, then reference the result from later steps as
{{productdelete.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 ProductDelete($input: ProductDeleteInput!, $synchronous: Boolean) {
productDelete(input: $input, synchronous: $synchronous) {
deletedProductId
productDeleteOperation {
deletedProductId
id
product {
availablePublicationsCount
bodyHtml
bundleConsolidatedOptions
category
combinedListing
combinedListingRole
compareAtPriceRange
createdAt
customProductType
defaultCursor
descriptionHtml
descriptionPlainSummary
featuredImage
featuredMedia
feedback
giftCardSettings
giftCardTemplateSuffix
handle
hasOnlyDefaultVariant
hasOutOfStockVariants
hasVariantsThatRequiresComponents
id
isGiftCard
legacyResourceId
mediaCount
onlineStorePreviewUrl
onlineStoreUrl
priceRange
priceRangeV2
productCategory
productComponentsCount
productType
publishedAt
publishedOnCurrentChannel
publishedOnCurrentPublication
requiresSellingPlan
resourcePublicationOnCurrentPublication
sellingPlanGroupCount
sellingPlanGroupsCount
seo
standardizedProductType
status
storefrontId
tags
templateSuffix
title
totalInventory
totalVariants
tracksInventory
updatedAt
variantsCount
vendor
}
status
userErrors {
field
message
}
}
shop {
accountOwner {
accountType
active
email
exists
firstName
id
initials
isShopOwner
lastName
locale
name
phone
privateData
}
alerts {
action
description
}
allProductCategories {
productTaxonomyNode
}
allProductCategoriesList {
ancestorIds
childrenIds
fullName
id
isArchived
isLeaf
isRoot
level
name
parentId
}
analyticsToken
billingAddress {
address1
address2
city
company
coordinatesValidated
country
countryCode
countryCodeV2
firstName
formattedArea
id
lastName
latitude
longitude
name
phone
province
provinceCode
zip
}
channelDefinitionsForInstalledChannels {
channelDefinitions
channelName
}
checkoutApiSupported
contactEmail
countriesInShippingZones {
countryCodes
includeRestOfWorld
}
createdAt
currencyCode
currencyFormats {
moneyFormat
moneyInEmailsFormat
moneyWithCurrencyFormat
moneyWithCurrencyInEmailsFormat
}
customerAccounts
customerAccountsV2 {
customerAccountsVersion
loginLinksVisibleOnStorefrontAndCheckout
loginRequiredAtCheckout
url
}
description
domains {
host
id
localization
marketWebPresence
sslEnabled
url
}
email
enabledPresentmentCurrencies
entitlements {
b2b
markets
}
features {
avalaraAvatax
branding
bundles
buyerExperienceDepositEnabled
captcha
captchaExternalDomains
cartTransform
deliveryProfiles
directConnectionCatalogAssignmentEnabled
dynamicRemarketing
eligibleForSubscriptionMigration
eligibleForSubscriptions
giftCards
harmonizedSystemCode
internationalDomains
internationalPriceOverrides
internationalPriceRules
legacySubscriptionGatewayEnabled
liveView
marketDrivenShipping
onboardingVisual
paypalExpressSubscriptionGatewayStatus
reports
sellsSubscriptions
shopifyPlus
showMetrics
storefront
subCountryMarketsEnabled
unifiedMarkets
usingShopifyBalance
}
fulfillmentServices {
callbackUrl
fulfillmentOrdersOptIn
handle
id
inventoryManagement
location
requiresShippingMethod
serviceName
trackingSupport
type
}
ianaTimezone
id
limitedPendingOrderCount {
atMax
count
}
marketingSmsConsentEnabledAtCheckout
merchantApprovalSignals {
identityVerified
verifiedByShopify
verifiedByShopifyTier
}
myshopifyDomain
name
navigationSettings {
id
title
url
}
orderNumberFormatPrefix
orderNumberFormatSuffix
paymentSettings {
supportedDigitalWallets
}
plan {
displayName
partnerDevelopment
publicDisplayName
shopifyPlus
}
primaryDomain {
host
id
localization
marketWebPresence
sslEnabled
url
}
publicationCount
resourceLimits {
locationLimit
maxProductOptions
maxProductVariants
redirectLimitReached
}
richTextEditorUrl
searchFilters {
productAvailability
}
setupRequired
shipsToCountries
shopAddress {
address1
address2
city
company
coordinatesValidated
country
countryCode
countryCodeV2
firstName
formattedArea
id
lastName
latitude
longitude
name
phone
province
provinceCode
zip
}
shopOwnerName
shopPolicies {
body
createdAt
id
title
type
updatedAt
url
}
storefrontUrl
taxShipping
taxesIncluded
timezoneAbbreviation
timezoneOffset
timezoneOffsetMinutes
transactionalSmsDisabled
unitSystem
updatedAt
url
weightUnit
}
userErrors {
field
message
}
}
}
Variables
Pass these as a JSON object in the step's Variables field.
{
"input": {
"id": "string"
},
"synchronous": false
}
Response
Read the result with {{productdelete.response.data.data.productDelete}}. If the API returns errors, the step fails and they are at {{productdelete.response.data.errors}}.
Need more? See the Shopify guide for connection setup and behaviour shared by every action.
Was this page helpful?