A significant proportion of barcode scanning issues we see in customer environments stem from a small number of recurring design and production problems. Below we outline the principles we recommend following when creating barcodes for use with our warehouse device software, along with tools we find helpful for validation.
Follow the GS1 Standard
GS1 is a globally adopted standard for product identification.
Application Identifiers (AIs) have specific, defined meanings and repurposing AIs for custom data requirements breaks interoperability both within your own systems and with any trading partner that reads barcodes to the standard. If you are using GS1 barcodes, use them as the standard intends you to.
The "Variant" AI is not the same as a Business Central Variant
We often get asked about supporting Business Central Item Variants.
GS1 AI 20 is titled VARIANT, which causes understandable confusion. The actual definition of this AI is "Internal Product Variant" which is a two-digit numeric value (format N2+N2) intended to distinguish minor internal variations of a product that already shares a GTIN, such as a minor packaging change, a regional production variant, or a short-lived promotional variation that does not warrant a new GTIN.
It is not intended to express the kind of variant dimensions held in Business Central such as colour, size, style or configuration. Those are distinct sellable variations and must be represented differently.
GS1 has also been steering users away from AI 20 generally in favour of more explicit identifiers.
Use Item References for Business Central Item Variants
The correct way to make a Business Central Item Variant scannable is to set up an "Item Reference" with the Type set to Barcode for each variant, linked to the item's GTIN (AI 01). Each variant gets its own scannable identifier that the warehouse device can resolve unambiguously back to the right Item Variant.
For example, an Item sold in three sizes would have three "Item References", one per size and with each mapped to the corresponding Variant. The warehouse operator scans one barcode and the system knows exactly which size has moved.
Do not use other GS1 AIs (such as AI 243 Packaging Component Number, or AI 20 Variant) as a substitute.
We have seen these used as workarounds and we strongly recommend against it for the following reasons.
-
It is not supported by the GS1 standard. Those AIs mean something specific and different
-
It is not portable. Any trading partner, 3PL, or external system reading the barcode to the standard will misinterpret the data
-
It locks you into a non-standard interpretation that becomes painful to undo later
-
It tends to create exactly the kind of intermittent, hard-to-diagnose scanning behaviour that prompts a support call
Item References are the supported route, they work cleanly with the GS1 standard, and they scale as the product catalogue grows
Use the official GS1 reference
When selecting an Application Identifier, consult the official GS1 AI table at https://ref.gs1.org/ai.
This is the authoritative source for whether an identifier is fixed or variable length and what the required format is. For example, AI 17 (Expiration Date) is fixed at six digits, while AI 10 (Batch/Lot) is variable up to twenty characters and requires an FNC1 separator when followed by another AI.
Respect Date Formats
All GS1 date AIs, including AI 11 (Production Date), AI 15 (Best Before), AI 17 (Expiration Date), are fixed at six digits in the format YYMMDD. For example, 31 December 2026 must be encoded as 261231, not 20261231, 311226, or 26-12-31.
Scanners and downstream systems parse these positionally and will misread anything else.
Design for the scanner and environment
A barcode must be readable by the device the customer will use, at the distance and angle typical of warehouse operation.
This means paying attention to the following.
-
Scale and density appropriate to the scanner and the typical scan distance
-
Quiet zones (whitespace) around the barcode, as specified by GS1
-
Contrast between the barcode and its background
Full guidance is available at gs1.org.
Test on the actual label printer
A barcode that looks crisp on an office laser printer can look very different when produced on a thermal label printer in a warehouse.
Print quality varies considerably between devices and label stock, and a barcode that prints poorly will scan poorly, so always test barcodes using the printer and label stock that you intend to use.
Inconsistent scanning is usually a print quality issue
When a barcode scans intermittently, the cause is almost always print quality, scale, or quiet zone rather than the scanner or the encoded data.
Validation before deployment
In order to ensure that the barcodes you have created for your labels is working there are tools that you can use.
Two tools we recommend.
-
https://barcode.tec-it.com allows quick prototyping of barcodes during design
-
BarValid (for Android) allows you to test scanning of physical printed barcodes in the environment they will be used
Clever Labelling
For customers who want to remove the problems described above, our Clever Labelling product handles barcode generation throughout Business Central following GS1 formatting rules, ensuring that the risk of the above issues is eliminated.