A GS1 Digital Link looks like a simple QR code on a pack. Behind it is a short chain of steps — some in the factory, some in the cloud, some in the scanner — and each has to be done right for the code to work. This article follows one code from the brand's product master to a consumer's screen, and then follows the same code through a supermarket checkout.
If you need the basics of what a Digital Link contains, start with what GS1 Digital Link is.
The example
We'll follow a 100 ml bottle of perfume from the fictional brand Maison Ardent, using GS1's example GTIN and a placeholder domain. Its finished code will hold:
https://id.maisonardent.example/01/09506000134352/10/LOT2610/21/A7F3K9
That is the GTIN, a batch number and a serial number, in the order the standard requires.
Step 1 — Decide the identity
Everything starts with data the brand already owns. The GTIN comes from the brand's GS1 licence and lives in its product master or ERP. The brand then decides how specific each code needs to be:
- GTIN only if the code just needs to identify the product and open a product page.
- GTIN + batch if the brand wants batch-specific information or targeted recalls.
- GTIN + batch + serial if it wants per-unit services such as warranty or loyalty.
This is a business decision, not a technical one, and it drives everything after it.
Step 2 — Build the address
Software turns those values into a GS1 Digital Link following the published syntax: the brand's domain, then /01/ and the 14-digit GTIN, then batch (/10/) and serial (/21/) in that order, with any descriptive data such as expiry in the query string.
Two choices here have long-term consequences. The domain should be one the brand will control for the life of the product, because it is printed permanently. And the address must stay uncompressed if the code is meant to scan at retail checkouts.
Step 3 — Encode it in a symbol
The address is encoded in a 2D barcode — usually a QR Code, because phone cameras open QR codes natively; sometimes a Data Matrix. The symbol has to be large enough and have enough clear space around it. For retail checkout use, GS1 sets a size range for the 2D module (the X-dimension of 0.396–0.990 mm, with 0.495 mm as the target) and a quiet zone of four modules around a QR code.
For a product-level code, this symbol can go straight into the pack artwork. For our serialized perfume, it can't — every bottle's code is different.
Step 4 — Print and verify on the line
Variable codes are printed during production by a coder — an inkjet, laser or thermal printer on the packaging line — fed with a fresh address for every unit. A camera then reads the code back.
That last step is easy to skip and expensive to miss. A printer reporting "printed" only means it received the data and fired; it says nothing about whether the code is readable. Proper verification grades print quality against ISO standards, and retail 2D codes need a minimum grade of 1.5 (C). See why "printed" is not the same as "verified".
Step 5 — A consumer scans with a phone
On the shelf or at home, a consumer points a phone camera at the bottle. The phone recognises an ordinary https:// address and offers to open it. The phone has no idea it is a GS1 identifier, and doesn't need to.
The browser sends a request to id.maisonardent.example, carrying the full path with the GTIN, batch and serial.
Step 6 — The resolver decides where to go
At that domain sits a resolver. It reads the identifiers in the path and looks up the links the brand has registered for them. Under the GS1-Conformant Resolver Standard:
- every product has exactly one default link, and the resolver redirects there unless the request asks for something else;
- other links are labelled with standard link types from the GS1 Web Vocabulary, such as
gs1:pip(product information page),gs1:instructionsorgs1:registerProduct; - an app can ask for a specific type, such as
?linkType=gs1:recallStatus; - links are inherited up the tree, so a serial-level address with no links of its own falls back to links set higher up, such as those for the GTIN.
For our perfume, the default might be the product page in the visitor's language. A warranty app scanning the same code could ask for the registration link instead. Our guide to what a GS1 resolver is covers link types in more depth.
Step 7 — The page loads
The browser follows the redirect and the consumer sees the page. If that page needs the serial number — to register a warranty, say — it receives it from the address. What happens next on the consumer side is covered in what happens when a consumer scans a connected product.
Because only the resolver decides where the link points, Maison Ardent can change the destination next year — new site, new campaign, a recall notice — without changing a single printed bottle.
The parallel path: the checkout
Now the same bottle reaches a till in a store whose scanners are 2D-capable. Here the code is handled completely differently.
- The imaging scanner decodes the symbol and recognises a GS1 Digital Link.
- The scanner or its software converts the address into standard GS1 data — the same element-string form a traditional GS1 barcode delivers — and passes the GTIN to the POS (point-of-sale) system.
- The POS looks up the GTIN in the retailer's own item file to find the name and price, exactly as it does for an EAN barcode.
No step touches the internet. GS1 describes Digital Link identifiers as decodable by scanning software and passed to the host system "without any need for an online connection". The till never visits maisonardent.example, never calls the resolver, and never fetches a price from the web.
The two paths side by side
| Phone | Checkout | |
|---|---|---|
| Reads the code as | A web address | GS1 identifiers |
| Goes online? | Yes, to the brand's domain | No |
| Uses | The resolver's links | The GTIN (and, if set up, batch or expiry) |
| Gets product data from | The brand's chosen pages | The retailer's own systems |
| Brand can change the result after printing? | Yes, via the resolver | No — the retailer controls price and item data |
This is why one code can serve both audiences; we look at that more closely in why the same GS1 2D code can work for checkout and consumers.
Where the chain usually breaks
- The domain lapses or belongs to an agency. Every printed code stops working on phones.
- Qualifiers in the wrong order, or a compressed address at retail. The address is no longer a valid retail Digital Link, and software that follows the standard may reject it.
- Poor print quality. The code decodes on a good phone but fails at speed on the line or at the till.
- No default link. The resolver has nowhere to send ordinary scans.