Preverjanje skladnosti z EU
Preverjanje skladnosti z EU
qr3.app vsebuje integriran EU-validator za digitalne potne liste izdelkov (Digital Product Passports - DPP). Vaše DPP-je preveri glede na ustrezne predpise EU (ESPR, Loi AGEC) in vrne strukturirane težave (issues) s stopnjo resnosti (severity), potjo polja, namigi in neobvezno značko ESPR-ready.
Na voljo so tri vstopne točke:
- Na strani strežnika, že shranjeni DPP-ji —
GET /v1/dpp/:id/eu-compliance - Predogled v živo v obrazcu za ustvarjanje —
POST /v1/dpp/validate - Simulator v živo podrobno —
POST /v1/dpp/:id/validate-update
Vse tri vstopne točke vračajo enako strukturo EuComplianceResult — zato morate analizo implementirati le enkrat.
Struktura rezultata
{ "compliant": false, "espr_ready": true, "issues": [ { "code": "TEXTILE_AGEC_REQUIRED", "severity": "error", "field": "textile_data.country_weaving_knitting", "message": "AGEC chain country is required for products sold on the French market", "hints": { "market": "FR" } }, { "code": "TEXTILE_GREENWASHING", "severity": "warning", "field": "product_name", "message": "\"natural\" is a prohibited term under AGEC", "hints": { "term": "natural", "locale": "en", "category": "generic" } } ], "summary": { "errors": 1, "warnings": 1, "info": 0 }}compliant: true⇔summary.errors === 0espr_ready: true⇔ nastavljena so vsa izbirna polja ESPR (glejte Tekstilni DPP)issues[]je stabilno razvrščen po stopnji resnosti (error→warning→info) in nato po kodi
Stopnje resnosti
| Stopnja resnosti | Pomen | Primer |
|---|---|---|
error | Blokira skladnost z EU; moralo bi biti odpravljeno pred izdajo | TEXTILE_AGEC_REQUIRED, če je FR na trgu in je veriga porekla nepopolna |
warning | Priporočilo; stranka lahko shrani, vendar bi morala ukrepati | TEXTILE_GREENWASHING izven FR |
info | Statusni signal brez potrebe po ukrepanju | TEXTILE_ESPR_READY — vsa izbirna polja ESPR so izpolnjena |
Katalog pravil (tekstil + baterije)
Tekstil (Q3.3.4)
| Koda | Stopnja resnosti | Sprožilec |
|---|---|---|
TEXTILE_AGEC_REQUIRED | error (FR) · warning (sicer) | Nepopolna veriga AGEC (tkanje/barvanje/konfekcija), FR je na trgu |
TEXTILE_MICROPLASTICS_CONSISTENCY | error | Sintetika ≥ 50 %, vendar contains_microplastics !== true |
TEXTILE_SVHC_THRESHOLD | warning | Vnos SVHC brez številke CAS ali koncentracije |
TEXTILE_GREENWASHING | error (FR) · warning (sicer) | Izraz s seznama prepovedanih izrazov v product_name/material |
TEXTILE_ESPR_READY | info | Vsa polja ESPR B7–B15 so izpolnjena |
Baterije (faza 4a)
Validator preverja mejne vrednosti iz Uredbe EU o baterijah 2023/1542 (pragi reciklirane vsebnosti, razredi ogljičnega odtisa, minimalna garancija itd.). Podrobnosti najdete v dokumentaciji za baterijski DPP.
Predogled v živo v obrazcu za ustvarjanje
Takoj ko ustvarite DPP na nadzorni plošči (/dashboard/dpp/new), se isti validator izvaja brezstanjno (stateless) ob vsakem preverjanju (validate roundtrip) — ne da bi bilo treba potni list shraniti. Razdelek eu_compliance se pojavi neposredno pod obstoječo ploščo za preverjanje (validation panel) in izpostavi napake ter opozorila pred oddajo (submit).
Neposreden dostop do API-ja:
curl -X POST https://qr3.app/v1/dpp/validate \ -H "Authorization: Bearer $API_KEY" \ -H "X-Workspace-Id: $WS_ID" \ -H "Content-Type: application/json" \ -d '{ "category": "textile", "gtin": "04012345678901", "product_name": "Natural Cotton T-Shirt", "manufacturer": "EcoWear GmbH", "origin_country": "PT", "market_countries": ["FR"], "textile_data": { "fiber_composition": [{ "material": "cotton", "percentage": 100, "recycled_pct": 0 }] } }'Odgovor vsebuje:
data.valid— sintaktična veljavnost (Zod)data.errors[]— klasične napake Zoddata.jsonld_preview— predogled JSON-LDdata.eu_compliance— rezultat EU-validatorja (null, če preverjanje Zod ne uspe)
Če je eu_compliance.summary.errors > 0, nadzorna plošča izriše pasico Save-Guard neposredno nad gumbom za oddajo — shranjevanje ni blokirano, vendar pred klikom vidite posledice.
Simulator v živo podrobno
Na /dashboard/dpp/:dppId je pod razdelkom za skladnost (compliance section) na voljo kartica simulatorja. Omogoča spreminjanje dveh najbolj pomembnih polj za skladnost (status in market_countries) ter takojšen prikaz učinka — brez spreminjanja obstoječih podatkov. Tipičen potek dela (flow):
- Predogled: “Kaj se zgodi, če v ponudbo vključim FR?” → izberite ploščico (chip) “FR” → “Preview EU impact” → prikaže se
TEXTILE_AGEC_REQUIRED - Popravek: Dopolnite verigo porekla (izven simulatorja v poteku za ustvarjanje ali masovni uvoz)
- Shranjevanje: “Save changes” shrani status/seznam trgov neposredno prek
PUT /v1/dpp/:id
Neposreden dostop do API-ja:
curl -X POST https://qr3.app/v1/dpp/$DPP_ID/validate-update \ -H "Authorization: Bearer $API_KEY" \ -H "X-Workspace-Id: $WS_ID" \ -H "Content-Type: application/json" \ -d '{ "market_countries": ["DE", "FR"], "status": "live" }'Odgovor razširi standardni rezultat z objektom preview:
{ "data": { "compliant": false, "espr_ready": false, "issues": [/* … */], "summary": { "errors": 1, "warnings": 0, "info": 0 }, "preview": { "status": "live", "landing_locale": "de", "market_countries": ["DE", "FR"], "changed_fields": ["status", "market_countries"] } }}changed_fields[] navaja samo polja, ki bi se dejansko spremenila — tako lahko npr. v uporabniškem vmesniku (UI) poudarite le spremenjene ploščice (chips).
Dovoljeno je prazno telo (body), ki vrne trenutno oceno skladnosti (ponovno preveri dejansko stanje).
Avtomatizacija
CI-pipeline
Tipičen preizkus CI:
STATUS=$(curl -s -o /tmp/out.json -w "%{http_code}" \ https://qr3.app/v1/dpp/$DPP_ID/eu-compliance \ -H "Authorization: Bearer $API_KEY" \ -H "X-Workspace-Id: $WS_ID")
if [ "$STATUS" != "200" ]; then exit 1fi
jq -e '.data.summary.errors == 0' /tmp/out.json > /dev/nullStrežnik MCP
Priloženi @qr3/mcp-server med drugim ponuja orodje validate_dpp — agenti umetne inteligence (KI) lahko z njim pred klicem za ustvarjanje preverijo, ali razpoložljivi podatki ustrezajo pravilom AGEC.
Pogoste napake
| Težava (Issue) | Vzrok | Popravek |
|---|---|---|
TEXTILE_MICROPLASTICS_CONSISTENCY | Delež poliestra ≥ 50 %, vendar je zastavica false | Nastavite contains_microplastics: true |
TEXTILE_AGEC_REQUIRED z hints.market: "FR" | FR je na trgu, veriga je nepopolna | Nastavite country_weaving_knitting, country_dyeing_printing, country_assembly |
TEXTILE_GREENWASHING kot error | Prepovedan izraz + FR na trgu | Odstranite izraz iz product_name ali prilagodite trg |
TEXTILE_SVHC_THRESHOLD | Snov SVHC brez CAS | Vnesite številko CAS s seznama REACH |
Naslednji koraki
- Tekstilni DPP — shema, veriga porekla, opozorilno polje za mikroplastiko
- Baterijski DPP — obvezna polja za baterijski potni list
- Referenca API — podrobnosti o vseh končnih točkah za skladnost z EU