Skip to content

Tarkista EU-vaatimustenmukaisuus

Tarkista EU-vaatimustenmukaisuus

qr3.app sisältää integroidun EU-validaattorin digitaalisille tuotepasseille (Digital Product Passports). Se tarkistaa DPP-passisi asiaankuuluvia EU-säädöksiä (ESPR, Loi AGEC) vastaan ja tuottaa jäsenneltyjä huomioita (Issues), joissa on vakavuustaso (Severity), kenttäpolku, vihjeitä sekä valinnainen ESPR-ready-merkki.

Käyttöpisteitä on kolme:

  1. Palvelinpuoli, jo tallennetut DPP-passitGET /v1/dpp/:id/eu-compliance
  2. Live-esikatselu luontilomakkeessaPOST /v1/dpp/validate
  3. Live-simulaattori tiedoissaPOST /v1/dpp/:id/validate-update

Kaikki kolme palauttavat saman EuComplianceResult-rakenteen — sinun tarvitsee siis toteuttaa tulkinta vain kerran.

Tuloksen rakenne

{
"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 ⇔ kaikki ESPR-opt-in-kentät on asetettu (katso Tekstiili-DPP)
  • issues[] on lajiteltu vakaasti vakavuustason (errorwarninginfo) ja sen jälkeen koodin mukaan

Vakavuustasot

SeverityMerkitysEsimerkki
errorEstää EU-vaatimustenmukaisuuden; tulisi korjata ennen julkaisuaTEXTILE_AGEC_REQUIRED, jos FR on markkina-alueena ja alkuperäketju on puutteellinen
warningSuositus; asiakas voi tallentaa, mutta toimenpiteitä suositellaanTEXTILE_GREENWASHING Ranskan (FR) ulkopuolella
infoTilasignaali ilman toimenpidevaatimuksiaTEXTILE_ESPR_READY — kaikki ESPR-opt-in-kentät täytetty

Sääntöluettelo (Tekstiilit + Akut)

Tekstiilit (Q3.3.4)

KoodiVakavuustasoLaukaisija
TEXTILE_AGEC_REQUIREDerror (FR) · warning (muutoin)AGEC-ketju (kudonta/värjäys/kokoonpano) puutteellinen, FR markkina-alueena
TEXTILE_MICROPLASTICS_CONSISTENCYerrorSynteettinen materiaali ≥ 50 %, mutta contains_microplastics !== true
TEXTILE_SVHC_THRESHOLDwarningSVHC-merkintä ilman CAS-numeroa tai pitoisuutta
TEXTILE_GREENWASHINGerror (FR) · warning (muutoin)Kiellettyjen termien luettelossa oleva sana kentässä product_name/material
TEXTILE_ESPR_READYinfoKaikki ESPR-kentät B7–B15 täytetty

Akut (Vaihe 4a)

Validaattori tarkistaa raja-arvot EU:n akkuasetuksesta 2023/1542 (kierrätetyn sisällön kynnysarvot, hiilijalanjälkiluokat, vähimmäistakuu jne.). Lisätietoja on Akku-DPP-dokumentaatiossa.

Live-esikatselu luontilomakkeessa

Heti kun luot DPP-passin hallintapaneelissa (/dashboard/dpp/new), sama validaattori suoritetaan tilattomasti jokaisen validointikierroksen yhteydessä — ilman, että passia tarvitsee tallentaa. eu_compliance-osio ilmestyy suoraan olemassa olevan validointipaneelin alapuolelle ja korostaa virheet ja varoitukset ennen lähettämistä.

Suora API-yhteys:

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

Vastaus sisältää:

  • data.valid — syntaktinen kelpoisuus (Zod)
  • data.errors[] — perinteiset Zod-virheet
  • data.jsonld_preview — JSON-LD-esikatselu
  • data.eu_compliance — EU-validaattorin tulos (null, jos Zod-validointi epäonnistuu)

Jos eu_compliance.summary.errors > 0, hallintapaneeli näyttää Save-Guard-bannerin suoraan lähetyspainikkeen yläpuolella — tallennusta ei estetä, mutta näet seuraukset ennen klikkaamista.

Live-simulaattori tiedoissa

Sivulla /dashboard/dpp/:dppId on vaatimustenmukaisuusosion alapuolella simulaattorikortti. Sen avulla voit muuttaa kahta vaatimustenmukaisuuden kannalta tärkeintä kenttää (status ja market_countries) ja nähdä vaikutukset välittömästi — koskematta olemassa oleviin tietoihin. Tyypillinen kulku:

  1. Esikatselu: “Mitä tapahtuu, jos otan Ranskan (FR) valikoimaan?” → Valitse valintamerkki “FR” → “Preview EU impact” → TEXTILE_AGEC_REQUIRED tulee näkyviin
  2. Korjaus: Täydennä alkuperäketju (simulaattorin ulkopuolella luonti- tai massatoimintovaiheessa)
  3. Tallennus: “Save changes” tallentaa tilan/markkina-alueluettelon suoraan osoitteeseen PUT /v1/dpp/:id

Suora API-yhteys:

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

Vastaus laajentaa vakiotulosta preview-objektilla:

{
"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[] luettelee vain kentät, jotka todella muuttuisivat — näin voit esimerkiksi käyttöliittymässä korostaa vain muuttuneet valinnat.

Tyhjä runko on sallittu ja se palauttaa nykyisen vaatimustenmukaisuusarvioinnin (nykytilan uudelleentarkistus).

Automaatio

CI-putki

Tyypillinen CI-tarkistus:

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-palvelin

Mukana toimitettava @qr3/mcp-server tarjoaa muun muassa validate_dpp-työkalun — tekoälyagentit voivat käyttää sitä ennen luontikutsua tarkistaakseen, täyttävätkö olemassa olevat tiedot AGEC-säännöt.

Yleiset virheet

Huomio (Issue)SyyKorjaus
TEXTILE_MICROPLASTICS_CONSISTENCYPolyesteriosuus ≥ 50 %, mutta lippu on falseAseta contains_microplastics: true
TEXTILE_AGEC_REQUIRED arvolla hints.market: "FR"FR markkina-alueena, ketju puutteellinenAseta country_weaving_knitting, country_dyeing_printing, country_assembly
TEXTILE_GREENWASHING tilassa errorKielletty termi + FR markkina-alueenaPoista termi kentästä product_name tai muuta markkina-aluetta
TEXTILE_SVHC_THRESHOLDSVHC-aine ilman CAS-numeroaSyötä CAS-numero REACH-luettelosta

Seuraavat vaiheet

  • Tekstiili-DPP — skeema, alkuperäketju, mikromuovivaroituslaatikko
  • Akku-DPP — akkupassin pakolliset kentät
  • API-viite — kaikki EU-vaatimustenmukaisuuden päätepisteet yksityiskohtaisesti