EU-megfelelőség ellenőrzése
EU-megfelelőség ellenőrzése
A qr3.app egy beépített EU-validátort tartalmaz a Digital Product Passport-okhoz (DPP). Ellenőrzi a DPP-ket a vonatkozó EU-s szabályozásokkal szemben (ESPR, Loi AGEC), és strukturált problémákat (Issues) ad vissza súlyossággal (Severity), mezőútvonallal, tippekkel és egy opcionális ESPR-ready jelvénnyel.
Három belépési pont létezik:
- Szerveroldali, már elmentett DPP-k —
GET /v1/dpp/:id/eu-compliance - Élő előnézet a létrehozási űrlapon —
POST /v1/dpp/validate - Élő szimulátor részletesen —
POST /v1/dpp/:id/validate-update
Mindhárom ugyanazt az EuComplianceResult struktúrát adja vissza — így a kiértékelést csak egyszer kell implementálnod.
Az eredmény struktúrája
{ "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⇔ minden ESPR-Opt-in mező be van állítva (lásd: Textil-DPP)- az
issues[]stabilan rendezett súlyosság (error→warning→info), majd kód szerint
Súlyossági szintek
| Súlyosság | Jelentés | Példa |
|---|---|---|
error | Blokkolja az EU-megfelelőséget; a kiadás előtt javítani kell | TEXTILE_AGEC_REQUIRED, ha FR szerepel a piacon és a származási lánc hiányos |
warning | Ajánlás; az ügyfél menthet, de cselekednie kellene | TEXTILE_GREENWASHING FR-en kívül |
info | Állapotjelzés teendő nélkül | TEXTILE_ESPR_READY — minden ESPR-Opt-in mező hiánytalan |
Szabálykatalógus (Textil + Akkumulátor)
Textil (Q3.3.4)
| Kód | Súlyosság | Kiváltó ok |
|---|---|---|
TEXTILE_AGEC_REQUIRED | error (FR) · warning (egyébként) | AGEC-lánc (szövés/festés/konfekcionálás) hiányos, FR szerepel a piacon |
TEXTILE_MICROPLASTICS_CONSISTENCY | error | Szintetikus anyag ≥ 50%, de a contains_microplastics !== true |
TEXTILE_SVHC_THRESHOLD | warning | SVHC-bejegyzés CAS-szám oder Konzentration nélkül |
TEXTILE_GREENWASHING | error (FR) · warning (egyébként) | Tiltólistás kifejezés a product_name/material mezőben |
TEXTILE_ESPR_READY | info | Minden ESPR-mező B7–B15 hiánytalan |
Akkumulátor (Phase 4a)
A validátor ellenőrzi az EU 2023/1542 akkumulátor-rendelet határértékeit (újrahasznosított tartalom küszöbértékei, Carbon-Footprint osztályok, minimális garancia stb.). Részletek az Akkumulátor-DPP dokumentációban.
Élő előnézet a létrehozási űrlapon
Amint létrehozol egy DPP-t az irányítópulton (/dashboard/dpp/new), ugyanaz a validátor fut le állapotmentesen minden validációs körút során — anélkül, hogy az útlevelet el kellene menteni. Az eu_compliance szekció közvetlenül a meglévő validációs panel alatt jelenik meg, und kiemeli a hibákat és figyelmeztetéseket a beküldés előtt.
Közvetlen API-elérés:
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 }] } }'A válasz a következőket tartalmazza:
data.valid— szintaktikai érvényesség (Zod)data.errors[]— klasszikus Zod-hibákdata.jsonld_preview— JSON-LD előnézetdata.eu_compliance— EU-validátor eredménye (null, ha a Zod-validáció sikertelen)
Ha az eu_compliance.summary.errors > 0, az irányítópult egy Save-Guard bannert jelenít meg közvetlenül a Submit gomb felett — a mentés nincs blokkolva, de a kattintás előtt láthatod a következményeket.
Élő szimulátor részletesen
A /dashboard/dpp/:dppId oldalon a megfelelőségi szekció alatt található egy szimulátor kártya. Ez lehetővé teszi a két leginkább megfelelőség-releváns mező (status és market_countries) módosítását, és a hatás azonnali megtekintését — a meglévő adatok módosítása nélkül. Tipikus folyamat:
- Preview: „Mi történik, ha felveszem FR-t a kínálatba?” → „FR” chip kiválasztása → „Preview EU impact” → a
TEXTILE_AGEC_REQUIREDláthatóvá válik - Fix: Származási lánc kiegészítése (a szimulátoron kívül, a létrehozási vagy tömeges folyamatban)
- Save: A „Save changes” közvetlenül elmenti az állapot/piac listát a
PUT /v1/dpp/:idhíváson keresztül
Közvetlen API-elérés:
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" }'A válasz kibővíti az alapértelmezett eredményt egy preview objektummal:
{ "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"] } }}A changed_fields[] csak azokat a mezőket sorolja fel, amelyek valóban változnának — így például a felhasználói felületen csak a megváltozott chipeket emelheted ki.
Az üres törzs (body) megengedett, és az aktuális megfelelőségi értékelést adja vissza (a jelenlegi állapot újraellenőrzése).
Automatizálás
CI-pipeline
Egy tipikus CI-ellenőrzés:
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-szerver
A mellékelt @qr3/mcp-server többek között egy validate_dpp eszközt is kínál — a mesterséges intelligencia ágensek ezzel a létrehozási hívás előtt ellenőrizhetik, hogy a rendelkezésre álló adatok megfelelnek-e az AGEC-szabályoknak.
Gyakori hibák
| Probléma | Ok | Megoldás |
|---|---|---|
TEXTILE_MICROPLASTICS_CONSISTENCY | Poliészter részarány ≥ 50%, de a flag értéke false | contains_microplastics: true beállítása |
TEXTILE_AGEC_REQUIRED hints.market: "FR" értékkel | FR szerepel a piacon, a lánc hiányos | country_weaving_knitting, country_dyeing_printing, country_assembly beállítása |
TEXTILE_GREENWASHING error-ként | Tiltott kifejezés + FR szerepel a piacon | Kifejezés eltávolítása a product_name mezőből vagy a piac módosítása |
TEXTILE_SVHC_THRESHOLD | SVHC-anyag CAS nélkül | CAS-szám megadása a REACH-listából |
Következő lépések
- Textil-DPP — séma, származási lánc, mikroplasztik figyelmeztető doboz
- Akkumulátor-DPP — kötelező mezők az akkumulátor-útlevélhez
- API-referencia — minden EU-megfelelőségi végpont részletesen