Tikrinti ES atitiktį
Tikrinti ES atitiktį
qr3.app turi integruotą ES validatorių (angl. EU-Validator) skaitmeniniams produkto pasams (DPP). Jis tikrina jūsų DPP pagal susijusius ES reglamentus (ESPR, Loi AGEC) ir pateikia struktūrizuotas problemas (angl. Issues) su svarbumo lygiu (angl. Severity), lauko keliu, pastabomis ir pasirenkamu ESPR-ready ženkleliu.
Yra trys prieigos taškai:
- Serverio pusėje, jau išsaugoti DPP —
GET /v1/dpp/:id/eu-compliance - Tiesioginė peržiūra kūrimo formoje —
POST /v1/dpp/validate - Tiesioginis simuliatorius išsamioje peržiūroje —
POST /v1/dpp/:id/validate-update
Visi trys pateikia tą pačią EuComplianceResult struktūrą (angl. Shape) — taigi vertinimą jums tereikia įgyvendinti tik vieną kartą.
Rezultato struktūra
{ "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⇔ visi ESPR pasirinktiniai (angl. Opt-in) laukai yra užpildyti (žr. Tekstilės DPP)issues[]yra stabiliai surūšiuoti pagal svarbumą (error→warning→info) ir tada pagal kodą
Svarbumo lygiai
| Svarbumas (Severity) | Reikšmė | Pavyzdys |
|---|---|---|
error | Blokuoja ES atitiktį; turėtų būti ištaisyta prieš išleidimą | TEXTILE_AGEC_REQUIRED, jei FR yra rinkoje ir kilmės grandinė yra neišsami |
warning | Rekomendacija; klientas gali išsaugoti, tačiau turėtų imtis veiksmų | TEXTILE_GREENWASHING už FR ribų |
info | Būsenos signalas be poreikio imtis veiksmų | TEXTILE_ESPR_READY — visi ESPR pasirinktiniai laukai užpildyti |
Taisyklių katalogas (tekstilė + baterijos)
Tekstilė (Q3.3.4)
| Kodas | Svarbumo lygis | Sukėlėjas (trigeris) |
|---|---|---|
TEXTILE_AGEC_REQUIRED | error (FR) · warning (kitur) | AGEC grandinė (audimas / dažymas / siuvimas) neišsami, FR yra rinkoje |
TEXTILE_MICROPLASTICS_CONSISTENCY | error | Sintetika ≥ 50 %, bet contains_microplastics !== true |
TEXTILE_SVHC_THRESHOLD | warning | SVHC įrašas be CAS numerio arba koncentracijos |
TEXTILE_GREENWASHING | error (FR) · warning (kitur) | Draudžiamų terminų sąrašo žodis lauke product_name/material |
TEXTILE_ESPR_READY | info | Visi ESPR laukai B7–B15 užpildyti |
Baterijos (4a etapas)
Validatorius tikrina ribines vertes pagal ES baterijų reglamentą 2023/1542 (perdirbto turinio ribos, anglies pėdsako klasės, minimali garantija ir kt.). Išsami informacija pateikiama Baterijų DPP dokumentacijoje.
Tiesioginė peržiūra kūrimo formoje
Kai tik sukuriate DPP valdymo skydelyje (/dashboard/dpp/new), tas pats validatorius veikia be būsenos išsaugojimo (angl. stateless) kiekvieno patvirtinimo ciklo metu — tam nereikia išsaugoti paso. Sekcija eu_compliance atsiranda tiesiai po esamu patvirtinimo skydeliu ir išryškina klaidas bei įspėjimus prieš pateikiant (angl. submit).
Tiesioginė API prieiga:
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 }] } }'Atsakyme yra:
data.valid— sintaksinis teisingumas (Zod)data.errors[]— klasikinės Zod klaidosdata.jsonld_preview— JSON-LD peržiūradata.eu_compliance— ES validatoriaus rezultatas (null, jei Zod patvirtinimas nepavyksta)
Jei eu_compliance.summary.errors > 0, valdymo skydelis sugeneruoja Save-Guard pranešimą tiesiai virš pateikimo mygtuko — išsaugojimas nėra blokuojamas, tačiau prieš spustelėdami matote pasekmes.
Tiesioginis simuliatorius išsamioje peržiūroje
Adresu /dashboard/dpp/:dppId po atitikties sekcija yra simuliatoriaus kortelė. Ji leidžia keisti du svarbiausius atitikties laukus (status ir market_countries) ir iškart matyti poveikį — neliečiant esamų duomenų. Įprasta eiga:
- Peržiūra (Preview): „Kas nutiks, jei įtrauksiu FR į asortimentą?“ → pasirinkite žymą (angl. chip) „FR“ → „Preview EU impact“ → tampa matoma
TEXTILE_AGEC_REQUIRED - Taisymas (Fix): užpildykite kilmės grandinę (ne simuliatoriuje, o kūrimo arba masinio įkėlimo eigoje)
- Išsaugojimas (Save): „Save changes“ išsaugo būsenos / rinkų sąrašą tiesiogiai per
PUT /v1/dpp/:id
Tiesioginė API prieiga:
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" }'Atsakymas papildo standartinį rezultatą preview objektu:
{ "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[] pateikia tik tuos laukus, kurie faktiškai pasikeistų — taip galite, pavyzdžiui, vartotojo sąsajoje (UI) išryškinti tik pakeistas žymas.
Leidžiamas tuščias turinys (angl. body), kuris pateikia esamą atitikties įvertinimą (iš naujo patikrina esamą būseną).
Automatisierung
CI konvejeris (Pipeline)
Tipinė CI patikra:
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
Kartu pateikiamas @qr3/mcp-server siūlo, be kita ko, validate_dpp įrankį — dirbtinio intelekto (DI) agentai gali jį naudoti prieš kūrimo iškvietimą, kad patikrintų, ar pateikti duomenys atitinka AGEC taisykles.
Dažnos klaidos
| Problema (Issue) | Priežastis | Sprendimas (Fix) |
|---|---|---|
TEXTILE_MICROPLASTICS_CONSISTENCY | Poliesterio dalis ≥ 50 %, tačiau žyma yra false | nustatyti contains_microplastics: true |
TEXTILE_AGEC_REQUIRED su hints.market: "FR" | FR yra rinkoje, grandinė neišsami | nustatyti country_weaving_knitting, country_dyeing_printing, country_assembly |
TEXTILE_GREENWASHING kaip error | Draudžiamas terminas + FR rinkoje | pašalinti terminą iš product_name arba pakoreguoti rinką |
TEXTILE_SVHC_THRESHOLD | SVHC medžiaga be CAS | įrašyti CAS numerį iš REACH sąrašo |
Kiti žingsniai
- Tekstilės DPP — schema, kilmės grandinė, mikroplastiko įspėjimo laukelis
- Baterijų DPP — privalomi baterijos paso laukai
- API nuorodos — visi ES atitikties galiniai taškai (Endpoints) išsamiai