Useful Tools

How-to guide

Multi-location picking in Shopify: one pick list per location

How Shopify assigns orders to locations, why a pick list must never mix two stockrooms, and the per-location batch workflow that keeps a shop + warehouse setup sane.

By Bastien HugonFounder & Engineer8 min readPublished July 9, 2026

TL;DR

Shopify assigns each order line a fulfillment location (Settings → Locations, priority order decides ties). Picking stays sane under one rule: one pick list per location per batch — filter the Orders page by location, batch each site separately, and never print a list that mixes stockrooms. Split orders (lines at two locations) ship as two fulfillments and belong on both lists, each with only its own lines.

Multi-location starts innocently — a back room and a garage, a shop and a 3PL — and picking is where it bites first: a consolidated list that silently merges two buildings sends someone walking for stock that is eight kilometers away. The fix is structural, not clerical: location is a *batch boundary*, and everything else about batch picking stays the same within each site.

How Shopify decides where an order fulfills

Each product variant stocks quantities at one or more locations. At checkout, Shopify assigns each line to a location that can fulfill it, following the location priority you set (Settings → Locations → Fulfillment priority): highest-priority location with stock wins. If no single location covers an order, Shopify splits it into per-location fulfillments. Two consequences worth internalizing: assignment happens per *line*, not per order — and it can change on order edits, which is one more reason to print lists at the last minute.

The per-location batch workflow

  1. 01

    Filter the Orders page by location

    Orders → filter → Location. This is the batch boundary: everything selected now belongs to one physical building.

  2. 02

    Batch and consolidate per location

    Select the location's unfulfilled orders and generate [one consolidated pick list](/guides/print-one-pick-list-for-multiple-orders) — totals summed, sorted by that site's bins. Repeat per location; two sites, two lists, zero overlap.

  3. 03

    Keep bin schemes per site

    Prefix bins by site if codes could collide (W-A-04 vs S-A-04) — [the bin naming rules](/guides/organize-picking-by-bin-location) apply per building, and a list sorted by another building's bins is nonsense on foot.

  4. 04

    Handle split orders at packing

    An order split across locations appears on both lists (each with only its lines) and ships as two fulfillments. Mark each fulfillment from its own site — Shopify tracks them independently.

  5. 05

    Fulfill per location, not per batch

    When a site's pick-pack run completes, mark those fulfillments shipped with that location's tracking. The other site's half of a split order stays open until it ships too.

The transfer trap: when location A shows the stock but the order got assigned to location B, the tempting fix is picking at A 'because it's here'. Fulfilling from a location other than the assigned one without reassigning it corrupts inventory at both sites. Reassign the fulfillment location in the order first (Shopify supports changing it), then pick where the system says.

Common setups, mapped

SetupLocationsPicking pattern
Shop + back roomOften one locationOne batch — multi-location machinery only if stocked separately
Shop + warehouse2Warehouse batches daily; shop list stays short, walk-in stock protected by priority rules
Two warehouses2Full per-location batching, split orders routine — the workflow above, verbatim
Warehouse + 3PL2 (3PL often app-managed)Batch-pick your warehouse only; the 3PL location fulfills through its own integration — never print their lines

Doing this with Solvi Pick Lists

Solvi Pick Lists consolidates whatever orders you select — so the location filter *is* the control: filter the Orders page by location, select, generate that site's list with its own bin sort. Split orders contribute only the lines you selected from that view, quantities stay per-site, and the read-only scopes mean the app can never cause the transfer trap above: it prints truth, it does not move stock.

Frequently asked questions

Can Shopify print a pick list per location?

Natively, no — Shopify has neither consolidated pick lists nor per-location document printing. The Orders page location filter plus a pick list app covers it: filter to one location, select, generate. One list per building is the rule regardless of tooling.

What happens when one order has items in two locations?

Shopify splits it into two fulfillments, one per location, each with its own lines, tracking and shipped status. For picking, each site's list carries only its own lines — the order reassembles for the customer as two parcels, not on your pick list.

How does Shopify choose which location fulfills an order?

By your fulfillment priority order (Settings → Locations): the highest-priority location holding stock for a line gets it; lines no single location can cover cause a split. Set the warehouse above the shop to protect walk-in inventory from online orders.

Should bin locations be unique across warehouses?

Codes only need uniqueness within a building — pickers never walk two buildings at once. But if staff or lists move between sites, a site prefix (W-A-04) costs one character and removes every 'which A-04?' conversation. Consistency of scheme matters more than global uniqueness.

Related guides

Do this in minutes with Solvi Pick Lists

Turn selected orders into one consolidated pick list — sorted, bundle-aware, printed in order.