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 (digitális termékútlevelekhez). 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 severity-szinttel, 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 a részletes nézetben —
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[]tömb stabilan rendezett severity (error→warning→info), majd kód szerint
Súlyossági szintek (Severity)
| Severity | Jelentés | Példa |
|---|---|---|
error | Blokkolja az EU-megfelelőséget; a kiadás (release) előtt javítani kell | TEXTILE_AGEC_REQUIRED, ha FR (Franciaország) a célpiac és az ellátási lánc hiányos |
warning | Javaslat; az ügyfél menthet, de érdemes intézkednie | 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 a célpiacon |
TEXTILE_MICROPLASTICS_CONSISTENCY | error | Szintetikus anyag ≥ 50%, de a contains_microplastics !== true |
TEXTILE_SVHC_THRESHOLD | warning | SVHC-bejegyzés CAS-szám vagy koncentráció 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 (4a. fázis)
A validátor ellenőrzi a 2023/1542 EU akkumulátor-rendelet határértékeit (újrahasznosított tartalom küszöbértékei, szénlábnyom-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 (stateless) minden validációs körnél — 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, és kiemeli a hibákat és figyelmeztetéseket a beküldés (submit) előtt.
Közvetlen API-hozzáférés:
curl -X POST https://qr3.app/v1/dpp/validate \ -H "Authorization: Bearer $API_KEY" \ -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 (mentésvédő) bannert jelenít meg közvetlenül a beküldés 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 (compliance) 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ások azonnali megtekintését — a meglévő adatok módosítása nélkül. Jellemző folyamat (flow):
- Előnézet (Preview): „Mi történik, ha felveszem FR-t a kínálatba?” → „FR” chip kiválasztása → „Preview EU impact” → láthatóvá válik a
TEXTILE_AGEC_REQUIRED - Javítás (Fix): Az ellátási lánc kiegészítése (a szimulátoron kívül, a létrehozási vagy tömeges folyamatban)
- Mentés (Save): A „Save changes” gombbal a státusz/piac lista közvetlenül mentésre kerül a
PUT /v1/dpp/:idhíváson keresztül
Közvetlen API-hozzáférés:
curl -X POST https://qr3.app/v1/dpp/$DPP_ID/validate-update \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "market_countries": ["DE", "FR"], "status": "live" }'A válasz a standard eredményt egy preview objektummal egészíti ki:
{ "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 (UI) csak a módosult chipeket emelheted ki.
Egy üres body is megengedett, és a jelenlegi megfelelőségi értékelést adja vissza (az aktuális állapot újraellenőrzése).
Automatizálás
CI-folyamat (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")
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 — az AI-ágensek ezzel a létrehozási (create) hívás előtt ellenőrizhetik, hogy a rendelkezésre álló adatok megfelelnek-e az AGEC-szabályoknak.
Gyakori hibák
| Probléma (Issue) | Ok | Megoldás (Fix) |
|---|---|---|
TEXTILE_MICROPLASTICS_CONSISTENCY | Poliészter arány ≥ 50%, de a flag értéke false | Állítsd be: contains_microplastics: true |
TEXTILE_AGEC_REQUIRED hints.market: "FR" értékkel | FR a célpiacon, a lánc hiányos | Állítsd be: country_weaving_knitting, country_dyeing_printing, country_assembly |
TEXTILE_GREENWASHING mint error | Tiltott kifejezés + FR a célpiacon | Távolítsd el a kifejezést a product_name mezőből, vagy módosítsd a piacot |
TEXTILE_SVHC_THRESHOLD | SVHC-anyag CAS-szám nélkül | Add meg a CAS-számot a REACH-listából |
Következő lépések
- Textil DPP — séma, ellátá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