Inventory Transfer
Requires access scope. Also: The user must have permission to view products.
Tracks the movement of objects between Location objects. A transfer includes origin and destination information, objects with quantities, and shipment details.
Transfers progress through multiple statuses. The transfer maintains objects of location details to preserve historical data even if locations change or are deleted later.
Anchor to FieldsFields
- dateCreated (DateTime)
- destination (LocationSnapshot)
- events (EventConnection!)
- hasTimelineComment (Boolean!)
- id (ID!)
- lineItems (InventoryTransferLineItemConnection!)
- lineItemsCount (Count)
- metafield (Metafield)
- metafields (MetafieldConnection!)
- name (String!)
- note (String)
- origin (LocationSnapshot)
- receivedQuantity (Int!)
- referenceName (String)
- shipments (InventoryShipmentConnection!)
- status (InventoryTransferStatus!)
- tags ([String!]!)
- totalQuantity (Int!)
- metafieldDefinitions (MetafieldDefinitionConnection!): deprecated
- Anchor to dateCreateddate•Date
Created Time The date and time the inventory transfer was created in UTC format.
- Anchor to destinationdestination•Location
Snapshot Snapshot of the destination location (name, address, when snapped) with an optional link to the live Location object. If the original location is deleted, the snapshot data will still be available but the location link will be nil.
- Anchor to eventsevents•Event
Connection! non-null The list of events associated with the inventory transfer.
- 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 occurred. Event data is retained for 1 year.
created_at:>2025-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
- Anchor to hasTimelineCommenthas•Boolean!
Timeline Comment non-null Whether the merchant has added timeline comments to the inventory transfer.
- •ID!non-null
A globally-unique ID.
- Anchor to lineItemsline•Inventory
Items Transfer Line Item Connection! non-null The line items associated with the inventory transfer.
- 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.
Arguments
- Anchor to lineItemsCountline•Count
Items Count The number of line items associated with the inventory transfer. Limited to a maximum of 10000 by default.
- 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 limitlimit•IntDefault:10000
The upper bound on count value before returning a result. Use
nullto have no limit.
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, all metafields are returned.
- 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 namename•String!non-null
The name of the inventory transfer.
- Anchor to notenote•String
Additional note attached to the inventory transfer.
- Anchor to originorigin•Location
Snapshot Snapshot of the origin location (name, address, when snapped) with an optional link to the live Location object. If the original location is deleted, the snapshot data will still be available but the location link will be nil.
- Anchor to receivedQuantityreceived•Int!
Quantity non-null The total quantity of items received in the transfer.
- Anchor to referenceNamereference•String
Name The reference name of the inventory transfer.
- Anchor to shipmentsshipments•Inventory
Shipment Connection! non-null The shipments associated with the inventory transfer.
- 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 statusstatus•Inventory
Transfer Status! non-null The current status of the transfer.
- •[String!]!non-null
A list of tags that have been added to the inventory transfer.
- Anchor to totalQuantitytotal•Int!
Quantity non-null The total quantity of items being transferred.
- 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 QueriesQueries
- inventoryTransfer (InventoryTransfer)
- inventoryTransfers (InventoryTransferConnection!)
- •query
Returns an
by ID. Inventory transfers track the movement of inventory between locations, including origin and destination details,objects, quantities, andvalues.- •ID!required
The ID of the inventory transfer.
Arguments
- •ID!
- •query
Returns a paginated list of
objects between locations. Transfers track the movement ofobjects betweenLocationobjects.Supports filtering transfers using query parameters and sorting by various criteria. Use the connection's edges to access transfer details including
objects, quantities, and shipment 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•Transfer
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 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
- Anchor to destination_id•id
- Anchor to origin_id•id
- Anchor to product_id•id
- Anchor to product_variant_id•id
- Anchor to source_id•id
- Anchor to status•string
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
- inventoryTransferCancel (InventoryTransferCancelPayload)
- inventoryTransferCreate (InventoryTransferCreatePayload)
- inventoryTransferCreateAsReadyToShip (InventoryTransferCreateAsReadyToShipPayload)
- inventoryTransferDuplicate (InventoryTransferDuplicatePayload)
- inventoryTransferEdit (InventoryTransferEditPayload)
- inventoryTransferMarkAsReadyToShip (InventoryTransferMarkAsReadyToShipPayload)
- inventoryTransferRemoveItems (InventoryTransferRemoveItemsPayload)
- inventoryTransferSetItems (InventoryTransferSetItemsPayload)
- •mutation
Cancels an inventory transfer.
- •ID!required
The ID of the inventory transfer to cancel.
Arguments
- •ID!
- •mutation
Creates a draft inventory transfer to move inventory items between
Locationobjects in your store. The transfer tracks which items to move, their quantities, and the origin and destination locations.Use
to mark the transfer as ready to ship.CautionAs of version
2026-01, this mutation supports an optional idempotency key using the@idempotentdirective. As of version2026-04, the idempotency key is required and must be provided using the@idempotentdirective. For more information, see the idempotency documentation.Caution:As of version
2026-01, this mutation supports an optional idempotency key using the@idempotentdirective. As of version2026-04, the idempotency key is required and must be provided using the@idempotentdirective. For more information, see the idempotency documentation.Caution: As of version <code>2026-01</code>, this mutation supports an optional idempotency key using the <code>@idempotent</code> directive. As of version <code>2026-04</code>, the idempotency key is required and must be provided using the <code>@idempotent</code> directive. For more information, see the <a href="https://shopify.dev/docs/api/usage/idempotent-requests">idempotency documentation</a>.
- Anchor to inputinput•Inventory
Transfer Create Input! required The input fields for the inventory transfer.
Arguments
- •mutation
Creates an inventory transfer in ready to ship.
CautionAs of 2026-01, this mutation supports an optional idempotency key using the
@idempotentdirective. As of 2026-04, the idempotency key is required and must be provided using the@idempotentdirective. For more information, see the idempotency documentation.Caution:As of 2026-01, this mutation supports an optional idempotency key using the
@idempotentdirective. As of 2026-04, the idempotency key is required and must be provided using the@idempotentdirective. For more information, see the idempotency documentation.Caution: As of 2026-01, this mutation supports an optional idempotency key using the <code>@idempotent</code> directive. As of 2026-04, the idempotency key is required and must be provided using the <code>@idempotent</code> directive. For more information, see the <a href="https://shopify.dev/docs/api/usage/idempotent-requests">idempotency documentation</a>.
- Anchor to inputinput•Inventory
Transfer Create As Ready To Ship Input! required The input fields for the inventory transfer.
Arguments
- •mutation
This mutation allows duplicating an existing inventory transfer. The duplicated transfer will have the same line items and quantities as the original transfer, but will be in a draft state with no shipments.
CautionAs of 2026-01, this mutation supports an optional idempotency key using the
@idempotentdirective. As of 2026-04, the idempotency key is required and must be provided using the@idempotentdirective. For more information, see the idempotency documentation.Caution:As of 2026-01, this mutation supports an optional idempotency key using the
@idempotentdirective. As of 2026-04, the idempotency key is required and must be provided using the@idempotentdirective. For more information, see the idempotency documentation.Caution: As of 2026-01, this mutation supports an optional idempotency key using the <code>@idempotent</code> directive. As of 2026-04, the idempotency key is required and must be provided using the <code>@idempotent</code> directive. For more information, see the <a href="https://shopify.dev/docs/api/usage/idempotent-requests">idempotency documentation</a>.
- •ID!required
The ID of the inventory transfer to duplicate.
Arguments
- •ID!
- •mutation
Edits an inventory transfer.
- •ID!required
The ID of the inventory Transfer to be edited.
- Anchor to inputinput•Inventory
Transfer Edit Input! required The input fields to edit the inventory transfer.
Arguments
- •ID!
- •mutation
Sets an inventory transfer to ready to ship.
- •ID!required
The ID of the inventory transfer to mark as ready to ship.
Arguments
- •ID!
- •mutation
This mutation allows removing the shippable quantities of line items on a Transfer. It removes all quantities of the item from the transfer that are not associated with shipments.
- Anchor to inputinput•Inventory
Transfer Remove Items Input! required The input fields for the InventoryTransferRemoveItems mutation.
Arguments
- •mutation
This mutation allows for the setting of line items on a Transfer. Will replace the items already set, if any.
CautionAs of 2026-01, this mutation supports an optional idempotency key using the
@idempotentdirective. As of 2026-04, the idempotency key is required and must be provided using the@idempotentdirective. For more information, see the idempotency documentation.Caution:As of 2026-01, this mutation supports an optional idempotency key using the
@idempotentdirective. As of 2026-04, the idempotency key is required and must be provided using the@idempotentdirective. For more information, see the idempotency documentation.Caution: As of 2026-01, this mutation supports an optional idempotency key using the <code>@idempotent</code> directive. As of 2026-04, the idempotency key is required and must be provided using the <code>@idempotent</code> directive. For more information, see the <a href="https://shopify.dev/docs/api/usage/idempotent-requests">idempotency documentation</a>.
- Anchor to inputinput•Inventory
Transfer Set Items Input! required The input fields for the InventoryTransferSetItems mutation.
Arguments
Anchor to InterfacesInterfaces
- CommentEventSubject
- HasEvents
- HasMetafieldDefinitions
- HasMetafields
- Node
- •interface
- •interface
- •interface