Useful Tools

How-to guide

How to organize warehouse picking by bin location in Shopify

Shopify has no native bin field. Here is how to store bin locations in metafields, keep them tidy, and sort a pick list into the order of your shelves.

8 min read · Published July 9, 2026 · Updated July 9, 2026

Once your stockroom grows past the point where you know where everything is by heart, picking order becomes the bottleneck. A pick list in catalog or SKU order sends you criss-crossing the room; a list in bin order walks you down the aisles once, top to bottom. The organizing principle is the bin location — a short code like A2 or R3-04 that says exactly which shelf a product lives on — and the goal of this guide is to get those codes into Shopify and out onto your pick list in the right order.

The first thing to know is that Shopify has no native 'bin location' field. Its multi-location inventory tracks which location holds stock, but not which shelf within that location — there is no built-in place to type 'A2'. That gap is why bin picking on Shopify needs a small, deliberate setup: you choose where to store the bin code, keep it consistent, and use a tool that can read it and sort by it. Done once, it pays back on every single pick.

Below: where to put bin codes so they are easy to maintain, a naming scheme that sorts correctly, the step-by-step of mapping and sorting, and the traps that make bin picking messier than it needs to be. To consolidate several orders onto that binned list in the first place, start with How to print one pick list for multiple Shopify orders; to run it every morning, see A batch order fulfillment workflow for Shopify stores.

Where bin locations live in Shopify

The practical home for a bin code is a metafield — a custom field you add to products or variants. A product metafield suits stores where a whole product sits in one place; a variant metafield suits stores where different sizes or colours live on different shelves. Either way you define it once (a namespace and key, with a plain text type), then fill in the value per product or variant. A text metafield keeps the code exactly as you typed it, which is what you want — a bin is an identity, not a number to do maths on.

Resist the urge to overload another field. Putting the bin in the SKU ('A2-TSHIRT-M') couples two things that change independently — restructure the stockroom and every SKU has to change too. Stuffing it into tags scatters bin data across a field meant for filtering and makes 'sort by bin' impossible to do cleanly. A dedicated metafield keeps the bin its own thing: editable in bulk, and readable by any tool that sorts on it.

Set up bin-location picking, step by step

  1. 1

    Choose product-level or variant-level bins

    Decide the grain first. If every variant of a product shares a shelf, a product metafield is less to maintain. If sizes or colours are split across shelves — common in apparel and parts — use a variant metafield so each one can carry its own bin. Pick the one that matches how your stock is really arranged; mixing the two gets confusing fast.

  2. 2

    Create a dedicated bin metafield

    Add a metafield with a clear namespace and key (for example custom.bin_location) and a single-line text type. Text is deliberate: it preserves leading letters and zeros, and it does not try to interpret 'A2' as a number. Give it a description so whoever fills it in later knows the format you expect.

  3. 3

    Adopt a naming scheme that sorts naturally

    Pick a scheme and apply it uniformly: aisle, then bay, then shelf, most-significant part first — A-02-03, not '3rd shelf of bay 2 in aisle A'. Zero-pad the numbers (A02, not A2) if you will ever pass double digits, so plain text sorting keeps A02 before A10. Consistency matters more than the exact format: one format, one case, everywhere.

  4. 4

    Fill in bins in bulk

    Enter the codes with a bulk editor or a CSV import rather than one product at a time. Walk the stockroom shelf by shelf and record what is where, then apply the codes in batches by shelf — it is faster and less error-prone than jumping around the catalog. Leave the field blank for anything not yet binned rather than guessing.

  5. 5

    Map the metafield in your pick-list tool

    Tell your picking tool which metafield holds the bin (the namespace.key you chose). This is a one-time mapping. A good tool detects likely candidates — fields whose keys contain 'bin', 'location', 'shelf' or 'aisle' — but you confirm the exact one, so a stray field never gets used by accident.

  6. 6

    Sort the list by bin with group headers

    Switch the pick list's sort to bin location. The list should now run in shelf order, ideally with a group header and subtotal per bin so you know how many items to grab before moving on. Items with no bin yet should collect at the end under a 'No bin location' heading — visible, so you notice them, never silently dropped.

  7. 7

    Walk the route once and refine

    Pick a real batch and watch where the route doubles back. If the list order does not match your walking order, the fix is usually in the naming scheme, not the tool — adjust the codes so the sort matches the aisles, and the improvement compounds over every future pick.

Bin naming schemes that sort correctly

SchemeExampleSorts into aisle order?Notes
Single letter + numberA2, A10, B1Only with natural sort'A10' lands before 'A2' in plain text unless the tool sorts naturally
Zero-paddedA02, A10, B01Yes, everywherePadding makes even plain text sorting correct — the safe default
Aisle-bay-shelfA-02-03Yes, with paddingEncodes the walking route; most-significant part first
Bin code inside the SKUA2-TSHIRT-MNoCouples bin to SKU; a restock reshuffle breaks every SKU
Bin in tagstag: 'binA2'NoTags are not ordered; you cannot produce a clean sorted list

The pattern is simple: put the most significant part of the location first and zero-pad the numbers, and almost any tool will sort it into walking order. The one behaviour to check is natural sorting — whether the tool treats 'A10' as coming after 'A2' (natural) or before it (plain text). If your tool sorts naturally, you can skip the padding; if you are not sure, pad and you are safe either way.

The A10-before-A2 trap. Plain-text sorting compares characters left to right, so 'A10' sorts before 'A2' — the digit '1' beats '2'. On a pick list that means aisle 10 gets picked before aisle 2, and the whole point of bin order is lost. Two defences: use a tool that sorts bins naturally (A2 before A10), or zero-pad every code (A02, A10) so plain sorting agrees. Pick one and apply it to every bin — a half-padded scheme sorts worse than none.

Doing this with Solvi Pick Lists

Solvi Pick Lists is built to read your bins rather than make you restructure around it. In its settings you map the product or variant metafield that holds the bin — the app suggests likely candidates whose keys contain 'bin', 'location', 'shelf' or 'aisle', and you confirm the exact one. From then on, 'Bin location' is a sort option that runs the list in shelf order with a group header and subtotal per bin.

Bins are sorted naturally, so A2 comes before A10 with no padding required — though padding still works if that is your scheme. Variants with no bin yet are grouped at the end under 'No bin location', so you can see what still needs a shelf, never quietly omitted. Because the app reads a text metafield exactly as you typed it, it never normalises or second-guesses your codes; if the mapped field is a non-text type, it tells you at setup rather than failing at print time.

Bin and vendor sorting are on the Starter plan, and the mapping you configure is remembered and never deleted, even if you downgrade — the work you put into teaching the app your stockroom stays yours. Once bin picking is set, combine it with consolidating multiple orders onto one list and a daily batch fulfilment routine to pick the whole morning in one walk.

Frequently asked questions

Does Shopify have a bin location field?

Not natively. Shopify tracks inventory by location, but there is no built-in field for the shelf or bin within a location. The standard approach is to store the bin code in a product or variant metafield — a custom text field you define once and fill in per item — which any picking tool can then read and sort by.

Should I use a product metafield or a variant metafield for bins?

Use a product metafield when every variant of a product lives on the same shelf — it is less to maintain. Use a variant metafield when sizes or colours are split across different shelves, so each variant can carry its own bin. Choose based on how your stockroom is physically arranged, and keep to one approach for consistency.

Why does my pick list pick aisle 10 before aisle 2?

Because it is sorting the bin codes as plain text, where 'A10' comes before 'A2'. Fix it either by using a tool that sorts bins naturally (so A2 precedes A10), or by zero-padding your codes to a fixed width (A02, A10) so plain text sorting produces the right order. Apply whichever you choose to every bin.

What happens to products that do not have a bin yet?

They should be grouped together at the end of the list under a heading like 'No bin location', not dropped from it. That way you still pick them, and you get a visible reminder of what needs a shelf assigned. A tool that silently omits un-binned items is hiding stock you are supposed to ship.

Related guides

Do this in minutes with Solvi Pick Lists

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