Preskočiť na obsah

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:

  1. Na strane servera, už uložené DPPGET /v1/dpp/:id/eu-compliance
  2. Živý náhľad vo formulári na vytvoreniePOST /v1/dpp/validate
  3. Živý simulátor v detailePOST /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: truesummary.errors === 0
  • espr_ready: true ⇔ všetky ESPR-Opt-in polia sú nastavené (pozri Textilný DPP)
  • issues[] je stabilne zoradené podľa závažnosti (errorwarninginfo) a následne podľa kódu

Úrovne závažnosti

SeverityVýznamPríklad
errorBlokuje súlad s EÚ; mal by sa opraviť pred zverejnenímTEXTILE_AGEC_REQUIRED, ak je FR na trhu a dodávateľský reťazec je neúplný
warningOdporúčanie; zákazník môže uložiť, ale mal by konaťTEXTILE_GREENWASHING mimo FR
infoStavový signál bez potreby akcieTEXTILE_ESPR_READY — všetky ESPR-Opt-in polia sú kompletné

Katalóg pravidiel (Textil + Batérie)

Textil (Q3.3.4)

KódZávažnosťSpúšťač
TEXTILE_AGEC_REQUIREDerror (FR) · warning (inak)AGEC reťazec (tkanie/farbenie/konfekcia) je neúplný, FR je na trhu
TEXTILE_MICROPLASTICS_CONSISTENCYerrorSyntetika ≥ 50 %, ale contains_microplastics !== true
TEXTILE_SVHC_THRESHOLDwarningZáznam SVHC bez čísla CAS alebo koncentrácie
TEXTILE_GREENWASHINGerror (FR) · warning (inak)Pojem zo zoznamu zakázaných slov v product_name/material
TEXTILE_ESPR_READYinfoVš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:

Terminal window
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 Zod
  • data.jsonld_preview — náhľad JSON-LD
  • data.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:

  1. Náhľad (Preview): „Čo sa stane, ak pridám FR do sortimentu?“ → vybrať chip „FR“ → „Preview EU impact“ → zobrazí sa TEXTILE_AGEC_REQUIRED
  2. Oprava (Fix): Doplniť dodávateľský reťazec (mimo simulátora v procese vytvárania alebo hromadného importu)
  3. Uloženie (Save): „Save changes“ uloží stav/zoznam trhov priamo cez PUT /v1/dpp/:id

Priamy prístup k API:

Terminal window
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:

Terminal window
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 1
fi
jq -e '.data.summary.errors == 0' /tmp/out.json > /dev/null

MCP 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íčinaOprava (Fix)
TEXTILE_MICROPLASTICS_CONSISTENCYPodiel polyesteru ≥ 50 %, ale príznak je falseNastaviť 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 errorZakázaný pojem + FR na trhuOdstrániť pojem z product_name alebo upraviť trh
TEXTILE_SVHC_THRESHOLDLátka SVHC bez CASZadať čí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Ú