TEXT
Scroll inside to Zoom • Alt+Drag to Pan • Smart Guides Active
100%

Warehouse Labeling Guide

Warehouse Labeling Best Practices: Barcodes, ZATCA QR Compliance & Thermal Printing

By Sohail Hakeem Updated July 6, 2026 9 min read

A label that won't scan is worse than no label at all. It stops a picker mid-aisle, forces a manual SKU lookup, and quietly undermines whatever system was supposed to prevent exactly that. Almost every scan failure we've traced in logistics operations across the Gulf comes down to a decision made weeks before a single label left the printer — the wrong symbology, an undersized quiet zone, or stock that was never meant to survive a cold room. This guide covers the three areas that generate the most support tickets: choosing and placing barcodes correctly, meeting ZATCA's QR code requirements on invoiced shipments, and setting up thermal printers so a batch of 500 labels scans as reliably as the first test print. The studio above turns all of it into print-ready labels in minutes.

Label Fundamentals: Why Warehouse Bin Labels Fail

Most bin-label problems aren't printer problems. They're specification problems that only surface once a few hundred labels are already on the shelf.

Match the Symbology to the Job

Code-128 is the right default for internal SKU, bin, and location labels. It encodes any mix of letters and numbers at high density, needs no registration with anyone, and reads just as well at two inches as it does at six. UPC-A and EAN-13 are a different animal entirely: fixed-length, numeric-only symbologies tied to a GS1 company prefix that your business, or your supplier, actually owns. The mistake we see constantly is a warehouse padding an internal SKU with zeros to force it into UPC-A format. It'll scan — but that number isn't registered to anyone, and if the item ever reaches a retail point of sale, it can collide with a real, GS1-assigned product. Keep internal-only labels on Code-128 or GS1-128, and reserve UPC-A/EAN-13 for items that are actually sold at retail.

Contrast and Quiet Zones Matter More Than Size

A barcode needs a blank margin, the quiet zone, on either side of it that's at least ten times the width of its narrowest bar. Shrink that margin to fit more onto a small label and you'll get a code that scans fine on a bench-top laser scanner but fails intermittently on a handheld in the aisle — a much harder problem to diagnose after the fact. Contrast matters just as much: dark bars on a light background is the only combination scanners are built around. Brand-matched color schemes, like a navy barcode on a slate-gray label, look sharp on screen and scan badly in the warehouse.

Design for the Environment, Not Just the Printer

A label that survives a dry office doesn't necessarily survive a freezer. Cold storage needs an adhesive rated for sub-zero application, since standard acrylic adhesives lose tack below freezing and the label simply lifts. Outdoor yards need UV-stable ink or a laminate overlaminate, or the print fades within weeks under direct sun. High-abrasion environments — automotive parts, industrial racking, anything getting bumped by forklifts daily — do better on synthetic polypropylene or polyester stock run through a thermal transfer ribbon rather than direct thermal paper, which we cover in more detail below.

ZATCA QR Code Compliance for Logistics and Delivery Labels

Saudi Arabia's e-invoicing system, Fatoora, rolled out in two phases. Phase 1, the Generation Phase, has applied to every VAT-registered business since December 4, 2021, and requires a structured, machine-readable QR code on tax invoices — at minimum, on simplified (B2C) invoices. Phase 2, the Integration Phase, is where it gets more demanding: since January 2023, ZATCA has rolled it out in successive waves defined by annual taxable revenue, notifying each wave at least six months ahead of its deadline. By mid-2026 those waves have reached deep into the SME segment — Wave 24 pulled in every business with VAT-taxable revenue above SAR 375,000 (based on 2022–2024 figures), with a June 30, 2026 integration deadline, and ZATCA's penalty-waiver period closed the same day. In practice, most VAT-registered operations in the Kingdom are now expected to be fully integrated with the Fatoora platform, not just large enterprises, and the thresholds have only moved in one direction. If you haven't confirmed which wave applies to your business, that's worth checking directly on ZATCA's site rather than waiting for a notice.

The QR payload itself is a base64-encoded TLV (tag-length-value) structure. For a simplified tax invoice, five tags are non-negotiable:

Tag 1

Seller Name

Tag 2

VAT Number

Tag 3

Timestamp

Tag 4

Invoice Total

Tag 5

VAT Total

Phase 2 invoices carry additional fields, a cryptographic stamp and a UUID chief among them, and the invoice itself must be issued as UBL 2.1 XML or PDF/A-3 with the XML embedded, not a plain PDF or a scanned document. Standard tax invoices (B2B and B2G) go to ZATCA for clearance before they ever reach the buyer; simplified invoices (B2C) go to the buyer first and get reported to ZATCA within 24 hours.

Where this intersects with warehouse operations: any dispatch note or delivery label generated at the point of shipment, common in cash-on-delivery and direct-to-consumer fulfillment, is often standing in for, or accompanying, a simplified tax invoice. That means the label leaving your dock may legally need a compliant ZATCA QR code sitting right next to the GS1 barcode your warehouse team uses for tracking. This studio doesn't generate the TLV payload itself — that has to come from whatever system holds the actual invoice data, whether that's your POS, ERP, or invoicing platform. What it does well is take a payload you've already generated, whether it's the same fixed value on every label or a different one per row pulled from your data, and render it onto a print-ready label alongside your barcode, logo, and SKU text. If you need to build or validate the TLV payload from scratch, our dedicated ZATCA QR code generator and compliance guide covers that end of it in full.

Thermal Printing Strategies for High-Volume Label Runs

The printer and the label stock matter as much as the design. Get this wrong and even a perfectly designed label won't survive contact with the warehouse.

Direct Thermal Thermal Transfer
How it works Heat directly darkens chemically-coated paper Heat melts a wax or resin ribbon onto the label
Cost per label Lower — no ribbon consumable Slightly higher — ribbon required
Fade resistance Weeks to a few months; fades under heat, light, friction Months to years; resistant with the right ribbon
Best for Short-lived shipping labels, receipts Bin/rack labels, asset tags, cold storage, outdoor

Ribbon choice should match the stock: wax ribbons are the general-purpose, lowest-cost option for coated paper labels; wax-resin steps up scuff and light moisture resistance; full resin is what you want on synthetic stock in genuinely harsh environments, chemical exposure, extreme abrasion, extended outdoor life.

Print resolution matters more than most spec sheets suggest. 203 DPI is the industry standard and handles most Code-128 and EAN/UPC labels at typical bin-label sizes without issue. It starts to struggle once a barcode's narrowest bar, its X-dimension, drops below roughly 0.19mm (7.5 mil), which happens fast with small QR codes or dense GS1-128 strings squeezed onto a small label. At that point, 300 DPI hardware keeps the module sharp enough for a reliable first-pass scan; scaling the barcode up is the free alternative if a new printer isn't in the budget.

One habit worth building into any large run: pull and scan-test a sample from the start, middle, and end of the batch, not just the first label off the printer. Printhead temperature and ribbon tension both drift over a long roll, and a setting that produces a perfect label at print #1 can produce a marginal one at print #400.

Turning This Into a Repeatable Workflow

Design decisions and printer settings only pay off if the batch behind them is actually repeatable. That's the problem the studio above is built to solve: generate a sequence for pure numeric runs, paste an ad hoc list for a quick job (spaces, commas, or line breaks all work), or upload an Excel/CSV file built from the downloadable SKU/Title/Qty template. Customize the very first label exactly how you want every label to look, then Apply to All & Generate does the rest — regenerating every barcode and text field per row, repeating any row by its Qty if you need multiple copies of the same SKU, with a live preview before you commit a roll of label stock to it.

Before running a full batch to production stock, verify a handful of the generated codes with an actual scanner. A phone camera is a reasonable first pass for QR, but 1D symbologies like Code-128, UPC-A, and EAN-13 deserve a real handheld or fixed-mount scanner, since that's what will be reading them on the floor.

Frequently Asked Questions

What's the difference between Code-128 and UPC-A for warehouse labels?

Code-128 encodes any alphanumeric string at high density and needs no registration, making it the right default for internal SKU, bin, and location labels. UPC-A is a fixed 12-digit numeric symbology tied to a GS1 company prefix — use it only for items that will be scanned at an external retail point of sale, not as a generic container for internal codes.

Do warehouse or delivery labels need a ZATCA QR code?

Only when the label is standing in for, or accompanying, a simplified tax invoice — for example, a cash-on-delivery parcel invoiced at the point of dispatch. Pure internal bin, rack, or location labels never need one; add a ZATCA QR only to labels tied to an actual invoiced sale.

What size should a warehouse bin label be?

There's no universally mandated size, but 4×2 in (100×50mm) and 4×6 in (100×150mm) are the most common because they match standard thermal printer roll widths. The real constraint is your barcode's minimum scannable size plus a proper quiet zone — size the label around that, not around how much text you'd like to fit.

Is direct thermal or thermal transfer better for warehouse labels?

Direct thermal is fine for labels scanned and discarded within days, like outbound shipping labels. Thermal transfer is the safer choice for anything staying on a shelf, bin, or pallet for weeks or months, since the print resists fading under warehouse lighting and heat that direct thermal can't.

Can I batch-generate hundreds of labels from a spreadsheet?

Yes. Upload the SKU/Title/Qty template as a CSV or Excel file, or download the template first to see the exact format. Design one label, mark the fields that should change per row as Dynamic, and Apply to All regenerates every barcode and text field — repeating each row by its Qty if you need multiple copies of the same SKU.

What printer DPI do I need for small barcodes to scan reliably?

203 DPI is standard and adequate for most Code-128 and EAN/UPC labels at typical sizes. If you're printing small QR codes or a barcode denser than about 15 characters in under an inch, 300 DPI keeps the module width crisp enough for a reliable first-pass scan.

SH

Sohail Hakeem

Systems Architect & Logistics Technology Specialist

Sohail designs and builds the barcode, labeling, and e-invoicing tools on this site, with hands-on experience applying GS1 barcode standards and ZATCA-compliant e-invoicing systems to real supply-chain operations across the Gulf.