For decades, the checkout has known only one thing about a product: its GTIN. That is enough to charge the right price, but not to tell one pot of yoghurt from another made three weeks later. 2D barcodes change what the retailer can know at the moment of sale. Whether a given retailer uses that is a separate question, and this article is about what becomes possible.
The identifier ladder
- GTIN“What product?”The product type — every bottle of the same 100 ml fragrance shares it.
- Batch / lot“Which production run?”Units made together, usually sharing a production date and expiry.
- Serial“Which exact unit?”Combined with the GTIN, one individual bottle.
- SSCC“Which logistic unit?”A specific carton or pallet as it moves through the supply chain.
- GLN“Which party or place?”A company, factory, warehouse, store or dock door.
Four pieces of data, four different questions
A 2D barcode on a retail pack can carry several GS1 data elements, each introduced by an Application Identifier (AI):
| Data | AI | Answers the question |
|---|---|---|
| GTIN | (01) | What product is this? |
| Batch or lot | (10) | Which production run did it come from? |
| Expiry date | (17) | Until when is it good? |
| Serial number | (21) | Which individual unit is it? |
A linear EAN/UPC barcode carries only the first. A 2D barcode — a GS1 DataMatrix, or a QR code or Data Matrix carrying a GS1 Digital Link — can carry all four. In a Digital Link, batch and serial appear in the path of the web address and expiry in the query string, but the scanner turns them into the same data elements. How these identifiers relate is set out in GTIN, batch, serial, SSCC and GLN explained.
What the checkout must do, and what it may do
The retail industry's 2D goal, Ambition 2027 (also called Sunrise 2027), is about the point of sale (POS) being able to read and process the GTIN from 2D as well as linear barcodes. That is the floor. GS1 describes scanner modes ranging from sending the first GTIN read, through preferring the 2D code, to reading all compliant barcodes. Capturing and acting on batch, expiry or serial goes beyond the minimum.
So a 2D code on your pack does not mean a retailer is using its extra data. It means the retailer could. The basic checkout flow is explained in what happens when a product is scanned at the checkout.
What retailers could do with the extra data
Stop expired items at the till
With the expiry date in the code, the till can compare it with today's date and stop the sale, or warn the cashier. This protects shoppers from out-of-date food or cosmetics that slipped past shelf checks, and it works at self-checkouts where no member of staff looks at the pack.
Recall one batch, not the whole product
When a fault affects a single production run, a retailer with only the GTIN must often pull every unit of that product. If the till reads the batch, the retailer could block just the affected batch at the checkout and leave good stock on sale. Recording batch at sale also tells the retailer how many affected units were already sold, and where.
Mark down short-dated stock
Many retailers already reduce prices on items near their date, usually with printed stickers. With expiry in the code, the price reduction could be calculated at the till from the date itself, reducing manual labelling and mistakes.
Rotate stock and measure waste more accurately
Stock rotation means selling the oldest stock first. Today, many stores manage this by eye. With batch and expiry captured at receipt and at sale, a retailer could see how much of each date is in a store and whether older stock is selling first. Waste reports could then show which batches and dates were thrown away, not just which products.
Check returns
Where a brand serializes its products, a serial number captured at sale could later help a retailer confirm that a returned item is the one it sold. Most retail products are not serialized, so this matters mainly for higher-value goods. Whether a product needs a serial at all is discussed in do all products need serialization?
A worked example
Surya Fresh, a fictional juice brand, prints a QR code carrying a GS1 Digital Link with the GTIN, batch and expiry next to its existing barcode.
- A small grocer with laser scanners reads the linear barcode. It gets the GTIN and the price, nothing more. Surya Fresh's juice sells exactly as before.
- A regional supermarket upgrades to imaging scanners that capture all the data. At self-checkout, a carton dated yesterday is flagged and stopped.
- Two weeks later, Surya Fresh finds a labelling error on one batch. The supermarket blocks that batch at its tills and checks its sales records to see which stores sold it. Other batches stay on the shelf.
The pack was the same for both shops. The difference was what each retailer chose to do with the data.
Choosing the right level
Batch and expiry suit most perishable and dated goods: one value per production run, printed in a 2D code. Serial numbers identify each unit and need a more demanding packaging line. The trade-off is set out in batch-level vs unit-level identification.
What this asks of brands
- Print the right data, accurately. A wrong expiry in the code is worse than none, because systems will trust it.
- Keep values consistent. GS1 rules require the linear barcode and the 2D code to carry the same GTIN, and any shared values to match.
- Use an approved retail carrier and, for Digital Link, the uncompressed form.
- Ask your retail customers which data they plan to capture. It shapes what is worth printing.