Skip to main content

FulfillmentOrder

Requires one of the read_assigned_fulfillment_orders, read_marketplace_fulfillment_orders, read_merchant_managed_fulfillment_orders, or read_third_party_fulfillment_orders access scopes.

Subscribe to field-level change events on the FulfillmentOrder GraphQL Admin API object. You can subscribe to created, deleted, and updated resources, as well as changes to specific fields.

Each topic corresponds to a commerce resource that can exist independently within its domain. Child entities that depend on a parent within the same domain don't have their own topic. Instead, changes to child entities trigger the parent's webhook. Calculated fields, derived fields, auto-updated timestamps, and cross-domain fields aren't available as triggers.

shopify.app.toml

[events]
api_version = "unstable"

[[events.subscription]]
handle = "my_fulfillment-order_event"

topic = "FulfillmentOrder"
actions = ["update"]
triggers = ["fulfillmentOrder.assignedLocation.*"]

uri = "https://your-app.com/events"

query = """
query fulfillmentOrder_details($fulfillmentOrderId: ID!) {
fulfillmentOrder(id: $fulfillmentOrderId) {
id
}
}
"""

Field-level triggers for FulfillmentOrder events.

All triggers require one of the read_assigned_fulfillment_orders, read_marketplace_fulfillment_orders, read_merchant_managed_fulfillment_orders, or read_third_party_fulfillment_orders access scopes. Those triggers that require additional scopes are documented where relevant. Deprecated triggers are listed last.

Subscriptions can be made up of multiple triggers. Each delivery carries a unique composite key in the shopify-webhook-id header. Use this value to detect and ignore duplicate deliveries.

Custom queries aren't limited to FulfillmentOrder. You can query other GraphQL Admin API objects as needed for your use case.

Anchor to list-of-topics-fulfillmentOrder.*
fulfillmentOrder.*

Fires when events involve the FulfillmentOrder object, which represents either an item or a group of items in an Order that are expected to be fulfilled from the same location.

The "create" and "delete" actions are only relevant within the context of this parent topic. Use fields_changed to follow or replicate impacted data after a delete event. Define a custom query to retrieve specific fields from create events.

fulfillmentOrder.* is a parent trigger. Subscribing with the "update" action receives events for all supported triggers under fulfillmentOrder, including nested triggers. Use a more specific trigger to limit events to the fields you need.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.assignedLocation.*
fulfillmentOrder.assignedLocation.*

Fires when the assignedLocation field on the FulfillmentOrder object changes.

fulfillmentOrder.assignedLocation.* is a parent trigger. Subscribing with the "update" action receives events for all supported triggers under fulfillmentOrder.assignedLocation, including nested triggers. Use a more specific trigger to limit events to the fields you need.

Include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The assignedLocation field represents the fulfillment order's assigned location.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.assignedLocation.address1
fulfillmentOrder.assignedLocation.address1

Fires when the address1 field on the FulfillmentOrderAssignedLocation object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The address1 field represents the first line of the address for the location.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.assignedLocation.address2
fulfillmentOrder.assignedLocation.address2

Fires when the address2 field on the FulfillmentOrderAssignedLocation object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The address2 field represents the second line of the address for the location.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.assignedLocation.city
fulfillmentOrder.assignedLocation.city

Fires when the city field on the FulfillmentOrderAssignedLocation object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The city field represents the city of the location.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.assignedLocation.countryCode
fulfillmentOrder.assignedLocation.countryCode

Fires when the countryCode field on the FulfillmentOrderAssignedLocation object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The countryCode field represents the two-letter country code of the location.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.assignedLocation.name
fulfillmentOrder.assignedLocation.name

Fires when the name field on the FulfillmentOrderAssignedLocation object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The name field represents the name of the location.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.assignedLocation.phone
fulfillmentOrder.assignedLocation.phone

Fires when the phone field on the FulfillmentOrderAssignedLocation object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The phone field represents the phone number of the location.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.assignedLocation.province
fulfillmentOrder.assignedLocation.province

Fires when the province field on the FulfillmentOrderAssignedLocation object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The province field represents the province of the location.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.assignedLocation.zip
fulfillmentOrder.assignedLocation.zip

Fires when the zip field on the FulfillmentOrderAssignedLocation object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The zip field represents the ZIP code of the location.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.deliveryMethod.*
fulfillmentOrder.deliveryMethod.*

Fires when the deliveryMethod field on the FulfillmentOrder object changes.

fulfillmentOrder.deliveryMethod.* is a parent trigger. Subscribing with the "update" action receives events for all supported triggers under fulfillmentOrder.deliveryMethod, including nested triggers. Use a more specific trigger to limit events to the fields you need.

Include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

Delivery method of this fulfillment order.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.deliveryMethod.brandedPromise
fulfillmentOrder.deliveryMethod.brandedPromise

Fires when the brandedPromise field on the DeliveryMethod object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The brandedPromise field represents the branded promise that was presented to the buyer during checkout.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.deliveryMethod.maxDeliveryDateTime
fulfillmentOrder.deliveryMethod.maxDeliveryDateTime

Fires when the maxDeliveryDateTime field on the DeliveryMethod object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The maxDeliveryDateTime field represents the latest delivery date and time when the fulfillment is expected to arrive at the buyer's location.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.deliveryMethod.minDeliveryDateTime
fulfillmentOrder.deliveryMethod.minDeliveryDateTime

Fires when the minDeliveryDateTime field on the DeliveryMethod object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The minDeliveryDateTime field represents the earliest delivery date and time when the fulfillment is expected to arrive at the buyer's location.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.deliveryMethod.sourceReference
fulfillmentOrder.deliveryMethod.sourceReference

Fires when the sourceReference field on the DeliveryMethod object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

Source reference is promise provider specific data associated with delivery promise.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.destination
fulfillmentOrder.destination

Fires when the destination field on the FulfillmentOrder object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The destination field represents the destination where the items should be sent.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.fulfillAt
fulfillmentOrder.fulfillAt

Fires when the fulfillAt field on the FulfillmentOrder object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The fulfillAt field represents the date and time at which the fulfillment order will be fulfillable.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.fulfillBy
fulfillmentOrder.fulfillBy

Fires when the fulfillBy field on the FulfillmentOrder object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The fulfillBy field represents the latest date and time by which all items in the fulfillment order need to be fulfilled.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.fulfillmentHolds
fulfillmentOrder.fulfillmentHolds

Fires when the fulfillmentHolds field on the FulfillmentOrder object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The fulfillmentHolds field represents the fulfillment holds applied on the fulfillment order.

Variables: fulfillmentHoldsId, fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.fulfillments.*
fulfillmentOrder.fulfillments.*

Fires when the fulfillments field on the FulfillmentOrder object changes.

fulfillmentOrder.fulfillments.* is a parent trigger. Subscribing with the "update" action receives events for all supported triggers under fulfillmentOrder.fulfillments, including nested triggers. Use a more specific trigger to limit events to the fields you need.

Include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The fulfillments field contains a list of fulfillments for the fulfillment order.

Variables: fulfillmentOrderId, fulfillmentsId

Anchor to list-of-topics-fulfillmentOrder.fulfillments.estimatedDeliveryAt
fulfillmentOrder.fulfillments.estimatedDeliveryAt

Fires when the estimatedDeliveryAt field on the Fulfillment object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The estimatedDeliveryAt field represents the estimated date that this fulfillment will arrive.

Variables: fulfillmentOrderId, fulfillmentsId

Anchor to list-of-topics-fulfillmentOrder.fulfillments.status
fulfillmentOrder.fulfillments.status

Fires when the status field on the Fulfillment object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The status field represents the status of the fulfillment.

Variables: fulfillmentOrderId, fulfillmentsId

Anchor to list-of-topics-fulfillmentOrder.fulfillments.trackingInfo.*
fulfillmentOrder.fulfillments.trackingInfo.*

Fires when the trackingInfo field on the Fulfillment object changes.

fulfillmentOrder.fulfillments.trackingInfo.* is a parent trigger. Subscribing with the "update" action receives events for all supported triggers under fulfillmentOrder.fulfillments.trackingInfo, including nested triggers. Use a more specific trigger to limit events to the fields you need.

Include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

Tracking information associated with the fulfillment, such as the tracking company, tracking number, and tracking URL.

Variables: fulfillmentOrderId, fulfillmentsId

Anchor to list-of-topics-fulfillmentOrder.fulfillments.trackingInfo.company
fulfillmentOrder.fulfillments.trackingInfo.company

Fires when the company field on the FulfillmentTrackingInfo object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The company field represents the name of the tracking company.

Variables: fulfillmentOrderId, fulfillmentsId

Anchor to list-of-topics-fulfillmentOrder.fulfillments.trackingInfo.number
fulfillmentOrder.fulfillments.trackingInfo.number

Fires when the number field on the FulfillmentTrackingInfo object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The number field represents the tracking number of the fulfillment.

Variables: fulfillmentOrderId, fulfillmentsId

Anchor to list-of-topics-fulfillmentOrder.fulfillments.trackingInfo.url
fulfillmentOrder.fulfillments.trackingInfo.url

Fires when the url field on the FulfillmentTrackingInfo object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The url field represents the URLs to track the fulfillment.

Variables: fulfillmentOrderId, fulfillmentsId

Anchor to list-of-topics-fulfillmentOrder.lineItems.*
fulfillmentOrder.lineItems.*

Fires when the lineItems field on the FulfillmentOrder object changes.

fulfillmentOrder.lineItems.* is a parent trigger. Subscribing with the "update" action receives events for all supported triggers under fulfillmentOrder.lineItems, including nested triggers. Use a more specific trigger to limit events to the fields you need.

Include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The lineItems field contains a list of the fulfillment order's line items.

Variables: fulfillmentOrderId, lineItemsId

Anchor to list-of-topics-fulfillmentOrder.lineItems.remainingQuantity
fulfillmentOrder.lineItems.remainingQuantity

Fires when the remainingQuantity field on the FulfillmentOrderLineItem object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The remainingQuantity field represents the number of units remaining to be fulfilled.

Variables: fulfillmentOrderId, lineItemsId

Anchor to list-of-topics-fulfillmentOrder.lineItems.totalQuantity
fulfillmentOrder.lineItems.totalQuantity

Fires when the totalQuantity field on the FulfillmentOrderLineItem object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The totalQuantity field represents the total number of units to be fulfilled.

Variables: fulfillmentOrderId, lineItemsId

Anchor to list-of-topics-fulfillmentOrder.merchantRequests
fulfillmentOrder.merchantRequests

Fires when the merchantRequests field on the FulfillmentOrder object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The merchantRequests field contains a list of requests sent by the merchant or an order management app to the fulfillment service for the fulfillment order.

Variables: fulfillmentOrderId, merchantRequestsId

Anchor to list-of-topics-fulfillmentOrder.requestStatus
fulfillmentOrder.requestStatus

Fires when the requestStatus field on the FulfillmentOrder object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The requestStatus field represents the request status of the fulfillment order.

Variables: fulfillmentOrderId

Anchor to list-of-topics-fulfillmentOrder.status
fulfillmentOrder.status

Fires when the status field on the FulfillmentOrder object changes.

Subscribe to this trigger with the "update" action and include the field in a custom query to retrieve updated data from the payload. You can trace the field in subsequent requests using fields_changed.

The status field represents the status of the fulfillment order.

Variables: fulfillmentOrderId


Was this page helpful?