Skip to content

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:

  1. Serverio pusėje, jau išsaugoti DPPGET /v1/dpp/:id/eu-compliance
  2. Tiesioginė peržiūra kūrimo formojePOST /v1/dpp/validate
  3. Tiesioginis simuliatorius išsamioje peržiūrojePOST /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: truesummary.errors === 0
  • espr_ready: true ⇔ visi ESPR pasirinktiniai (angl. Opt-in) laukai yra užpildyti (žr. Tekstilės DPP)
  • issues[] yra stabiliai surūšiuoti pagal svarbumą (errorwarninginfo) ir tada pagal kodą

Svarbumo lygiai

Svarbumas (Severity)ReikšmėPavyzdys
errorBlokuoja 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
warningRekomendacija; klientas gali išsaugoti, tačiau turėtų imtis veiksmųTEXTILE_GREENWASHING už FR ribų
infoBūsenos signalas be poreikio imtis veiksmųTEXTILE_ESPR_READY — visi ESPR pasirinktiniai laukai užpildyti

Taisyklių katalogas (tekstilė + baterijos)

Tekstilė (Q3.3.4)

KodasSvarbumo lygisSukėlėjas (trigeris)
TEXTILE_AGEC_REQUIREDerror (FR) · warning (kitur)AGEC grandinė (audimas / dažymas / siuvimas) neišsami, FR yra rinkoje
TEXTILE_MICROPLASTICS_CONSISTENCYerrorSintetika ≥ 50 %, bet contains_microplastics !== true
TEXTILE_SVHC_THRESHOLDwarningSVHC įrašas be CAS numerio arba koncentracijos
TEXTILE_GREENWASHINGerror (FR) · warning (kitur)Draudžiamų terminų sąrašo žodis lauke product_name/material
TEXTILE_ESPR_READYinfoVisi 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:

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 }] }
}'

Atsakyme yra:

  • data.valid — sintaksinis teisingumas (Zod)
  • data.errors[] — klasikinės Zod klaidos
  • data.jsonld_preview — JSON-LD peržiūra
  • data.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:

  1. Peržiūra (Preview): „Kas nutiks, jei įtrauksiu FR į asortimentą?“ → pasirinkite žymą (angl. chip) „FR“ → „Preview EU impact“ → tampa matoma TEXTILE_AGEC_REQUIRED
  2. Taisymas (Fix): užpildykite kilmės grandinę (ne simuliatoriuje, o kūrimo arba masinio įkėlimo eigoje)
  3. Išsaugojimas (Save): „Save changes“ išsaugo būsenos / rinkų sąrašą tiesiogiai per PUT /v1/dpp/:id

Tiesioginė API prieiga:

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" }'

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:

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

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žastisSprendimas (Fix)
TEXTILE_MICROPLASTICS_CONSISTENCYPoliesterio dalis ≥ 50 %, tačiau žyma yra falsenustatyti contains_microplastics: true
TEXTILE_AGEC_REQUIRED su hints.market: "FR"FR yra rinkoje, grandinė neišsaminustatyti country_weaving_knitting, country_dyeing_printing, country_assembly
TEXTILE_GREENWASHING kaip errorDraudžiamas terminas + FR rinkojepašalinti terminą iš product_name arba pakoreguoti rinką
TEXTILE_SVHC_THRESHOLDSVHC 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