Skip to content

Provjera EU sukladnosti

Provjera EU sukladnosti

qr3.app sadrži integrirani EU validator za Digital Product Passports. On provjerava tvoje DPP-ove u odnosu na relevantne EU propise (ESPR, Loi AGEC) i pruža strukturirane probleme (Issues) s razinom ozbiljnosti (Severity), putanjom polja, napomenama i neobaveznom značkom ESPR-ready.

Postoje tri pristupne točke:

  1. Na strani poslužitelja, već spremljeni DPP-oviGET /v1/dpp/:id/eu-compliance
  2. Pregled uživo u obrascu za izraduPOST /v1/dpp/validate
  3. Simulator uživo u detaljimaPOST /v1/dpp/:id/validate-update

Sve tri točke vraćaju isti oblik EuComplianceResult — tako da evaluaciju moraš implementirati samo jednom.

Oblik rezultata

{
"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 ⇔ sva ESPR-Opt-in polja su postavljena (vidi Tekstilni DPP)
  • issues[] je stabilno sortiran prema razini ozbiljnosti (errorwarninginfo), a zatim prema kodu

Razine ozbiljnosti

SeverityZnačenjePrimjer
errorBlokira EU sukladnost; trebalo bi ispraviti prije objaveTEXTILE_AGEC_REQUIRED ako je FR na tržištu, a lanac podrijetla je nepotpun
warningPreporuka; korisnik može spremiti, ali bi trebao reagiratiTEXTILE_GREENWASHING izvan FR
infoStatusni signal bez potrebe za djelovanjemTEXTILE_ESPR_READY — sva ESPR-Opt-in polja su potpuna

Katalog pravila (Tekstil + Baterija)

Tekstil (Q3.3.4)

CodeRazina ozbiljnostiOkidač
TEXTILE_AGEC_REQUIREDerror (FR) · warning (inače)AGEC lanac (tkanje/bojenje/konfekcija) nepotpun, FR na tržištu
TEXTILE_MICROPLASTICS_CONSISTENCYerrorSintetika ≥ 50 %, ali contains_microplastics !== true
TEXTILE_SVHC_THRESHOLDwarningSVHC unos bez CAS broja ili koncentracije
TEXTILE_GREENWASHINGerror (FR) · warning (inače)Pojam s popisa zabranjenih riječi u product_name/material
TEXTILE_ESPR_READYinfoSva ESPR polja B7–B15 potpuna

Baterija (Faza 4a)

Validator provjerava granične vrijednosti iz EU Uredbe o baterijama 2023/1542 (pragovi za reciklirani sadržaj, klase ugljičnog otiska, minimalno jamstvo itd.). Detalji u dokumentaciji za baterijski DPP.

Pregled uživo u obrascu za izradu

Čim izradiš DPP na upravljačkoj ploči (/dashboard/dpp/new), isti validator radi bez stanja (stateless) pri svakom krugu provjere (Validate-Roundtrip) — bez potrebe za spremanjem putovnice. Sekcija eu_compliance pojavljuje se izravno ispod postojećeg panela za validaciju i ističe pogreške i upozorenja prije slanja (Submit).

Izravan pristup API-ju:

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

Odgovor sadrži:

  • data.valid — sintaktička valjanost (Zod)
  • data.errors[] — klasične Zod pogreške
  • data.jsonld_preview — JSON-LD pregled
  • data.eu_compliance — rezultat EU validatora (null ako Zod validacija ne uspije)

Ako je eu_compliance.summary.errors > 0, upravljačka ploča prikazuje Save-Guard natpis neposredno iznad gumba za slanje — spremanje nije blokirano, ali vidiš posljedice prije klika.

Simulator uživo u detaljima

Na /dashboard/dpp/:dppId, ispod sekcije za sukladnost, nalazi se kartica simulatora. Ona omogućuje promjenu dvaju polja koja su najvažnija za sukladnost (status i market_countries) te trenutačni prikaz učinka — bez mijenjanja postojećih podataka. Tipičan tijek rada:

  1. Pregled: “Što se događa ako uvrstim FR u asortiman?” → odaberi oznaku “FR” → “Preview EU impact” → TEXTILE_AGEC_REQUIRED postaje vidljiv
  2. Ispravak: upotpuni lanac podrijetla (izvan simulatora u tijeku za izradu ili masovni unos)
  3. Spremanje: “Save changes” sprema status/popis tržišta izravno putem PUT /v1/dpp/:id

Izravan pristup API-ju:

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

Odgovor proširuje standardni rezultat objektom preview:

{
"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[] navodi samo polja koja bi se stvarno promijenila — tako, na primjer, u korisničkom sučelju možeš istaknuti samo izmijenjene oznake.

Dopušteno je poslati prazno tijelo (body), što vraća trenutačnu procjenu sukladnosti (ponovna provjera stvarnog stanja).

Automatizacija

CI cjevovod

Tipična CI provjera:

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 poslužitelj

Isporučeni @qr3/mcp-server nudi, između ostalog, alat validate_dpp — AI agenti ga mogu koristiti prije poziva za izradu kako bi provjerili jesu li dostupni podaci u skladu s AGEC pravilima.

Česte pogreške

Problem (Issue)UzrokRješenje (Fix)
TEXTILE_MICROPLASTICS_CONSISTENCYUdio poliestera ≥ 50 %, ali je zastavica falsePostavi contains_microplastics: true
TEXTILE_AGEC_REQUIRED s hints.market: "FR"FR na tržištu, lanac nepotpunPostavi country_weaving_knitting, country_dyeing_printing, country_assembly
TEXTILE_GREENWASHING kao errorZabranjeni pojam + FR na tržištuUkloni pojam iz product_name ili prilagodi tržište
TEXTILE_SVHC_THRESHOLDSVHC tvar bez CAS brojaUnesi CAS broj s REACH popisa

Sljedeći koraci