Barcodes in a small warehouse: cheap discipline that compounds
By navichain team

Ask where a particular pallet is and a good warehouse hand will tell you: row C, probably, unless it went out Thursday. They are usually right. That is the problem — the answer is right often enough that nobody notices what it costs, which is that every question about the floor is answered by a walk, and only by the person who did the putting away.
Barcodes are the cheapest fix in the building. Not because scanning is magical, but because a label turns a memory into a lookup anyone can perform, including the temp on their second day and the driver at the dock at six in the morning. The hardware is a printer and a scanner. The work is deciding what gets labelled and when it gets scanned, and that is where most attempts quietly go wrong.
A barcode is a key, not a record
The most common and most expensive mistake is to encode information in the label. It is tempting: you have a printer and a symbology with room in it, so why not put the article description, the quantity, the customer name and the received date into the code, so that a scan tells you everything without needing a system at all?
Because every one of those facts can change while the label cannot. Quantity changes on the first part-pick. The customer’s reference changes when they reorganise their own numbering. Goods get moved, split, re-owned. Now the label is confidently wrong, and a wrong label is worse than no label — it is believed.
Encode the identifier and nothing else. The code says which thing this is; the system says everything about it. When a fact changes you change the record, and the label on the pallet stays valid because it never claimed anything except identity. That one rule removes an entire category of relabelling work you would otherwise take on for ever.
What to label, in order of payback
Locations first. This is the counterintuitive one, and it is the cheapest thing on the list: printing a code for every rack, bay and floor position requires no integration with anything and no change to how goods are handled. Once shelves have addresses, “row C, probably” becomes a specific place a system can hold, a counter can walk to, and a picker can confirm they are standing in. A good deal of the value people attribute to barcoding stock is really this.
Then handling units. The pallet, the cage, the box that moves as one thing. Give it an identity at the moment it becomes a unit and its history — received, put away, moved, picked, released — is a chain rather than a series of unrelated events.
Then articles, if you hold your own stock. Often you need to print nothing here: the supplier’s barcode already identifies the product, and reading theirs costs you nothing.
Documents and equipment last, but do not skip them. A goods receipt note with a scannable code on it means the piece of paper the customer is holding and the record in the system are one lookup apart.
The symbology question, answered briefly
Code 128 is the workhorse for internal use. It encodes the whole ASCII character set, carries a mandatory check character, and every scanner made in the last thirty years reads it. Unless something else is required of you, use it and stop thinking about it.
GS1-128 is Code 128 with structure: an FNC1 flag marks the data as GS1-formatted, and Application Identifiers say what each field is — AI (00) introduces an 18-digit Serial Shipping Container Code, AI (01) a 14-digit GTIN, AI (10) a batch number. If you ship into retail, or a partner asks for a “compliant pallet label”, this is what they mean. The identifiers are not decoration; they are how the receiving system knows what kind of number it just read.
2D codes — Data Matrix, QR — hold much more in much less space and survive partial damage. The catch is hardware. A laser scanner decodes reflected light off a single line and cannot read a two-dimensional matrix at all; that needs an image-based scanner, which is a small camera. Imagers also read codes off a phone or a monitor, which lasers cannot. So if your floor runs lasers, 2D on your labels is unreadable until you have replaced them.
Scan at receipt, not at panic
Here is the whole economic argument, and it decides whether a barcode habit sticks.
A scan at receipt costs about two seconds. The same scan performed at panic time — a customer on the phone, a pallet that should be in row C and is not — costs an afternoon of walking plus the phone call. But the deeper point is that the panic-time scan does not answer the question anyway. Finding the pallet now tells you nothing about where it was for the eleven days in between, who moved it, or whether anything left with it.
So the events worth scanning are the ones where position or custody changes: received, put away, moved, picked, loaded, released. Each is a scan of a thing and a scan of a place, and each takes seconds precisely because the label already exists. None of it needs a project. Most handheld scanners present themselves to the computer as a keyboard — they type the code into whatever field has focus and press Enter — which means a scanner works with a search box you already have, and with a person who has been shown it once.
Where it does not pay, and how it goes wrong
Bulk and loose goods without discrete units are a poor fit: you cannot label a heap, and pretending otherwise produces figures nobody trusts. Cold, damp and dusty floors need label stock and adhesive chosen for the conditions, or you buy the discipline and lose the labels. And a code stuck to shrink wrap leaves with the shrink wrap.
Two failure modes deserve naming because they are not obvious:
Reusing a code. A code is an identity, and an identity used twice is worse than none. When a pallet is consumed its code retires with it and the next pallet gets a new one. Reuse turns your history into a story about two different things wearing one name.
Assuming a uniqueness you have not created. Nothing makes a code globally unique unless somebody made it so. Two customers can legitimately use the same internal number, and one scan can genuinely match more than one thing. A lookup must be able to say “three matches, here they are” rather than silently taking the first — taking the first is how the wrong customer’s pallets go on a truck, and it looks like success while it happens.
The rules that let the habit survive a busy week are dull ones: one code, one thing; print it at the moment the thing comes into existence rather than in a batch on Friday; and treat an unreadable label as a stop rather than a shrug, because the alternative is a floor where scanning is optional and therefore meaningless.
In navichain, floor plans, zones and locations give a pallet an address instead of a guess, on-hand is held per article and per warehouse with every movement on an audit trail, and customer goods taken into custody get a sealed, barcoded goods receipt note — so the paper the customer holds and the record you keep are one lookup apart. Drivers scan from the app as well, which is what closes the loop between the shelf and the vehicle. The platform page shows the warehouse side in full, and transport and warehouse in one system covers why the two halves belong on one record.