Create and Receive a Stock Transfer End-to-End
A stock transfer in Alfred follows a clear lifecycle: Draft → Ready to Ship → In Transit → Received. Multi-shipment support means a single transfer can ship in several packages, each with its own tracking number and ship date. Transfers mirror to Shopify Admin automatically.
Option 1: Single-shipment transfer
RecommendedGo to Stock Transfers and click 'Transfer between Locations'.
Pick the origin and destination locations (they must be different) and optionally name the transfer.
The transfer opens in Draft state. Use the product picker to add variants, setting quantities for each. The picker shows current availability at both locations.
When the item list is final, click 'Mark Ready to Ship'. Alfred creates the corresponding Shopify transfer and reserves the committed units at the origin.
When the package physically leaves, click 'Add shipment'. Enter the quantity shipped per line (defaults to the full committed amount for a single-shipment transfer), add a tracking number and ship date, and save. The transfer transitions to In Transit.
When the shipment arrives at the destination, open the transfer and click 'Receive' on the shipment.
Enter the received quantity for each line. If a count differs from what shipped, pick a discrepancy reason (damaged, lost, miscounted, over-received).
Submit to push inventory increments to Shopify at the destination. The transfer transitions to Received once all shipped units are accounted for.
Option 2: Multi-shipment transfer (split across packages)
Create a draft transfer with all items and full intended quantities, the same way you would for a single-shipment transfer.
Mark Ready to Ship.
When the first package leaves, click 'Add shipment' and enter just the quantities going in that package (not the full transfer). Add the tracking number for that package. Save.
When the second package leaves, click 'Add shipment' again. Enter the quantities in this second package. Add its own tracking number. Save.
Continue creating shipments until all outstanding units are dispatched. The parent transfer's totals (committed, shipped, outstanding) update with each shipment.
Receive each shipment independently as it arrives at the destination — each gets its own receive event with its own discrepancy tracking.
The transfer transitions to Received once every shipment is closed.
Pro Tips
- 💡Treat Draft as a planning tool — drafts don't reserve inventory, so leaving them open while you finalize the list costs nothing.
- 💡Always enter a tracking number on each shipment. It gives your destination team a way to monitor arrival and stays attached to the shipment record for audit.
- 💡Reconcile discrepancies at receive time, not later. The four reasons (damaged, lost, miscounted, over-received) live on the shipment item — useful when investigating carrier issues weeks down the line.
- 💡Cancel transfers you're not going to ship rather than leaving them in Ready to Ship — cancellation releases the origin reservation so the units come back into available inventory.
- 💡Open the transfer in Shopify Admin (Products → Transfers) once or twice to confirm the two sides match — they should always be in sync, but a spot-check builds confidence.