Overview

TraceID is a Digital Product Passport platform. Each garment gets a unique QR code and RFID tag. Scanning either opens a public passport page with materials, certifications, and sustainability data.

WhoDoes whatWhere
Brand / supplierCreates products, fills passport data, publishes passportsadmin.traceid.co
Label productionCreates batches, exports QR + EPC CSV, prints labelsadmin.traceid.co + label printer
ConsumerScans QR or RFID on garment, views passporttraceid.co/p/{id}

Passport flow

From raw product data to a live, publicly scannable Digital Product Passport.

  1. Create a model — Go to Products → New model. Enter model SKU, category, division, and brand.
  2. Add variants — Inside the model, add each colour × size combination. Each variant gets its own passport.
  3. Fill passport data — Open a variant → Edit passport. Fill composition, origin, certifications, care, carbon footprint. Use the AI mapper for raw material text.
  4. Run compliance check — Click "Check compliance". AI validates against EU ESPR Article 7 and returns a DPP score with errors and fix suggestions.
  5. Publish — Once composition and origin are filled, click Publish. The passport becomes publicly accessible.
// AI mapper input/output example Input: "95% Cotton, 5% Elastane" Output: [ { material: "Cotton", percentage: 95, isRecycled: false }, { material: "Elastane", percentage: 5, isRecycled: false } ] + suggestedCertifications: ["Better Cotton (BCI)"] + carbonEstimateKg: { min: 7.2, max: 11.4 }

Batches & QR codes

A batch is one label production run. It generates serialised physical item records, QR URLs, and EPC tags for a specific variant.

  1. Go to Batches → New batch
  2. Select the variant (e.g. Zara TRF Dress / White / S)
  3. Enter quantity (e.g. 500)
  4. Set the EPC company prefix and item reference
  5. Click Generate

The createBatch Cloud Function creates: one item record per unit (itm_xxxxxxxx), one RFID tag per unit (EPC string), and one QR URL per unit.

Go to Export → select the completed batch → Generate CSVDownload full CSV. The file contains:

QR_CODE_URL,EPC,ITEM_ID,SERIAL,VARIANT_SKU https://traceid.co/p/itm_a1b2,3034ABCD000100000001,itm_a1b2,00000001,ZTR-WDS-W-S

RFID & EPC

Every item gets both a QR code and an RFID EPC tag. Both resolve to the same passport — this is the golden rule.

The EPC is built from three fields set at batch creation:

Company prefix + Item reference + Serial (8 digits) Example: Prefix: 3034ABCD Item ref: 0001 Serial: 00000042 EPC: 3034ABCD000100000042

When an RFID reader scans the tag, it hits traceid.co/epc/{epc}. The resolvePassport function looks up the EPC, finds the variantId, and returns the passport.

Consumer scan experience

  1. Customer scans QR label with phone camera — no app required
  2. Browser opens traceid.co/p/{itemId}
  3. resolvePassport function checks passport status
  4. If published, returns full passport payload
  5. Customer sees: materials, certifications, care, sustainability, supply chain
  6. Scan is logged in scan_events for analytics

User roles

RolePermissionsBrand scope
AdminFull access: create users, manage all brands, delete categories, view audit logsAll brands
Brand managerCreate/edit products, manage categories, publish passportsOwn brand only
SupplierEdit passport data, create batches, import CSV, export label filesOwn brand only

Data schema

CollectionDocument IDPurpose
productsmdl_xxxxxxxxOne per model/style
variantsvar_xxxxxxxxOne per colour × size
passportsSame as variantIdDPP data — 1:1 with variant
batchesbat_xxxxxxxxxxLabel production runs
itemsitm_xxxxxxxxSerialised physical units
rfid_tagsEPC stringEPC → variantId lookup
scan_eventsautoQR/RFID scan analytics
usersFirebase Auth UIDUser profiles + roles
audit_logsautoImmutable write event log

Cloud functions reference

FunctionTriggerPurpose
resolvePassportHTTPS GETQR/RFID scan → public passport JSON
createBatchCallableGenerate items + rfid_tags in chunks of 499
recomputeDppScoreFirestore triggerAuto-recalculate DPP score on passport write
checkCertificationExpiryCron 08:00 UTCFlag certifications expiring within 60 days
exportLabelFileCallableCSV of QR+EPC pairs for label printer
aiMapCompositionCallableRaw text → structured composition fields
aiCheckComplianceCallableFull EU ESPR Article 7 compliance report
generateQrCodesCallableSVG QR codes + printable HTML label sheet
createUserCallableAdmin-only: create user with role + brand
updateUserRoleCallableAdmin-only: change role or brand
deactivateUserCallableAdmin-only: disable account

DPP score breakdown

The DPP score (0–100) is auto-calculated on every passport save. It measures completeness against EU ESPR Article 7.

CategoryMax pointsHow to earn
Identity10Variant SKU (5) + model SKU (5)
Composition20At least one material (10) + percentages sum to 100% (10)
Origin10Country of origin (5) + manufacturing facility (5)
Supply chain15At least one step (10) + all steps verified (5)
Certifications15At least one cert (10) + at least one valid cert (5)
Carbon20Carbon value (12) + methodology (4) + verification (4)
Care & end of life10Care instructions (3) + recyclable (4) + repairability (3)

Regulation overview

The EU Ecodesign for Sustainable Products Regulation (ESPR) was adopted in 2024 and requires Digital Product Passports for all product categories sold in the EU. Textiles are one of the first categories to be regulated.

Key requirements under Article 7 include:

  • Material composition with percentages
  • Country of manufacture
  • Repairability and recyclability information
  • Carbon footprint data (from 2027–2030 depending on scope)
  • Unique product identifier accessible via QR or RFID
  • Certifications with issuer and validity dates

The DPP must be accessible by scanning the product — no login, no app, no friction. TraceID's public passport pages at traceid.co/p/{id} fulfil this requirement.

Non-compliance after the mandatory date will result in products being blocked from EU market access.