Menu
fulfillmentOrderHold
Applies a fulfillment hold on a fulfillment order. As of the 2025-01 API version, the mutation can be successfully executed on fulfillment orders that are already on hold.
Use it in a workflow
- Add a step and choose the Shopify connector.
- Pick the fulfillmentOrderHold action (under Fulfillment).
- Fill in the fields below, then reference the result from later steps as
{{fulfillmentorderhold.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 FulfillmentOrderHold($id: ID!, $fulfillmentHold: FulfillmentOrderHoldInput!) {
fulfillmentOrderHold(id: $id, fulfillmentHold: $fulfillmentHold) {
fulfillmentHold {
displayReason
handle
heldByApp {
apiKey
appStoreAppUrl
appStoreDeveloperUrl
availableAccessScopes
banner
description
developerName
developerType
developerUrl
embedded
failedRequirements
features
feedback
handle
icon
id
installUrl
installation
isPostPurchaseAppInUse
launchUrl
navigationItems
optionalAccessScopes
previouslyInstalled
pricingDetails
pricingDetailsSummary
privacyPolicyUrl
publicCategory
published
requestedAccessScopes
screenshots
shopifyDeveloped
title
uninstallMessage
uninstallUrl
webhookApiVersion
}
heldByRequestingApp
id
reason
reasonNotes
}
fulfillmentOrder {
assignedLocation {
address1
address2
city
countryCode
location
name
phone
province
zip
}
channelId
createdAt
deliveryMethod {
additionalInformation
brandedPromise
id
maxDeliveryDateTime
methodType
minDeliveryDateTime
presentedName
serviceCode
sourceReference
}
destination {
address1
address2
city
company
countryCode
email
firstName
id
lastName
location
phone
province
zip
}
fulfillAt
fulfillBy
fulfillmentHolds {
displayReason
handle
heldByApp
heldByRequestingApp
id
reason
reasonNotes
}
id
internationalDuties {
incoterm
}
order {
additionalFees
alerts
app
attribution
billingAddress
billingAddressMatchesShippingAddress
canMarkAsPaid
canNotifyCustomer
cancelReason
cancellation
cancelledAt
capturable
cartDiscountAmount
cartDiscountAmountSet
cartToken
channel
channelInformation
checkoutToken
clientIp
closed
closedAt
confirmationNumber
confirmed
createdAt
currencyCode
currentCartDiscountAmountSet
currentShippingPriceSet
currentSubtotalLineItemsQuantity
currentSubtotalPriceSet
currentTaxLines
currentTotalAdditionalFeesSet
currentTotalDiscountsSet
currentTotalDutiesSet
currentTotalPriceSet
currentTotalTaxSet
currentTotalWeight
customAttributes
customer
customerAcceptsMarketing
customerJourney
customerJourneySummary
customerLocale
discountCode
discountCodes
displayAddress
displayFinancialStatus
displayFulfillmentStatus
disputes
dutiesIncluded
edited
email
estimatedTaxes
fulfillable
fulfillmentsCount
fullyPaid
hasTimelineComment
id
landingPageDisplayText
landingPageUrl
legacyResourceId
merchantBusinessEntity
merchantEditable
merchantEditableErrors
merchantOfRecordApp
name
netPayment
netPaymentSet
note
number
originalTotalAdditionalFeesSet
originalTotalDutiesSet
originalTotalPriceSet
paymentCollectionDetails
paymentGatewayNames
paymentTerms
phone
physicalLocation
poNumber
presentmentCurrencyCode
processedAt
productNetwork
publication
purchasingEntity
referralCode
referrerDisplayText
referrerUrl
refundDiscrepancySet
refundable
registeredSourceUrl
requiresShipping
restockable
retailLocation
returnStatus
risk
riskLevel
shippingAddress
shippingLine
shopifyProtect
sourceIdentifier
sourceName
staffMember
subtotalLineItemsQuantity
subtotalPrice
subtotalPriceSet
tags
taxExempt
taxLines
taxesIncluded
test
totalCapturable
totalCapturableSet
totalCashRoundingAdjustment
totalDiscounts
totalDiscountsSet
totalOutstandingSet
totalPrice
totalPriceSet
totalReceived
totalReceivedSet
totalRefunded
totalRefundedSet
totalRefundedShippingSet
totalShippingPrice
totalShippingPriceSet
totalTax
totalTaxSet
totalTipReceived
totalTipReceivedSet
totalWeight
transactionsCount
unpaid
updatedAt
}
orderId
orderName
orderProcessedAt
remainingLineItemsWeight {
unit
value
}
requestStatus
status
supportedActions {
action
externalUrl
}
updatedAt
}
remainingFulfillmentOrder {
assignedLocation {
address1
address2
city
countryCode
location
name
phone
province
zip
}
channelId
createdAt
deliveryMethod {
additionalInformation
brandedPromise
id
maxDeliveryDateTime
methodType
minDeliveryDateTime
presentedName
serviceCode
sourceReference
}
destination {
address1
address2
city
company
countryCode
email
firstName
id
lastName
location
phone
province
zip
}
fulfillAt
fulfillBy
fulfillmentHolds {
displayReason
handle
heldByApp
heldByRequestingApp
id
reason
reasonNotes
}
id
internationalDuties {
incoterm
}
order {
additionalFees
alerts
app
attribution
billingAddress
billingAddressMatchesShippingAddress
canMarkAsPaid
canNotifyCustomer
cancelReason
cancellation
cancelledAt
capturable
cartDiscountAmount
cartDiscountAmountSet
cartToken
channel
channelInformation
checkoutToken
clientIp
closed
closedAt
confirmationNumber
confirmed
createdAt
currencyCode
currentCartDiscountAmountSet
currentShippingPriceSet
currentSubtotalLineItemsQuantity
currentSubtotalPriceSet
currentTaxLines
currentTotalAdditionalFeesSet
currentTotalDiscountsSet
currentTotalDutiesSet
currentTotalPriceSet
currentTotalTaxSet
currentTotalWeight
customAttributes
customer
customerAcceptsMarketing
customerJourney
customerJourneySummary
customerLocale
discountCode
discountCodes
displayAddress
displayFinancialStatus
displayFulfillmentStatus
disputes
dutiesIncluded
edited
email
estimatedTaxes
fulfillable
fulfillmentsCount
fullyPaid
hasTimelineComment
id
landingPageDisplayText
landingPageUrl
legacyResourceId
merchantBusinessEntity
merchantEditable
merchantEditableErrors
merchantOfRecordApp
name
netPayment
netPaymentSet
note
number
originalTotalAdditionalFeesSet
originalTotalDutiesSet
originalTotalPriceSet
paymentCollectionDetails
paymentGatewayNames
paymentTerms
phone
physicalLocation
poNumber
presentmentCurrencyCode
processedAt
productNetwork
publication
purchasingEntity
referralCode
referrerDisplayText
referrerUrl
refundDiscrepancySet
refundable
registeredSourceUrl
requiresShipping
restockable
retailLocation
returnStatus
risk
riskLevel
shippingAddress
shippingLine
shopifyProtect
sourceIdentifier
sourceName
staffMember
subtotalLineItemsQuantity
subtotalPrice
subtotalPriceSet
tags
taxExempt
taxLines
taxesIncluded
test
totalCapturable
totalCapturableSet
totalCashRoundingAdjustment
totalDiscounts
totalDiscountsSet
totalOutstandingSet
totalPrice
totalPriceSet
totalReceived
totalReceivedSet
totalRefunded
totalRefundedSet
totalRefundedShippingSet
totalShippingPrice
totalShippingPriceSet
totalTax
totalTaxSet
totalTipReceived
totalTipReceivedSet
totalWeight
transactionsCount
unpaid
updatedAt
}
orderId
orderName
orderProcessedAt
remainingLineItemsWeight {
unit
value
}
requestStatus
status
supportedActions {
action
externalUrl
}
updatedAt
}
userErrors {
code
field
message
}
}
}
Variables
Pass these as a JSON object in the step's Variables field.
{
"id": "string",
"fulfillmentHold": {
"reason": "AWAITING_PAYMENT",
"reasonNotes": "string",
"notifyMerchant": false,
"externalId": "string",
"handle": "string",
"fulfillmentOrderLineItems": [
{
"id": "string",
"quantity": "string"
}
]
}
}
Response
Read the result with {{fulfillmentorderhold.response.data.data.fulfillmentOrderHold}}. If the API returns errors, the step fails and they are at {{fulfillmentorderhold.response.data.errors}}.
Need more? See the Shopify guide for connection setup and behaviour shared by every action.
Was this page helpful?