Listed. In stock. The wrong bottle.
The GTIN has sat in product databases since 1974. Most e-commerce teams treat it as a compliance field. AI shopping agents treat it as the only reliable way to know what they're buying. When it's missing from schema markup, agents guess. We tracked what happens when they do.
The first product ever scanned at a retail checkout was a pack of Wrigley's chewing gum, at a Marsh supermarket in Troy, Ohio, in 1974. That scan ran on the barcode system that eventually became the GS1 standard GTINs are built on today. Fifty years later, most e-commerce teams still treat the GTIN as a compliance field. Something to fill in so the listing goes live.
A GTIN is a Global Trade Item Number. Thirteen or fourteen digits, issued under the GS1 standard, globally unique, tied to a specific product at a specific packaging level. Not a retailer SKU that changes by platform. Not a product name that varies by market. One number, one product, everywhere.
674545 00000 1 ← GTIN-12 (UPC-A, the format from that 1974 checkout)
------ ----- -
company item check digit
prefix ref (GS1 algorithm: multiply each digit by alternating weights
of 1 and 3, sum, subtract from next multiple of 10.
Transpose any two digits and the scan fails — hard error,
no fuzzy match, no guess.)
GTIN-13 in schema.org: 0 674545 00000 1 ← zero-padded to 13 digits
GTIN-14 in catalogue: 00 674545 00000 1 ← indicator digit prepended
When that number appears in the schema.org Product markup on a product page, an agent can unambiguously identify the item and match it across every retailer in the network:
{
"@type": "Product",
"name": "Don Julio Blanco Tequila 750ml",
"gtin13": "0674545000001",
"offers": {
"@type": "Offer",
"price": "44.95",
"priceCurrency": "GBP",
"availability": "https://schema.org/InStock"
}
}
Most product pages have the name and the price. Almost none have the GTIN.
Agents don't browse. A purchase intent arrives and a structured data scan begins. The agent needs to know if it has the right product, at the right price, actually in stock. The GTIN is what makes the first question answerable with any certainty. It is the one signal that connects a product on a brand's own site to the same product on a retailer page, without falling back to name matching.
Without it, the agent guesses. And guessing looks a lot like confidence right up until the wrong bottle arrives at the door. The order doesn't fail. There's no error, no flag raised. The customer gets the 70cl. They wanted the 750ml. By the time the dispute reaches a human, the agent has moved on. The brand loses the sale and the relationship, and the reason is a thirteen-digit number that nobody put in the right field.
The retailer problem brands aren't tracking
A brand can invest heavily in its own DTC site, get the schema right, structure the pricing and availability signals correctly, and still be invisible to agents on every retailer site where the majority of its volume actually moves. Those retailer sites are not in the brand's control. Nobody on the brand side is watching them. And retailers have little incentive to prioritise any single brand's agent-readiness. The GTIN exists in the listing. The structured data around it usually does not.
The GTIN is present in the product database. It is just not on the page. An agent scanning that page has no way to know they are the same thing.
The Aidō Lighthouse brand view: 10 products tracked across 9 retailers, with active monitoring across the retail network. Each product gets a per-retailer agent-readiness score updated on every scan.
What we found when we looked
We tracked 10 products with valid GTINs across nine retail partners for a major spirits brand. Agents could not correctly identify a single product on any retailer site.
Not because the products were unlisted. They were listed. The GTINs existed in the brand's catalogue. The products were in stock, priced, and reachable. But the structured data agents rely on was absent or incomplete across every retailer in the network.
To show what this looks like in practice, here is a scan we ran on a publicly listed product. Don Julio Blanco Tequila 750ml, GTIN 00674545000001, on drinksdirect.com. In stock, priced at £44.95, fully accessible to bots. Agent readiness score: 47/100. The problem: no GTIN in the schema.org markup. Without it, the agent fell back to name matching. Name matching returned "Don Julio Blanco Tequila 70cl" at 70% confidence. Wrong variant. An agent acting on that match buys the wrong bottle.
The Aidō Lighthouse product scanner on a publicly listed spirits product. Bot accessibility: 30/30 (agents can reach the page). Schema quality: 21/40 (no GTIN in markup). The scanner fell back to name matching and returned the 70cl variant instead of the 750ml. The product is right there. The match is wrong.
The page is accessible. The data is not machine-readable.
The product is not blocked, not hidden, not out of stock. The only reason agents cannot reliably identify it is a missing gtin13 field in the schema.org markup. Everything else is fine.
The fix is a single field. Add gtin13 to the schema.org Product markup on the page. The GTIN already sits in the product database. It just needs to surface where agents can read it.
The protocols coming don't fix this
There is a reasonable temptation to assume that the emerging agentic commerce standards will sort this out. They will not. ACP, UCP, and MCP are the protocols being built so agents can communicate directly with merchants and transact on behalf of users. They all depend on accurate, machine-readable product data at the page level. A protocol cannot create schema markup that was never implemented. The infrastructure has to exist before the protocol can use it.
A Checkout.com 2026 survey of Heads of Payments found that better product standards, specifically structured catalogues and substitution data, rank as the single biggest accelerator for agentic commerce readiness. Ahead of protocol adoption. Ahead of payment infrastructure. Nearly four in ten US merchants in that survey expect agents to account for 10% of their online transactions within six to eleven months. The merchants closest to being ready have identified the catalogue layer as the problem. Most just cannot measure it yet.
What we built to measure it
Using a brand's GTIN catalogue as the anchor, Aidō scans every retailer site where those products appear. For each product, on each retailer, we check whether an agent can find it, read it correctly, understand the variant attributes, confirm availability, and progress to purchase.
The output is an Agent Readiness Matrix: product by product, retailer by retailer, showing exactly where the catalogue holds up and where it breaks down. Not a single domain score. A cross-retailer picture of how your products actually appear to agents in the wild.
The brands that lose agentic commerce traffic will not lose it because their products are poor. They will lose it because the data layer underneath them was never built for machines to read.
See where your catalogue stands
We scan your products across your retail network and show you exactly what agents can and cannot find, product by product, retailer by retailer.
Get your readiness matrix