One Passport, Many Sizes: How dpp.gs Handles Textile GTIN Variants
A single T-shirt design sold in 5 sizes and 3 colours is 15 different GTINs — but it is one product. The fibre composition, the care instructions, the country of origin, the recycled content and the microfibre data are identical across all 15. The ESPR textile passport (delegated act expected 2027) will force every apparel brand to confront this tension. dpp.gs resolves it with a model / variant model.
Why the obvious shortcuts break
Brands typically try one of two things, and both fail:
- One GTIN for the whole design. Illegal under GS1 rules and impossible at the till — the barcode on a size S and a size XL must scan as different articles for stock and sales to work. A passport tied to a single GTIN simply cannot represent the size the customer is holding.
- A full, separate passport per variant. Technically valid, but you now maintain 15 near-identical records. Change the recycled-content figure once and you must edit it 15 times — and the 15 will inevitably drift out of sync, which is precisely the data-integrity problem a passport is meant to solve.
The model / variant approach
dpp.gs separates the model (the design — where the shared sustainability data lives) from its variants (the saleable SKUs, each with its own GTIN plus its size, colour and optional SKU code). You fill in the passport once, on the model, then register the variant GTINs under it.
| Model | Variant | |
|---|---|---|
| Example | EcoWear Organic T-Shirt | Size M · Navy |
| GTIN | 0852…0032 (the design) | 0852…0117 (this exact SKU) |
| Carries | Fibre composition, care, origin, recycled %, microfibre, documents | Just its size, colour, SKU — and a pointer to the model |
| You edit | Once | Never (it inherits everything) |
What happens when someone scans a variant
This is where it pays off. A shopper scans the QR on the size M, navy hangtag — a variant GTIN. dpp.gs:
- recognises the GTIN as a registered variant,
- resolves it to its model passport and renders the full sustainability data,
- shows a clear banner — "Variant: M · Navy" — in any of the 28 viewer languages, with a link to the product model,
- and keeps the scanned variant's own GTIN on the passport, so the record reflects the exact item in the customer's hand.
One passport to maintain; every SKU resolves correctly.
Machine-readable too (JSON-LD)
The grouping is not just a visual nicety — it is expressed in the passport's JSON-LD data so other systems understand it. A variant's linked-data record carries isVariantOf pointing at the model, plus size and color; the model carries a hasVariant list of every SKU it covers. A recycler's or retailer's system can therefore walk from any single barcode to the whole product family, and back, without guessing.
How you set it up
In the dashboard, open the product that represents your design and use the Product variants section: add each variant's GTIN with its size, colour and optional SKU. That is the whole workflow. The variant GTINs immediately resolve to the model passport, generate their own QR / GS1 DataMatrix codes, and appear in the passport's machine-readable data. The same applies via the API: POST /api/v1/products/{GTIN}/variants.
Publish your collection the smart way
One passport per design, every size and colour resolving correctly. Free for your first 2 GTINs.
Start free →Related reading: How dpp.gs aligns with the EU DPP standards · A passport for every product category · GS1 Digital Link explained