Complete Guide

Inventory Transfers for Shopify

How to move stock accurately between Shopify locations — covering transfer orders, partial transfers, transit inventory tracking, and the audit trail that makes discrepancy investigation possible.

AP
Abhishek Pandey · July 14, 2026 · Updated August 25, 2026

What are inventory transfers?

An inventory transfer is the structured movement of stock from one location to another within your own network — from a central warehouse to a retail store, from one fulfilment centre to another, or from your warehouse to a 3PL. Unlike a purchase order, which brings new inventory from an external supplier, a transfer redistributes inventory you already own between locations you already manage.

The purpose of a formal transfer workflow — as opposed to manual stock adjustments — is accuracy and accountability. When transfers are managed with transfer orders, every movement is documented: what was sent, from where, to where, by whom, and when it was received. This documentation is the foundation for investigating any future stock discrepancy.

  • Location rebalancing

    When one location is overstocked and another understocked, a transfer rebalances without requiring a new purchase order from the supplier.

  • Retail replenishment

    Retail stores typically source replenishment stock from a central warehouse. Transfer orders formalise this process and update both location records.

  • 3PL restocking

    Moving products to a 3PL for fulfilment, or returning goods from a 3PL to your warehouse, requires accurate records of what moved and when.

  • Seasonal repositioning

    Before peak season, merchants often move inventory from slow-selling regions to high-demand locations. Transfers enable this without double-counting.

Native Shopify vs. a dedicated inventory app

Shopify does not include formal transfer order management. The native approach — manually adjusting inventory levels at each location — creates two structural problems that grow more severe as transfer volume increases.

Double-counting during transit

When you subtract from Location A and add to Location B in separate steps, there is a period (however brief) where the inventory appears at both locations, or at neither. In a live Shopify store, this creates a window for overselling or for stock reports to show incorrect totals.

No audit trail

Manual adjustments have no inherent connection to each other. If Location B's inventory is wrong three weeks after a transfer, there is no record to investigate. A formal transfer order maintains the link between dispatch and receipt, with timestamps and quantities for every step.

No in-transit visibility

With manual adjustments, you cannot see how much stock is currently moving between locations. A transfer order system shows you a transit view: stock that has left Location A but has not yet arrived at Location B.

Creating a transfer order

A transfer order specifies what is moving, from which location, to which destination, and the expected transfer timeline. Creating one in a dedicated inventory app takes less time than creating a manual adjustment — and produces a structured record rather than a standalone stock change.

    01

    Select origin and destination locations

    Choose the location sending stock and the location receiving it. Both must be active Shopify locations connected to your inventory system.

    02

    Add products and quantities

    Select each product variant to transfer and specify the quantity. The system should show current stock at the origin to prevent creating a transfer for more than is available.

    03

    Set expected transfer date

    Record when the goods are expected to arrive at the destination. This helps with receiving planning and allows alerts when a transfer is overdue.

    04

    Dispatch the transfer

    Marking the transfer as dispatched decrements inventory at the origin and creates a transit record. The destination location does not yet show the incoming stock.

    05

    Receive at destination

    When goods arrive, receive them against the transfer. The inventory is incremented at the destination and the transit record is cleared. Discrepancies between dispatched and received quantities are flagged.

Tracking transit inventory

Transit inventory is stock that has left the origin but has not yet been received at the destination. It exists in a state between locations — on a truck, in a courier's possession, or staged at a loading dock. How you account for transit inventory directly affects the accuracy of your per-location stock reports.

  • Transit duration tracking

    A transfer system records when the transfer was dispatched. If goods have not been received within the expected window, the system flags the transfer as overdue, prompting investigation.

  • In-transit stock visibility

    You can see exactly how many units of each product are currently in transit across your network — not yet at the destination but no longer at the origin.

  • Receiving validation

    When goods arrive, the receiving process checks received quantities against dispatched quantities. Any shortfall or overage is recorded as a discrepancy on the transfer record.

  • Discrepancy investigation

    If received quantities do not match dispatched quantities, the transfer record provides a starting point for investigation — exact dispatch timestamp, expected quantity, and the identity of who created and dispatched the transfer.

Transfer audit trail

An audit trail is a complete, timestamped history of every action taken on a transfer order. It records who created the transfer, who approved it, when it was dispatched, when it was received, and whether any quantities were adjusted at any stage.

The audit trail matters most when something goes wrong. When a retail store reports receiving fewer units than expected, the audit trail shows exactly what was dispatched, from where, and when — allowing you to determine whether the error occurred at dispatch, during transit, or at receiving. Without this record, every discrepancy investigation starts from zero.

What a transfer audit trail captures

  • Transfer creation — who created it and when
  • Products and quantities added to the transfer
  • Dispatch event — timestamp and dispatched quantity per line item
  • Receiving event — timestamp and received quantity per line item
  • Discrepancy record — any difference between dispatched and received
  • Adjustment notes — reason for any manual override

Frequently asked questions

An inventory transfer is the movement of stock from one Shopify location to another — for example, from a central warehouse to a retail store, or from one fulfilment centre to another. Unlike a purchase order (which brings new inventory into the network from a supplier), a transfer redistributes existing inventory between locations you already manage.

Shopify's native tools do not include formal inventory transfer orders. To move stock between locations in Shopify, merchants manually adjust inventory levels — subtracting units from the origin and adding them to the destination. This approach has two problems: it removes the audit trail connecting the two adjustments, and it creates a period where the same inventory appears at both locations simultaneously (double-counting) or at neither location (a gap).

An inventory adjustment is a manual change to the stock level at a single location — for example, correcting a count discrepancy or writing off damaged goods. A transfer is a structured movement from one location to another. The key difference is that a transfer creates a linked pair of adjustments with a documented reason (movement of goods), whereas a standalone adjustment has no inherent connection to what happened at another location.

Inventory in transit is stock that has left the origin location but has not yet been received at the destination. A dedicated inventory app creates a transit record: the inventory is decremented at the origin when the transfer is dispatched and does not appear at the destination until it is received. This prevents double-counting and allows you to see how much stock is currently in motion across your network at any time.

Yes. A partial transfer occurs when only some of the requested items are dispatched in the first shipment, or when only some items are received at the destination. A good inventory system supports partial dispatch (items leave the origin in multiple batches) and partial receipt (items arrive at the destination in multiple batches), keeping the transfer record open until all quantities are fully received.

A transfer audit trail is a timestamped record of every action taken on a transfer order — when it was created, who created it, when items were dispatched, when they were received, and whether any quantities were adjusted during transit. The audit trail is essential for investigating inventory discrepancies. Without it, when stock levels are wrong you cannot determine whether the error occurred during dispatch, transit, or receiving.

When goods arrive at the destination and some units are damaged, the receiving process should allow you to record the received quantity separately from the undamaged quantity. The damaged units should be written off with an inventory adjustment (with a damage reason code) rather than simply not being received — this keeps the transfer record accurate and creates a paper trail for insurance claims or supplier chargebacks.

An inventory transfer moves the cost of goods between locations along with the physical units. If you use average cost valuation (which Shopify uses natively), the average cost of each unit follows the inventory to the new location. Transfers do not create new cost — they reallocate existing cost between locations. This is different from a purchase order, which introduces new cost into the inventory at the price on the PO.

More in this guide

Transfer inventory with a full audit trail

Supremo gives you formal transfer orders, transit tracking, and receiving workflows — keeping every Shopify location accurate.