Guide

Barcode vs. QR vs. RFID: choosing and rolling out inventory labels

QR wins on a small or curved label, Code 128 wins when the readers already on your floor are lasers, and an NFC tag only pays where a printed label cannot survive.

Updated September 2026 ~22 min read

A label is not decoration for a shelf. It exists for the ten seconds when someone pulls three units out of a bin and either records the movement or does not. Every choice below — barcode or QR, paper or polyester, front face or top — is a choice about whether that movement gets recorded.

The four options, and when each pays

If recording that movement means scrolling a list, working out which of two near-identical SKUs this one was, and typing a quantity, a fair share of movements never get recorded — and your on-hand, your thresholds and the alert that should have fired drift with them. A code collapses that into one action, which is the discipline behind the practices that stop stockouts.

There are four ways to identify a physical item, each with a trigger rule.

  • Human-readable only. Fewer than about 50 SKUs, handled by the same two people, items you can tell apart at a glance. A printed name and SKU in a large enough face is sufficient and costs nothing to maintain.
  • 1D barcode. The right call when the readers already on your floor are lasers, and fine anywhere the label has room for a symbol around 1.7 inches wide.
  • QR code. The default otherwise. More data in a fifth of the area, readable at any rotation, and still readable with part of it damaged — provided every reader on the floor is a camera or a 2D imager.
  • NFC tag. Only when a printed code cannot survive or cannot be seen. A tag here is still one tap at a time, so it buys no bulk read to repay its cost.

Price the scheme before you argue about it. The consumables are trivial; the labor is not.

Cost of a labeling scheme = (labels or tags × unit cost) + (items × minutes to apply ÷ 60 × hourly rate)

Compare that against the cost of one drifted bin a year, not against zero: correcting a drifted quantity costs a count of that bin, and every threshold set against the wrong number fires late until somebody does it.

Barcode vs. QR vs. RFID, side by side

The RFID column is really two. 13.56 MHz NFC is what a phone reads and what Stockout supports; UHF is what people mean by "read a whole cart as it goes through the door", and Stockout does not support it at all. Different tags, different readers, no overlap.

What each option costs and what it buys, for an internally-numbered item — unit prices are assumptions to replace with your own
Attribute 1D barcode (Code 128) QR code NFC tag (13.56 MHz) Passive UHF RFID
Consumable cost per item ~$0.02 (assumed) — the code itself is free ~$0.02 (assumed) — same label, no extra cost ~$0.15 (assumed), about 7.5× the label Tag plus a fixed or handheld reader
Read range A few inches to about 2 ft with a laser reader A few inches, phone camera Touch to about 1.5 in Feet, through cartons
Line of sight Required Required Not required, but you must touch the tag Not required
Bulk read No No No — one tap per tag Yes, this is the whole point
Survives abrasion or partial damage A scratch across the bars kills it Error correction recovers 7–30% of the symbol depending on level The chip survives what the label does not Same
Metal and liquid nearby No effect once printed No effect once printed Metal and liquid degrade the read; metal detunes a plain inlay and needs an on-metal (ferrite-backed) tag Metal and liquid degrade the read; metal needs an on-metal tag
Label real estate About 1.73 in wide for an 8-character SKU at a 10 mil X-dimension About 0.5 in square for the same SKU at a 15 mil module Tag footprint, no printed area needed Larger antenna
Effort to apply Print, peel, apply, test-scan Identical Tap once per tag to encode, then apply Same, plus commissioning
Works in Stockout Yes — generated as Code 128, read by the Android camera or a keyboard-wedge reader on Windows and the web Yes — standard QR; the Android camera reads it, and on Windows or the web only a 2D imager in keyboard-wedge mode (a 1D laser reader ignores it) Yes — Android only, one tag at a time No

Three things read across the rows.

  • Line of sight is the only column UHF wins outright — and it is the column Stockout cannot deliver. If bulk reading is your reason for wanting RFID, you are shopping for hardware this product does not talk to.
  • QR and Code 128 differ in footprint and damage tolerance, not read speed. Choosing between them is a question of how much label you have and what the readers on your floor can decode.
  • The last row is the platform boundary. The device camera reads codes on Android only. On Windows and in the browser you use a USB or Bluetooth reader in keyboard-wedge (HID) mode, and it has to be a 2D imager if you print QR. NFC read and write is Android only.

1D symbologies in plain terms

Code 128 encodes full ASCII, carries a mandatory check character, and has a Set C mode that packs digit pairs into a single character. It is the right default for an internal SKU, it is what Stockout generates, and its width is predictable.

Code 128 width in modules = 11 × data characters + 35
Code 39 width in modules at N:1 = (6 + 3N + 1) × (data characters + 2) − 1
Printed width = modules × X-dimension

  • 35 — the fixed overhead in Code 128: start 11, check 11, stop 13.
  • X-dimension — the width of the narrowest bar, usually quoted in mils (thousandths of an inch).
  • + 2 — Code 39's start and stop characters, which are full-width characters of their own.

An 8-character SKU is 11 × 8 + 35 = 123 modules, 1.23 in at a 10 mil X-dimension. The same SKU in Code 39 at a 3:1 ratio is 16 × 10 − 1 = 159 modules, 1.59 in — 29% wider. On a 2.5 in label, Code 128 leaves room for quiet zones and a human-readable line; Code 39 does not. Code 39's case is that it reads on nearly every legacy scanner; against that, it has no check digit by default and a base set of only 43 characters (uppercase, digits and a handful of punctuation). Use it only if a reader you cannot replace demands it.

UPC-A and EAN-13 are not a design choice, they are numbers you are issued: they need a GS1 company prefix, and a UPC exists so a retailer's till can identify your product, not so your bin can. If a supplier's carton carries one, add it as an additional SKU so the carton scans, and keep your internal SKU as the primary.

ITF-14 and GS1-128 carry application identifiers for lot, quantity and dates on cartons and pallets. They are out of scope here because there is nowhere in Stockout for that structured data to land: an item has no lot, batch, expiry or serial field.

Numbers-only SKUs are the cheapest way to buy label space. Set C encodes an all-numeric SKU as digit pairs, so 12 digits becomes 6 data characters: 11 × 6 + 35 = 101 modules, 1.01 in at 10 mil, against 167 modules and 1.67 in for a 12-character alphanumeric SKU — about 40% narrower (101 ÷ 167 = 0.60).

A check character protects against a misread, not a wrong SKU

Code 128's check character catches a corrupted scan. It cannot catch a perfectly-scanned code that belongs to the wrong item, and nothing in the product will tell you. Wrong-label errors are caught by counting, not by symbology.

When QR earns the space

QR has two advantages over a 1D symbol, and both are measurable.

Footprint. A QR Version 2 symbol is 25 × 25 modules and holds 38 alphanumeric characters at error-correction level M — far more than any SKU needs — and with its quiet zone it is half an inch square.

QR printed size = (symbol modules + 8 quiet-zone modules) × module size
Area ratio = (barcode width × height) ÷ (QR side)²

Worked example

Half an inch versus an inch and three quarters

  • QR Version 2 grid25 × 25 modules, 38 alphanumeric chars at level M
  • Plus a 4-module quiet zone each side25 + 8 = 33 modules
  • At 0.015 in per module33 × 0.015 = 0.495 in square
  • Code 128, 8-char SKU, with quiet zones1.73 × 0.50 = 0.865 sq in
  • QR area0.495² = 0.245 sq in
0.865 ÷ 0.245 = 3.5. On a 2.5 × 1.5 in label the QR frees roughly six tenths of a square inch — enough for a second human-readable line.

Damage tolerance. QR carries Reed-Solomon error correction at four levels: L recovers about 7% of the symbol, M about 15%, Q about 25%, H about 30%. A scuff or a staple hole that would break a 1D symbol's bar sequence is recoverable. Use M as the default; higher correction needs more modules for the same data, so the symbol grows. QR also reads at any rotation, which matters for a label applied by hand.

QR's alphanumeric mode covers uppercase A–Z, the digits, and nine symbols (space $ % * + - . / :) — 45 characters in total. A single lowercase letter forces the whole symbol into byte mode, and Version 2 at level M drops from 38 alphanumeric characters to 26 bytes — about 32% less capacity (26 ÷ 38 = 0.68). Uppercase your SKUs and the symbol stays small.

Where QR loses is the reader. It needs a camera or a 2D imager, and an older laser scanner will not read it at all — a keyboard-wedge laser on a Windows PC will read your Code 128 all day and silently ignore your QR. Confirm what is on the floor before standardizing.

What actually belongs on the label

Four things earn their place, in the order the label is read top to bottom: the item name, the SKU as human-readable text, the code, and the storage spot if the item has a fixed home. A fifth line — a standing instruction — is worth it only if it will never change.

The printed SKU is the one people cut first and should not. Every scanner fails eventually, and the printed string is what lets a person find the item by hand: search in Stockout is live case-insensitive partial matching across name, SKU and category, so the string on the label is directly typeable into the box.

  • The item Name, largest size, top line, bold.
  • The SKU as text, medium, with the "SKU: " prefix turned on.
  • The code — QR if the label is small or the surface curves, Code 128 if the readers on the floor are lasers.
  • Storage spot, small, and only if the item has a fixed home.
  • Custom text, optional, only for a standing instruction that will never change — "FRAGILE", "DECANT ONLY".
  • Nothing else.

What to leave off, and why:

  • A date — the label outlives it and nobody reprints.
  • A person's name — stock movements carry no user, so the label promises accountability the data cannot back up.
  • A price — a stale price on a shelf is worse than no price.
  • A quantity — wrong the moment someone takes one, even though it is available as a line.
  • Lot, batch, expiry or serial — the item record has no field for any of them, so whatever you print is unmatched.
  • A location code baked into the SKU — it turns a shelf move into a renumbering job.

Then hold yourself to the size discipline. A 2.5 × 1.5 in label is 3.75 sq in, and the code plus its quiet zones claims between 0.25 and 0.9 sq in of that. Three text lines and one code is a full label; a fourth means shrinking something below the size at which it does its job.

Designing the string the code carries

Stockout matches a scan by SKU string, which makes the SKU the primary key of your physical world: a SKU change is a relabel job, not a data edit.

Seven rules for the string, each with its reason.

  1. Uppercase and digits only. QR's alphanumeric mode includes that set, and Code 39 needs it if you ever fall back.
  2. No spaces. A keyboard-wedge reader types a space as a space, and a space inside the string makes the scanned code and the stored SKU two different strings. (Stockout does trim a leading or trailing space off both, so it is the space in the middle that bites.)
  3. No commas or semicolons. Stockout treats the SKU field as a list and splits it on those characters, so one typed inside a SKU quietly becomes two SKUs, neither of them the one on your label.
  4. Avoid O/0, I/1/l and S/5. The scanner does not care; the person retyping a scuffed label at arm's length does.
  5. Fixed length. A truncated read is then obvious on sight instead of looking like a different SKU.
  6. Eight to twelve characters. Twelve alphanumeric characters is 1.67 in of Code 128 at 10 mil, leaving about a third of an inch of slack on a 2.5 in label once the quiet zones are in.
  7. No meaning that can change. This is the one people break.

Encoding the site, the supplier, the shelf or the year into the SKU makes every one of those changes a reprint. Category and Storage Spot are already separate fields — Storage Spot is free text such as "Aisle 1, Shelf A" — and Inventory's funnel sheet filters by both. Put the changeable facts there and keep the SKU meaningless.

When a SKU has to change anyway, there is a trick specific to this product. An item can carry multiple SKUs and a scan matches any of them, so add the new one alongside the old rather than replacing it: old labels keep scanning, new labels carry the new string, and you relabel at your own pace. The same trick handles a supplier's UPC — add it as an extra SKU and the incoming carton's code matches the item.

Each location keeps its own item record for the same product and matching is by SKU string, so WDG0042A at one site and WDG-42A at another is two schemes pretending to be one — one of the traps in running inventory across sites.

Size, quiet zone and print resolution

Three numbers decide whether a printed code scans, and all three are usually wrong on a first attempt.

X-dimension is the width of the narrowest bar, or of one QR module. Bigger scans from further away and survives worse printing; smaller fits more on the label. 10 mil is a sane default for a handheld or phone read at arm's length; below about 7.5 mil you are depending on a good printer and a clean surface.

Quiet zone is the blank margin the symbol needs, and it is the single most common reason a code will not read. Code 128 wants 10 × the X-dimension on each side with a practical floor of 0.25 in; a QR symbol wants 4 modules on every side. Use 0.25 in — it turns a 1.23 in symbol into 1.73 in of committed label width, and in Stockout the label width is a number you type, so it is the one dimension you can trade against symbol width. A border, a fold, a staple or the next line of text inside that margin breaks the read as surely as a scratch across the bars.

Bar height should be at least 15% of the symbol's length or 0.25 in, whichever is greater — for the 1.23 in example that is 0.18 in, so the 0.25 in floor governs. Short bars force the reader to aim precisely, and precise aiming slows every scan.

Quiet zone (Code 128) = 10 × X-dimension, floor 0.25 in each side
Committed width = symbol width + 2 × quiet zone
Bar height ≥ max(0.15 × symbol length, 0.25 in)
Printer dot = 1 ÷ dpi; usable X-dimension = whole dots × dot size

The print-resolution rule catches almost everyone. A thermal printer can only place whole dots, so an X-dimension that is not a whole number of dots gets rounded and every bar comes out slightly the wrong width. At 203 dpi one dot is 4.93 mil, so the usable X-dimensions are 9.85 mil (2 dots) and 14.78 mil (3 dots) — not 10 mil. At 300 dpi, 3 dots is exactly 10.0 mil. Choose the X-dimension as a whole number of printer dots first, then check the symbol still fits.

An 8-character Code 128 therefore commits 1.73 in of a 2.5 in label and leaves 0.77 in of slack. Drop to a 2.0 in label and the quiet zones alone eat a quarter of it.

Text legibility follows a separate rule of thumb: a common signage guide is one inch of cap height per ten feet of reading distance. At arm's length that is 0.25 in; reading a tag from eight feet down the aisle would need 0.8 in, which does not fit alongside a code on a 1.5 in tall label. Aisle signage and item labels are two different printed things. Print one, walk away from it, and see.

Material, adhesive and print method

Two independent choices get conflated here: what the label is made of, and how the image got onto it. Both fail quietly. Three failure modes the table below cannot hold:

Direct thermal has no ribbon — heat darkens the paper — so treat it as a months-not-years medium and keep it off anything that lives outdoors, near a heater, or in a vehicle. Application temperature and service temperature are two different numbers on the adhesive's data sheet, and only one usually gets checked: a label applied below its minimum application temperature releases a week later even if the storage temperature was always fine. And an oily surface has to be wiped with isopropyl and dried first, or nothing will hold.

A starting specification by environment — confirm against your own stock's data sheet
Environment Face stock Print method Adhesive Watch out for
Dry indoor shelf Coated paper Direct thermal Permanent acrylic Fading near heat or sunlight
Cold store or freezer Polypropylene or polyester Thermal transfer, wax-resin Freezer-grade, rated for the application temperature Applying a warm-rated adhesive to a cold surface
Oily or greasy workshop Polyester Thermal transfer, resin High-tack Surface not cleaned before application
Outdoor or vehicle Polyester, matte Thermal transfer, resin Permanent acrylic, UV-stable Direct thermal, which will not last a summer
Curved stock, pipes, drums Conformable polypropylene Thermal transfer High-tack Symbol across the curve — rotate to ladder orientation and prefer QR

On a curved surface, rotate the code so the bars run around the circumference — perpendicular to the cylinder's axis — with the symbol reading along the axis. That is ladder orientation: it puts the bar-width direction on the flat axis of the cylinder, where curvature cannot distort it, and only the bar height wraps. Keep whichever dimension does wrap under about an eighth of the circumference — 0.79 in on a 2 in pipe, 1.18 in on a 3 in drum. A ladder-oriented Code 128's 0.25 in bar height clears both, and so does a QR's 0.495 in side. QR still wins on cylindrical stock for a different reason: a half-inch square sits on a flatter patch of surface, where a 1.73 in symbol has to span far more of the curve whichever way you turn it.

Test one label for a week before printing hundreds

Apply a single label to a real item in the real environment and leave it. A label that survives a bench test but not the freezer is a discovery worth making at a cost of one label rather than four hundred.

Placement that stops a rescan

Consistency beats cleverness: the same face, the same corner, the same orientation on every unit of the same item, so nobody scanning fifty boxes has to rotate one to find the code. Pick a convention — bottom-right of the front face is a common one — write it down, and hold new hires to it.

  • Not across a carton seam or flap — that is two half-codes once the box is opened.
  • Not under strapping or a shrink-wrap fold — the film distorts the bar widths.
  • Not on a corner radius, a rivet or a weld — the label lifts at the bump and takes the symbol with it.
  • Not on the bottom or the wall-facing side — readable by nobody.
  • Front face, plus a duplicate on top if the item ever gets stacked. Two labels are cheaper than a person lifting a box to find one.
  • Between knee and shoulder height. Above or below that, a handheld reads at an angle, and a bad angle is where a marginal symbol fails. Where the shelf position is fixed, label the shelf edge instead.
  • No glossy laminate over a code unless you have tested it under the light the scan happens in — overhead fluorescents and a phone flash both bounce off gloss into the camera.

When RFID earns its cost

RFID's economic advantage is bulk reading without line of sight: walk a cart past a portal, get a hundred reads. That belongs to UHF hardware, and it is the only scenario in which the tag price is repaid quickly. The three unit figures below are assumptions, stated so you can replace them.

Tag program cost = (items × tag price) + (items × seconds to write ÷ 3600 × hourly rate)

Worked example

Tagging 1,200 items, with your own prices to substitute

  • Items to identify1,200
  • NFC tags at an assumed $0.151,200 × 0.15 = $180
  • Printed labels at an assumed $0.021,200 × 0.02 = $24
  • Material ratio180 ÷ 24 = 7.5×
  • Writing the tags, one tap each at 20 s24,000 s = 6.67 hours
  • At an assumed $25 an hour6.67 × 25 = $167
  • Tag program total180 + 167 = $347
$347 against $24, for a read that still costs one tap per item. Substitute your own three assumptions before deciding — but unless the label physically cannot survive, the label wins on this arithmetic.

Because a tag in this product is read by tapping a phone against it, one at a time, the read workflow is identical to scanning a printed code: several times the material cost plus a commissioning pass, for the same number of taps.

One material rule comes first. A plain NFC inlay stuck to metal detunes and usually will not read — a metal asset needs an on-metal (ferrite-backed) tag at several times the price, so re-run the arithmetic above with that figure. Liquid does the same by absorbing the field.

Which leaves three narrow cases where a tag still wins. A surface where a printed label will not survive or cannot be seen — greasy, washed down, under a cover, or metal with an on-metal tag. An item that is picked up by hand anyway, so the tap costs nothing extra. And no label printer on site but a box of tags. Outside those, print the label.

RFID in Stockout is 13.56 MHz NFC read through an Android phone, one tag at a time; writing a tag puts a single text record on it, and Windows and the browser report that no reader is present. The features page covers where the RFID screen sits.

A tag is matched to an item by treating its whole payload as the SKU, so changing an item's SKU breaks the link to a tag already written. A printed label survives a multi-SKU transition; a tag has to be rewritten.

What Stockout actually prints and reads

Everything above is label craft you could apply anywhere. This is the boundary.

The designer. You type a width and a height in inches, and the lines stack top to bottom: a stack, not a canvas, with no free positioning. The available fields are Name, SKU, Category, Cost, Retail, Quantity, Location, Custom text, QR code and Barcode, each with its own size, weight, alignment and optional field-name prefix.

The code. Barcodes are generated as Code 128 and QR codes as standard QR, with no symbology choice and no error-correction setting. The code encodes exactly one of two things — the item's SKU or its Name — chosen with a two-state toggle. It is not a URL, not a record id, and it does not open anything. Leave it on the SKU, because a scan matches by SKU.

Output and scope. Labels are produced for Items, Kits and Equipment only, one record at a time, and a filled-in label exports as a PNG. There is no batch or category-wide print — see designing and printing a label.

Templates are shared team-wide and sync in real time across every location, so one person designs the label and everyone has it, including at other sites.

Scanning works two ways, and the line is hard: the device camera on Android, and a USB or Bluetooth reader in keyboard-wedge (HID) mode on Windows and the web. The camera reads all common symbologies and has no format picker. A scan looks the item up by SKU and moves stock in one tap; an item can carry several SKUs and a scan matches any of them. Making recording a two-second job covers the workflow side; setting up a reader takes five minutes.

Three scope facts save wasted planning. Scanning applies to inventory items only — the buttons live in the Inventory footer, and there is no scanning in Equipment, Checklists, Work Orders, Kits or Folders. Those buttons are hidden for Viewers, so whoever scans needs write permission. And scan history is local to the session: clearing it changes no data.

The unknown-code path is not an error. When a scanned code matches nothing, Stockout offers "Create New Item" with the SKU pre-filled, or "Add to Existing Item" — one of the faster routes through getting inventory off a spreadsheet.

How Stockout helps

The craft is yours. These four steps are what the app does with it.

  • Design one template — width and height in inches, fields stacked top to bottom — and it syncs to the whole team across every location.
  • The code is Code 128 or standard QR, and it encodes the item's SKU or its Name.
  • Produce one label at a time for Items, Kits or Equipment and export it as a PNG.
  • Scan it back with the Android camera, or a keyboard-wedge reader on Windows and the web: the item is found by SKU and stock moves in one tap.

A rollout you can actually finish

Start with the arithmetic that kills the all-at-once plan. The design is done once, so the per-item work is select, print, peel, wipe, apply, test-scan — call it three minutes. For 1,200 SKUs that is 60 hours. Nobody has 60 hours, which is why an all-at-once labeling push usually stalls part-way and leaves you with a half-labeled catalog — the worst of both states.

Total first-pass labor = SKUs × minutes per SKU ÷ 60
1,200 × 3 ÷ 60 = 60 hours

Sequence it in three waves instead.

Wave 1 — new receipts. From a chosen date, every item that comes through the door gets a label as it is put away. The marginal labor is close to zero because the item is already in someone's hands, and your fastest-moving items pass through the door soonest, so the items scanned most get labeled first. Treat any 20/80 split as a planning assumption to replace with your own movement data.

Wave 2 — the A items you cannot wait for. Take the roughly 20% of SKUs that carry most of your movement — ranking items by annual usage value is the same list you would build for counting — 240 of the 1,200, and batch them at two hours a week: 240 × 3 min = 12 hours, so six weeks. Put it in the diary as a recurring block, not a project.

Wave 3 — the tail. Label on first touch. When someone picks a slow-moving item and it has no label, they print one. Many never get touched, and that is the correct outcome: you never spend the labor.

Two rules stop the scheme fragmenting: one template for all items, not one per category, and the same label applied the same way at every site. If a second site labels the same product with a different SKU, the two records were always separate and now the labels hide it.

If the catalog is still being created, scan first and create second: a code that matches nothing offers Create New Item with the SKU pre-filled, so a pallet of unrecognized stock becomes a scan-then-type loop.

The first place labels visibly pay back is the count round. The printed SKU is what somebody at the shelf types into search, which removes the find-it-in-the-list guesswork from every line — most of what makes a regular counting program survivable.

  • Decide the code — QR unless the readers already on the floor are lasers.
  • Fix the SKU rules in writing: uppercase, digits, fixed length, no meaning.
  • Build one template: Name (large, bold), SKU (medium, prefix on), the code, Storage spot (small).
  • Print one label, apply it to a real item in the real environment, and leave it a week.
  • Test-scan it at the distance and angle it will really be scanned from, on the device that will really scan it.
  • Set the start date for wave 1 and tell whoever puts stock away.
  • Book two hours a week for the A items, and list them.
  • Diary a check at six weeks: ask whoever scans which labels would not read, and why — scan history is session-local, so this is a conversation rather than a report.

When a code will not scan

Work the causes cheapest first. Most failures are the quiet zone or the printer, not the symbology — and the one that confuses people most, a good beep and nothing happening, is neither.

Symptom to cause to fix, cheapest first
Symptom Likely cause Fix
No read at any distance Something is inside the quiet zone — border, fold, staple, the next text line 0.25 in blank on each side
Reads intermittently, worse at an angle Bars shorter than 0.25 in Raise bar height to 0.25 in
Every label reads badly, straight off the printer X-dimension is not a whole number of printer dots 203 dpi: use 9.85 or 14.78 mil. 300 dpi: 10.0 mil
Voids down the same column of every label Dirty printhead or low ribbon Clean the head, change the ribbon
Reads on the bench, not on the item Across a seam, flap or curve Rotate to ladder orientation, or move to a flat face
Was fine, now faded Direct thermal near heat or sunlight Reprint on thermal transfer
Glare washes the code out Gloss face stock or laminate Matte stock
QR grew past the space allowed A lowercase character forced the symbol into byte mode Uppercase the SKU and regenerate
Scans, matches nothing The SKU changed since printing, or a comma or semicolon in the SKU field split it into two SKUs Add the old SKU back alongside the new one; strip the punctuation
Good beep, nothing happens Not on the Inventory screen, or signed in as a Viewer Scanning applies to inventory items only, and the footer buttons are hidden for Viewers
Reader types nothing Not in keyboard-wedge (HID) mode, focus outside the box, or no Enter suffix Set HID mode and an Enter suffix
No camera option Windows or the browser Camera scanning is Android; use a USB or Bluetooth reader
NFC write fails Tag is read-only, too small, or not NDEF Use an NDEF tag with capacity for the SKU string

There is always a fallback. When a scanned code matches nothing, Stockout offers Create New Item with the SKU pre-filled, or Add to Existing Item — so an item whose label is beyond reading can be brought back into the system by attaching a fresh code to the existing record, instead of hunting for the old one.

FAQ

Questions, answered

Code 128 for an internal SKU. It encodes full ASCII, carries a mandatory check character, and packs digit pairs in Set C, so it is the narrowest of the common 1D symbologies — an 8-character SKU is 11 × 8 + 35 = 123 modules, 1.23 in at a 10 mil X-dimension, against 1.59 in for the same SKU in Code 39 at a 3:1 ratio (about 29% wider). Use Code 39 only if a reader you cannot replace demands it. UPC-A and EAN-13 are not a design choice: they require a GS1 company prefix and exist so a retailer's till can identify your product, not so your bin can. If a supplier's carton carries a UPC, add it as an extra SKU on the item rather than renumbering your catalog. Stockout generates Code 128 for barcodes and standard QR for QR codes, with no symbology picker in the designer.

On a small label, usually yes. A QR Version 2 symbol is 25 × 25 modules and holds 38 alphanumeric characters at error-correction level M; with its required 4-module quiet zone on each side it occupies 33 modules, which at a 15 mil module is 0.495 in square. An 8-character Code 128 with 0.25 in quiet zones is 1.73 in × 0.5 in — 0.865 sq in against 0.245 sq in, about 3.5 times the label area for the same data. QR also recovers from damage (roughly 7% of the symbol at level L up to 30% at level H) and reads at any rotation, which matters for a label applied by hand. The catch is the reader: it takes a 2D imager or a phone camera, and an older laser scanner will not read QR at all. In Stockout the camera path is Android only — on Windows and the web you scan with a USB or Bluetooth reader in keyboard-wedge mode, and it has to be a 2D imager to read QR. Check what is already on your floor before standardizing.

No. The code encodes exactly one of two things — the item's SKU or its Name — chosen with a two-state toggle in the designer. It is not a URL, not a record id and not a custom string, and scanning it does not open anything. Leave it on the SKU, because a scan in Stockout looks the item up by SKU. That also means the SKU is effectively the key to your physical stock: if you change an item's SKU, existing printed labels stop matching. An item can carry multiple SKUs and a scan matches any of them, so the safe way to change one is to add the new SKU alongside the old and relabel at your own pace.

Run the arithmetic before deciding. For 1,200 items, tags at an assumed $0.15 each are $180 against $24 for printed labels at an assumed $0.02 — 7.5 times the material cost — plus a commissioning pass: at one tap per tag and 20 seconds per item, 1,200 tags is 24,000 seconds, 6.67 hours, about $167 at an assumed $25 an hour. Substitute your own three figures. RFID repays that only when it buys bulk reading without line of sight, and that is UHF hardware. In Stockout, RFID is 13.56 MHz NFC read through an Android phone, one tag at a time, writing a single text record, and Windows and the browser report that no reader is present. A tag still wins where a printed label cannot survive or cannot be seen — a greasy or washed-down surface — but a plain NFC inlay on metal detunes and usually will not read at all, and an on-metal tag costs several times a plain one.

No. Labels are produced one record at a time, for Items, Kits and Equipment — there is no batch print, no print-a-whole-category, no sheet or multi-up layout and no orientation setting. A filled-in label exports as a PNG. Plan the rollout around that: 1,200 items at three minutes each (select, print, peel, apply, test-scan) is 60 hours, so label new receipts as they are put away, then batch your ~240 highest-movement SKUs at two hours a week (240 × 3 min = 12 hours, about 6 weeks), and let the tail get labeled on first touch. The template itself is designed once and shared team-wide in real time across every location, so only the printing is per item.

Check the cheapest things first. Quiet zone: Code 128 wants 10 × the X-dimension clear on each side, with a practical floor of 0.25 in, and a border, fold, staple or the next text line inside it will break the read. Printer resolution: a thermal printer places whole dots, so at 203 dpi one dot is 4.93 mil and your usable X-dimensions are 9.85 mil (2 dots) or 14.78 mil (3 dots) — asking for 10 mil gets rounded and distorts every bar; at 300 dpi, 3 dots is exactly 10.0 mil. Bar height should be at least 0.25 in or 15% of symbol length, whichever is greater. Then check the label itself: across a seam or a curve, applied to an unwiped oily surface, or direct thermal that has faded in sunlight. If the code scans but nothing happens, you are probably on a screen other than Inventory (scanning covers inventory items only), signed in as a Viewer (the scan buttons in the Inventory footer are hidden), or using a reader that is not in keyboard-wedge mode. Camera scanning is Android only — Windows and the browser need a USB or Bluetooth reader.

Label it once, scan it every time

Design one label template, share it with the whole team, and let a scan find the item by SKU and move stock in a single tap.