Print bin, shelf and stock-location labels
LabelCraft - barcode labels for Shopify that print at exactly the size you set.
Every label prints at the size you set - measured, not approximate.
Overflow or a missing barcode always raises a visible warning before you print.
Modules snap to your printer's dots, so codes stay crisp and scan first time.
We never overwrite or reassign a product's existing barcode.
Product barcodes are only half of a tidy stockroom. The other half is the locations themselves: a scannable label on every bin, shelf, aisle or stock location so anyone can put stock away and pick it fast. In LabelCraft this lives on the Location labels page, and it needs no product match at all - a location label is just text plus a barcode, so you type or paste the locations you want and print.
Type or paste your locations, one per line
Each line is one location, in one of three shapes: code, code, name, or code, name, quantity. For example:
A3-B2- the code alone (it is both the barcode and the printed text).A3-B2, Aisle 3 Shelf B- a code plus the human-readable name printed large on the label.A3-B2, Aisle 3 Shelf B, 4- the same, printing 4 copies of that bin label.
The code is the barcode payload and the fallback text; the name is the big human-readable line; the quantity is how many copies to print (1 if you leave it off).
How LabelCraft reads each line
- The separator is detected per line - a tab, a comma or a semicolon, whichever your line uses. It is never a plain space, so a bin named
Aisle 3 Shelf Bstays one name instead of splitting into pieces. - The last field is the quantity only when it is a whole number. So
A3, Shelf BkeepsShelf Bas the name, whileA3, Shelf B, 4prints four copies. Everything between the code and a trailing number is the name. - Wrap a field in double quotes if it contains your separator. A location named
"Warehouse, North"stays a single value even in a comma list. - A header row is skipped automatically. A first line like
Code, Name, Qtyis recognised and ignored - but a real bin literally namedBinis never mistaken for a header and dropped.
Nothing is dropped silently
The same never-silent promise that runs through the print engine runs here too. A line with no code, or one whose copy count is a number greater than 1000, is reported back to you by line number instead of vanishing. A line that asks for 0 copies (often a stock-count column pasted by mistake) is called out as skipped, with its bin named, so a location never disappears from the run without you knowing why. And if your list was saved in the wrong encoding - the kind of file where Réserve turns into garbled characters - LabelCraft flags the corruption before you print a bin label that will not scan. You can label up to 500 locations in one list; split a bigger warehouse into batches.
Print at the exact size, on any printer
Pick the template that matches your label stock, review the parsed rows and any warnings, then print at 100% scale. Labels come out exact to +/-0.1 mm, and a barcode too narrow to scan is flagged before you print, not after a wasted roll. It works with Dymo, Zebra, Brother, Munbyn, Phomemo and Avery sheets, or any custom size in millimeters. Not sure which size to use? The label-size guide walks through the common bin and shelf sizes. LabelCraft is free up to 200 labels a month.
Install free - 200 labels per month →
Related: the which label size guide, the receiving-barcode-labels guide, or contact LabelCraft support for help with your stockroom layout.
Related guides
- How to print barcode labels when you receive inventory in Shopify
- Shopify Receives by SKU, Not Barcode — How to Label by Barcode
- Does a Shopify Barcode App Multiply Your Case or Pack Quantities?
- Reconcile a supplier packing list against a Shopify transfer
- Partial shipment received? Print labels for just the delta
- Lot, Batch & Expiry Labels for Shopify Receiving
- Put GTIN, price and weight in one GS1-128 barcode
- Too much data in one barcode: when a GS1-128 overflows
- Carton and case labels: ITF-14 and GS1-128 on the outer box