Shopify inventory transfer is the built-in workflow for moving existing stock from one of your Shopify locations to another — whether that is a Johannesburg warehouse sending product to a Cape Town retail store, a central storeroom pushing to a satellite pickup point, or a main outlet restocking a sister branch. If you run more than one stocking point through your Shopify store in South Africa, the transfer feature gives you a structured, auditable record of what moved, where it went, and whether it arrived — without manually adjusting inventory counts at both ends and hoping the numbers match.
Many SA operators skip this feature entirely, subtracting stock at the origin and adding it at the destination by hand. That works until a part-received delivery, a team handover, or an offline receipt during load-shedding creates a discrepancy no one can trace. A solid inventory management approach depends on those records existing. The transfer workflow creates them automatically at every stage of the stock's journey.
Quick Answer
A shopify inventory transfer is a native feature found at Products → Transfers in your admin. It records and tracks the movement of existing stock between your store's active locations, moving through five statuses — Draft, Ready to ship, In progress, Transferred, and Canceled — while keeping inventory counts accurate at both origin and destination throughout. It is available on all paid Shopify plans and is separate from a purchase order, which records new stock ordered from a supplier.
In This Guide
Are inventory gaps between your locations costing you sales?
Share your current Shopify setup and we will show you exactly where stock visibility is breaking down.
Get a Free Shopify ReviewWhat Stock Transfers Do — and What They Do Not
An inventory transfer records and tracks the physical movement of existing stock between your store locations, so that both the origin and destination show accurate counts at every stage of the journey. It is not a purchase order, not a sale, and not a manual adjustment — it is a structured handoff record that tells Shopify where the stock is at any given moment between leaving one location and arriving at another.
Once a transfer moves to Ready to ship, the stock at the origin becomes committed and is no longer available to sell — but the destination count is not yet affected. When the transfer moves to In progress, the destination shows the stock as incoming, giving your receiving team a planning signal before the product physically arrives. When stock is marked as received, Shopify deducts the quantity from the origin and adds it to the destination's available count — no double-entry, no reconciliation guesswork.
Each transfer record captures:
- A reference name and freeform notes for internal context
- Tags for filtering and reporting
- Tracking numbers, shipping carriers and expected arrival dates
- Shipment barcodes (up to 250 characters per shipment)
- A full status history from draft through to completion or cancellation
What transfers are not
An inventory transfer moves stock you already own between your own locations. It is not the right tool when you are ordering new stock from a supplier — that requires a purchase order. It also does not adjust for damaged stock at a single location; a manual inventory adjustment handles that without needing a second location involved.
How to Create a Shopify Inventory Transfer
Creating a shopify inventory transfer takes under five minutes in your admin once your locations are configured and inventory tracking is enabled on the relevant products.
Prerequisites before you start:
- At least two active Shopify locations set up under Settings → Locations
- Inventory tracking enabled on each product variant you plan to move
- Sufficient available stock at the origin location
Steps to create a transfer:
- Go to Products → Transfers in your Shopify admin and click Create transfer.
- Select your origin location (where the stock currently lives) and your destination location (where it is going). Leave either blank to record a transfer to or from an external location such as a supplier.
- Add products by searching the product name, importing a CSV file (useful for large SKU counts), or scanning barcodes with a compatible scanner.
- Enter the quantity to move in the Move column for each product or variant.
- Optionally add a reference name, notes, and tags — these help when filtering transfers or briefing the team receiving the stock.
- Save as a draft, then choose the processing action that reflects where the stock actually is: Move to in transit, Mark as ready to ship, or Mark as transferred if the stock has already arrived.
Important: Once you process a transfer — meaning you move it out of Draft status — you cannot change the origin or destination locations. If you selected the wrong location, cancel the transfer and create a new one. You can still edit the reference name, notes, tags, and quantities on a processed transfer. See the full workflow in Shopify's official inventory transfers documentation.
Understanding Transfer Statuses
Each transfer status tells your team exactly where the stock is in its journey and determines what staff at the origin and destination can see and do. Understanding these statuses is what makes a Shopify location transfer genuinely useful — the status is not just a label; it controls what actions are available and what the inventory count looks like at each end.
| Status | What it means | At origin | At destination | Editable? |
|---|---|---|---|---|
| Draft | Created but not committed | Stock still available to sell | Nothing shown | Full edit (locations, quantities, products) |
| Ready to ship | Stock reserved; awaiting departure | Committed — not available to sell | Nothing shown yet | Details only (not locations or origin qty) |
| In progress | Stock in transit or partially received | Committed — not available to sell | Shows as incoming for planning | Details only; receive partial quantities |
| Transferred | All stock received and counted | Deducted from available count | Added to available count | No — cancel only |
| Canceled | Transfer stopped | Committed stock released back | No impact | No — final state |
The "In progress" status is your planning signal
When a transfer is In progress, the destination location shows the stock as incoming — not yet available to sell, but visible for fulfilment planning. If a delivery arrives partially, the transfer stays In progress until every expected item is accounted for. Your receiving team can log what arrived and leave the rest for the next delivery without breaking the transfer record.
Transfer vs Purchase Order — Choosing the Right Workflow
The choice between an inventory transfer and a Shopify purchase order depends on where the stock is coming from: a transfer moves stock you already own between your own locations, while a purchase order records new stock you are buying from a supplier.
| Scenario | Use this tool | Why |
|---|---|---|
| Moving stock from JHB warehouse to CT retail store | Inventory transfer | Stock is already yours; this is an internal location move |
| Ordering new product from a supplier | Purchase order | Records the commercial agreement: quantities, costs, payment terms |
| Supplier ships direct to your store (no internal move) | Purchase order | Records receipt of new stock at one location; no second location involved |
| Supplier ships to warehouse; you move stock to a store | PO first, then a linked transfer | PO tracks the buy; the linked transfer tracks the internal move to the store |
| One-off stock count correction (damage, counting error) | Manual inventory adjustment | No movement between locations — just a correction at one stocking point |
PO + transfer: how the link works
Once a purchase order is marked as Ordered in Shopify, you can create a linked inventory transfer to track the physical receipt and any internal movement. The two records operate independently — editing the purchase order does not automatically update the transfer, and you can create multiple transfers from one PO to track separate shipment batches.
Receiving Stock and Handling Partial Deliveries
Receiving a transfer in Shopify confirms that the stock has physically arrived at its destination and immediately moves the received quantities from incoming to available at that location.
To receive a transfer:
- Open the transfer from Products → Transfers.
- Click Receive inventory on the transfer detail page.
- Enter the actual quantity received for each product or variant — not necessarily the transfer quantity if the delivery is partial.
- Click Mark as received. Shopify updates the destination's inventory count immediately.
If your delivery arrives in batches — common when a courier moves product in multiple runs, or when a supplier sends split shipments — add a new shipment to the existing Shopify stock transfer rather than creating a duplicate transfer. Each shipment gets its own shipment ID and tracking number, and the transfer stays In progress until the final batch is received. You can use Manage received items to correct a received quantity after the fact if a count error surfaces.
Using barcodes alongside SKUs during receiving speeds up the count process and reduces entry errors — the receiving team can scan each item rather than typing quantities manually, which matters on large or multi-SKU deliveries.
Good: A Johannesburg warehouse sends 200 units of three SKUs to a Cape Town store. The driver's vehicle can only carry 120 units on the first trip. The receiving team logs the 120 in the transfer, leaving it In progress. The remaining 80 arrive two days later and are logged in the same transfer, which then moves to Transferred. One clean record, no duplicate entries.
Avoid: Creating a new transfer for each partial delivery of the same shipment. This produces duplicate records, inflates your transfer count, and makes it impossible to see whether the full expected quantity ever arrived in one place.
Multi-Location Considerations for South African Retailers
South African merchants running a warehouse-and-store operation use Shopify's inventory transfer workflow to keep stock counts accurate across province-spanning moves — one structured record updates both the origin and destination, replacing the manual subtract-and-add approach that creates errors on long-distance deliveries. When you need to transfer inventory between Shopify locations across provinces, the physical gap between a Gauteng warehouse and a Cape Town or Durban outlet is wide enough that an untracked move surfaces counting errors by the time product arrives, especially across shift handovers.
With 25,343 live Shopify stores in South Africa as of September 2026 (StoreLeads), and Gauteng alone accounting for roughly 46% of them (11,616 stores), the most common multi-location setup is a primary Johannesburg or Pretoria warehouse with one or more Western Cape or KwaZulu-Natal retail outlets.
Plan limits to know: Basic, Grow, and Advanced plans each support up to 10 active locations. Shopify Plus extends this to 200. For the majority of SA merchants with one warehouse and two or three stores, any non-Plus plan is sufficient. Deactivated locations — such as a seasonal pop-up store that has closed — do not count toward your plan's location cap according to Shopify's guidance on multi-location management, so you preserve the transfer history without it eating into your active limit.
3PL integration: If you use a South African third-party logistics provider, their facility can be set up as a custom fulfilment location in Shopify. Transfers into and out of that location then follow the same workflow as any internal transfer, giving you a consistent record whether stock is moving to your own shelf or to a logistics partner's warehouse.
During load-shedding: If a store team is offline when stock physically arrives, they cannot immediately log the receipt. The In progress status means the incoming quantity stays visible to the broader team for planning purposes. Once power is restored, the receiver logs the actual quantities and the transfer closes. No information is lost; the audit trail stays intact.
Location naming: Use clear, specific names — "JHB Main Warehouse", "CPT Sea Point Retail", "DBN Musgrave Pickup" — rather than generic labels like "Location 1". Origin and destination selection happens by name during transfer creation, and a vague label on a busy day is how the wrong location gets selected.
Deactivated locations preserve history
When a seasonal or temporary location closes, deactivate it rather than deleting it. Deactivated locations keep their transfer history intact and, according to Shopify's guidance on multi-location management, do not count toward your plan's active location limit — so you lose no operational record and free up the slot for a future location.
Scaling your SA store to a second or third location?
Tell us where you are in the build and we will map the inventory and fulfilment workflow that fits your current Shopify plan and team.
Talk to Our Shopify TeamWhy South African Businesses Choose Growth Pulse Media
Growth Pulse Media was founded by Dirk van Greuning, who built and scaled a large South African ecommerce business before launching the agency. That background means inventory workflows, multi-location fulfilment, and the day-to-day decisions around platforms like Shopify, PayFast, and Peach Payments are familiar ground — not theoretical knowledge.
As a registered Shopify Partner, GPM works across the full Shopify stack: store configuration, inventory setup, email automation via Omnisend, and the paid media that drives acquisition. If you need a team that can connect your inventory setup to your marketing and fulfilment operations, our Shopify marketing agency works with a limited number of clients to keep attention genuinely senior. All work is executed in-house — no subcontracting, no handoffs mid-project.
Who This Is NOT For
Single-location stores: The inventory transfer Shopify provides only makes sense when you have at least two active stocking locations. If all your stock lives in one place, there is no second location to transfer to. Manual inventory adjustments and purchase orders cover everything you need. The transfer feature adds complexity with no benefit until a second active location exists.
Operators wanting automated replenishment decisions: Shopify's transfer tool tracks movement — it does not tell you when to transfer or how much. If you want demand-based replenishment recommendations (minimum stock levels triggering automatic reorder signals), you need a specialist inventory planning app. The native tool leaves that planning entirely to you.
Operations requiring bin-level or pick-list warehouse management: Transfers work at the location level, not the bin or aisle level. If your warehouse operation needs to know exactly which shelf bay an item came from or generate pick lists by zone, a dedicated warehouse management system (WMS) is the right tool, not Shopify transfers.
Teams expecting POs and transfers to stay in sync automatically: A purchase order and its linked inventory transfer operate as independent records. Editing the PO — changing quantities or delivery dates — does not update the transfer. If your team expects the two to mirror each other automatically, the manual sync step will catch people off guard during busy receiving periods.
Not sure if your inventory setup is creating gaps in your fulfilment?
Send us your Shopify location configuration and we will identify the gaps in one call.
Book a Free AuditFrequently Asked Questions
What is a Shopify inventory transfer?
A Shopify inventory transfer is a native admin feature that records and tracks the movement of existing stock between two of your store's active locations. It moves through five statuses — Draft, Ready to ship, In progress, Transferred, and Canceled — and automatically updates inventory counts at both the origin and destination as the stock changes hands. It is found at Products → Transfers in your Shopify admin.
How do I receive stock from an inventory transfer in Shopify?
Open the transfer from Products → Transfers, click Receive inventory, enter the actual quantity received for each item, and click Mark as received. Shopify immediately adds the received quantities to the destination location's available count. If you are receiving a partial delivery, enter only the quantities that arrived — the transfer stays In progress until all expected items are logged.
What happens if I only receive part of a transfer?
The transfer remains In progress and the destination continues to show the outstanding quantity as incoming. You can receive the remaining items when they arrive by opening the same transfer and logging the additional quantities. Use Manage received items if you need to correct a quantity that was already logged. Only when all expected items are accounted for does the transfer move to Transferred status.
Do I need Shopify Plus to use inventory transfers?
No. Inventory transfers are available on all paid Shopify plans, including Basic, Grow, and Advanced. The main plan-related limitation is the number of active locations: Basic, Grow, and Advanced support up to 10 active locations each, while Shopify Plus supports up to 200. For most South African merchants operating across a few stores or a warehouse and one or two retail outlets, any standard plan is sufficient.
What is the difference between a Shopify inventory transfer and a purchase order?
An inventory transfer moves stock you already own between your own locations — no supplier transaction is involved. A purchase order records a commercial agreement with a supplier: what you ordered, how much it costs, and the payment terms. When a supplier ships stock to your warehouse, create a purchase order; when you then move some of that stock from the warehouse to a store, create a linked transfer. The two tools work together but serve different purposes and operate independently once linked.
Ready to Get Your Shopify Inventory Workflow Right?
Growth Pulse Media is a registered Shopify Partner with hands-on experience in South African ecommerce — multi-location setups, fulfilment integrations with couriers like The Courier Guy and Aramex, and payment gateways including PayFast and Peach Payments. All work is executed in-house. No obligation — we will get back to you within 24 hours.
Get a Free Shopify Consultation

