Kontrola súladu s EÚ
Kontrola súladu s EÚ
qr3.app obsahuje integrovaný EÚ validátor pre digitálne pasy produktov (Digital Product Passports). Overuje vaše DPP voči relevantným nariadeniam EÚ (ESPR, Loi AGEC) und poskytuje štruktúrované problémy (Issues) s úrovňou závažnosti (Severity), cestou k poľu, tipmi a voliteľným odznakom ESPR-ready.
Existujú tri vstupné body:
- Na strane servera, už uložené DPP —
GET /v1/dpp/:id/eu-compliance - Živý náhľad vo formulári na vytvorenie —
POST /v1/dpp/validate - Živý simulátor v detaile —
POST /v1/dpp/:id/validate-update
Všetky tri vracajú rovnakú štruktúru EuComplianceResult — vyhodnotenie teda stačí implementovať iba raz.
Štruktúra výsledku
{ "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⇔ všetky ESPR-Opt-in polia sú nastavené (pozri Textilný DPP)issues[]je stabilne zoradené podľa závažnosti (error→warning→info) a následne podľa kódu
Úrovne závažnosti
| Severity | Význam | Príklad |
|---|---|---|
error | Blokuje súlad s EÚ; mal by sa opraviť pred zverejnením | TEXTILE_AGEC_REQUIRED, ak je FR na trhu a dodávateľský reťazec je neúplný |
warning | Odporúčanie; zákazník môže uložiť, ale mal by konať | TEXTILE_GREENWASHING mimo FR |
info | Stavový signál bez potreby akcie | TEXTILE_ESPR_READY — všetky ESPR-Opt-in polia sú kompletné |
Katalóg pravidiel (Textil + Batérie)
Textil (Q3.3.4)
| Kód | Závažnosť | Spúšťač |
|---|---|---|
TEXTILE_AGEC_REQUIRED | error (FR) · warning (inak) | AGEC reťazec (tkanie/farbenie/konfekcia) je neúplný, FR je na trhu |
TEXTILE_MICROPLASTICS_CONSISTENCY | error | Syntetika ≥ 50 %, ale contains_microplastics !== true |
TEXTILE_SVHC_THRESHOLD | warning | Záznam SVHC bez čísla CAS alebo koncentrácie |
TEXTILE_GREENWASHING | error (FR) · warning (inak) | Pojem zo zoznamu zakázaných slov v product_name/material |
TEXTILE_ESPR_READY | info | Všetky ESPR polia B7–B15 sú kompletné |
Batérie (Fáza 4a)
Validátor kontroluje limitné hodnoty z nariadenia EÚ o batériách 2023/1542 (prahové hodnoty pre recyklovaný obsah, triedy uhlíkovej stopy, minimálna záruka atď.). Podrobnosti nájdete v dokumentácii k DPP pre batérie.
Živý náhľad vo formulári na vytvorenie
Hneď ako vytvoríte DPP v paneli správcu (/dashboard/dpp/new), rovnaký validátor beží bezstavovo (stateless) pri každom overovacom cykle — bez toho, aby sa pas musel uložiť. Sekcia eu_compliance sa zobrazí priamo pod existujúcim validačným panelom a zvýrazní chyby a varovania pred odoslaním (Submit).
Priamy prístup k API:
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 }] } }'Odpoveď obsahuje:
data.valid— syntaktická platnosť (Zod)data.errors[]— klasické chyby Zoddata.jsonld_preview— náhľad JSON-LDdata.eu_compliance— výsledok EÚ validátora (null, ak validácia Zod zlyhá)
Ak je eu_compliance.summary.errors > 0, panel správcu vykreslí banner Save-Guard priamo nad tlačidlom na odoslanie — uloženie nie je zablokované, ale pred kliknutím uvidíte dôsledky.
Živý simulátor v detaile
Na adrese /dashboard/dpp/:dppId sa pod sekciou súladu (Compliance) nachádza karta simulátora. Umožňuje zmeniť dve najdôležitejšie polia pre súlad (status a market_countries) a okamžite vidieť dopad — bez úpravy existujúcich dát. Typický postup:
- Náhľad (Preview): „Čo sa stane, ak pridám FR do sortimentu?“ → vybrať chip „FR“ → „Preview EU impact“ → zobrazí sa
TEXTILE_AGEC_REQUIRED - Oprava (Fix): Doplniť dodávateľský reťazec (mimo simulátora v procese vytvárania alebo hromadného importu)
- Uloženie (Save): „Save changes“ uloží stav/zoznam trhov priamo cez
PUT /v1/dpp/:id
Priamy prístup k API:
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" }'Odpoveď rozširuje štandardný výsledok o objekt 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[] uvádza iba polia, ktoré by sa skutočne zmenili — v používateľskom rozhraní (UI) tak môžete napríklad zvýrazniť iba zmenené chipy.
Prázdne telo (Body) je povolené a vráti aktuálne hodnotenie súladu (opätovné overenie aktuálneho stavu).
Automatizácia
CI pipeline
Typický CI test:
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/nullMCP server
Dodávaný @qr3/mcp-server ponúka okrem iného nástroj validate_dpp — AI agenti ho môžu použiť na overenie, či poskytnuté údaje spĺňajú pravidlá AGEC ešte pred volaním na vytvorenie (Create).
Časté chyby
| Problém (Issue) | Príčina | Oprava (Fix) |
|---|---|---|
TEXTILE_MICROPLASTICS_CONSISTENCY | Podiel polyesteru ≥ 50 %, ale príznak je false | Nastaviť contains_microplastics: true |
TEXTILE_AGEC_REQUIRED s hints.market: "FR" | FR je na trhu, reťazec je neúplný | Nastaviť country_weaving_knitting, country_dyeing_printing, country_assembly |
TEXTILE_GREENWASHING ako error | Zakázaný pojem + FR na trhu | Odstrániť pojem z product_name alebo upraviť trh |
TEXTILE_SVHC_THRESHOLD | Látka SVHC bez CAS | Zadať číslo CAS zo zoznamu REACH |
Nächste Schritte
- Textilný DPP — schéma, dodávateľský reťazec, varovný box pre mikroplasty
- DPP pre batérie — povinné polia pre pas batérie
- API referencia — podrobnosti o všetkých koncových bodoch pre súlad s EÚ