Inventory transfers move stock between locations (or from an external supplier into one of your locations). Each transfer has a set of line items and one or more shipments that carry those line items to their destination.
Sample File
Download a sample inventory transfer file that creates two draft transfers with line items.
General
ID
Description | Example Value |
Shopify's unique inventory transfer ID |
|
If the ID matches an existing transfer on the store, that transfer is updated; if it's blank, a new transfer is created. When creating new transfers, you can also put any made-up value in this column to group multiple rows into the same transfer - Shopify will generate the real ID at create time and your placeholder is discarded.
Name
Description | Example Value |
Shopify-assigned transfer name |
|
The human-readable name (e.g., #T123) that Shopify assigns to every transfer. It cannot be set or changed on import - Shopify generates it. When updating an existing transfer you can use the Name column to look it up if you don't have the numeric ID. When creating new transfers you can still put any value in this column to group multiple rows together into the same transfer; the placeholder is only used for grouping and is discarded once the transfer is created. If you need a writable identifier of your own, use Reference Name instead.
Command
Description | Example Value |
Action to perform: MERGE, NEW, DELETE |
|
MERGE: Update the existing transfer (matched by
ID) or create a new one if no match is found.NEW: Create a new transfer. If a transfer with the provided
IDalready exists, the row is skipped.DELETE: Delete the transfer matched by
ID. Only draft transfers can be deleted; useStatus = Cancelledto cancel transfers that are further along.
REPLACE is not supported for inventory transfers.
Status
Description | Example Value |
Transfer lifecycle status |
|
Draft: The transfer is being prepared and can still be edited freely.
Ready to Ship: Line items and locations are locked in; the transfer is waiting on a shipment.
In Progress: At least one shipment is in transit.
Received: All shipments have been received.
Cancelled: The transfer has been cancelled.
When importing, the app walks the status machine from the transfer's current status towards the requested one. Only legal transitions are allowed (for example, you cannot move a cancelled transfer back to draft). In Progress and Received are controlled by shipment operations - to reach those statuses, include shipment columns in your spreadsheet (see the Shipments section below). If the status column is set to one of these values but no shipment columns are present, the status is ignored.
Reference Name
Description | Example Value |
Your internal reference name |
|
A free-form reference you can use to tie the transfer back to a purchase order or other internal identifier.
Date Created
Description | Example Value |
Transfer creation date |
|
The date the transfer was created. ISO-formatted timestamps (eg, 2026-04-01T09:00:00Z) are also supported. If no timezone is specified, the store's timezone is used.
Note
Description | Example Value |
Free-form note on the transfer |
|
A plain-text note stored on the transfer. Visible in the Shopify admin.
Tags
Description | Example Value |
Comma-separated tags for the transfer |
|
Tags help categorize transfers and can be used as export filters.
Total Quantity
Description | Example Value |
Sum of all line-item quantities - Export only |
|
The total number of units being moved by the transfer. This is calculated by Shopify and cannot be imported.
Received Quantity
Description | Example Value |
Sum of quantities already received - Export only |
|
How many units have been received across all shipments on this transfer. Export only.
Origin Location
Description | Example Value |
Name or ID of the location the stock is leaving |
|
Either the location name or its Shopify ID can be used. Leave this column blank to indicate that the transfer comes from an external supplier (no Shopify location).
Destination Location
Description | Example Value |
Name or ID of the location the stock is going to |
|
Either the location name or its Shopify ID can be used. Leave this column blank to indicate that the destination is external (stock leaving your Shopify locations).
Origin and destination can only be changed while the transfer is in Draft status.
Line Items
Line items are represented as additional rows under the same transfer. The first row holds the transfer-level columns; subsequent rows only need the line-item columns populated.
Line Item: ID
Description | Example Value |
Shopify line item ID - Export only |
|
Used internally to identify an existing line item. Usually you don't need to provide this on import - the line item is matched by SKU or barcode instead.
Line Item: Command
Description | Example Value |
Action to perform on the line item |
|
MERGE (default): Add the line item to the transfer, or update its quantity if a matching inventory item is already on the transfer.
DELETE: Remove the matching line item from the transfer.
Line Item: SKU
Description | Example Value |
Variant SKU for the line item |
|
The app looks up the variant by SKU and uses its inventory item. If both SKU and Barcode are provided, SKU wins. If the SKU matches more than one variant in your store, the row is rejected with error TRFR021 - duplicate SKUs must be resolved before the transfer can be imported.
Line Item: Barcode
Description | Example Value |
Variant barcode for the line item |
|
An alternative way to look up the inventory item when the SKU is not available. As with the SKU column, ambiguous barcodes are rejected with error TRFR021.
Line Item: Product
Description | Example Value |
Product title - Export only |
|
The title of the product that owns the inventory item. Export only.
Line Item: Variant
Description | Example Value |
Variant title - Export only |
|
The title of the variant. Export only.
Line Item: Quantity
Description | Example Value |
Number of units to move for this line item |
|
Quantity must be greater than zero. Setting a line item to 0 has no effect; use Line Item: Command = DELETE to remove a line item instead.
Line Item: Shippable Quantity
Description | Example Value |
Quantity still available to ship - Export only |
|
The portion of the line item that has not yet been added to a shipment.
Line Item: Shipped Quantity
Description | Example Value |
Quantity already attached to a shipment - Export only |
|
Summed across all shipments on the transfer.
Line Item: Received Quantity
Description | Example Value |
Quantity accepted at the destination - Export only |
|
Aggregated from the individual shipment line items.
Line Item: Rejected Quantity
Description | Example Value |
Quantity rejected at the destination - Export only |
|
Aggregated from the individual shipment line items.
Shipments
Shipments carry the line items from origin to destination. A transfer can have multiple shipments - the columns for each shipment use a numbered prefix (Shipment 1:, Shipment 2:, and so on).
When the sheet has no Line Item: columns at all, shipments apply to the entire transfer automatically, pulling in every line item at its full shippable quantity. This is the easiest way to ship a transfer - just provide the Shipment 1: columns and every line item on the transfer will be included. Mixing Shipment: and Shipment 1: columns in the same sheet is not allowed.
A transfer must be in Ready to Ship or later before a shipment can be created against it. If the transfer is currently in Draft, include a Status column set to Ready to Ship (or In Progress / Received if you also want to walk it further along the lifecycle) in the same row as the shipment columns - Altera will transition the transfer out of draft before creating the shipment.
Shipment 1: ID
Description | Example Value |
Shopify shipment ID |
|
If present, the shipment is updated. If blank, a new shipment is created for the transfer.
Shipment 1: Command
Description | Example Value |
Action to perform on the shipment |
|
MERGE (default): Create the shipment if the
IDis blank, or update it if anIDis provided.DELETE: Delete the shipment identified by
Shipment N: ID.
Shipment 1: Name
Description | Example Value |
Shopify-assigned name - Export only |
|
Generated by Shopify; cannot be imported.
Shipment 1: Status
Description | Example Value |
Shipment lifecycle state |
|
Draft: The shipment is being prepared.
In Transit: The shipment has left the origin.
Partially Received: Some line items have been received at the destination.
Received: All line items have been received.
When importing, the app walks the shipment through the required status transitions (for example, from Draft → In Transit → Received).
Shipment 1: Date Created
Description | Example Value |
Shipment creation date |
|
ISO-formatted timestamps are also supported.
Shipment 1: Date Shipped
Description | Example Value |
Date the shipment was marked in transit |
|
Used when transitioning a shipment from Draft to In Transit.
Shipment 1: Date Received
Description | Example Value |
Date the shipment was received |
|
Used when transitioning a shipment to Received.
Shipment 1: Tracking Company
Description | Example Value |
Name of the carrier |
|
Shipment 1: Tracking Number
Description | Example Value |
Carrier tracking number |
|
Shipment 1: Tracking URL
Description | Example Value |
Direct link to carrier page |
Shipment 1: Arrives At
Description | Example Value |
Estimated arrival date/time |
|
Shipment 1: Barcode
Description | Example Value |
Barcode on the physical shipment label |
|
Shipment 1: Total Quantity
Description | Example Value |
Total units in the shipment - Export only |
|
Shipment 1: Accepted Quantity
Description | Example Value |
Units accepted at the destination - Export only |
|
Shipment 1: Rejected Quantity
Description | Example Value |
Units rejected at the destination - Export only |
|
Metafields
Metafields can be imported and exported with inventory transfers to store custom metadata and additional attributes.
For detailed information about working with metafields, see our Metafields guide.
Export Filters
You can use these filters to limit which inventory transfers are exported:
id: Filter by transfer IDstatus: Filter by status (Draft,Ready to Ship,In Progress,Received,Cancelled)origin_id: Filter by the origin location IDdestination_id: Filter by the destination location IDproduct_id: Filter to transfers containing a specific productproduct_variant_id: Filter to transfers containing a specific varianttag: Filter by tagcreated_at: Filter by creation date
