Skip to content

Preverjanje skladnosti z EU

Preverjanje skladnosti z EU

qr3.app vsebuje integriran EU-validator za digitalne potne liste izdelkov (Digital Product Passports - DPP). Vaše DPP-je preveri glede na ustrezne predpise EU (ESPR, Loi AGEC) in vrne strukturirane težave (issues) s stopnjo resnosti (severity), potjo polja, namigi in neobvezno značko ESPR-ready.

Na voljo so tri vstopne točke:

  1. Na strani strežnika, že shranjeni DPP-jiGET /v1/dpp/:id/eu-compliance
  2. Predogled v živo v obrazcu za ustvarjanjePOST /v1/dpp/validate
  3. Simulator v živo podrobnoPOST /v1/dpp/:id/validate-update

Vse tri vstopne točke vračajo enako strukturo EuComplianceResult — zato morate analizo implementirati le enkrat.

Struktura 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 ⇔ nastavljena so vsa izbirna polja ESPR (glejte Tekstilni DPP)
  • issues[] je stabilno razvrščen po stopnji resnosti (errorwarninginfo) in nato po kodi

Stopnje resnosti

Stopnja resnostiPomenPrimer
errorBlokira skladnost z EU; moralo bi biti odpravljeno pred izdajoTEXTILE_AGEC_REQUIRED, če je FR na trgu in je veriga porekla nepopolna
warningPriporočilo; stranka lahko shrani, vendar bi morala ukrepatiTEXTILE_GREENWASHING izven FR
infoStatusni signal brez potrebe po ukrepanjuTEXTILE_ESPR_READY — vsa izbirna polja ESPR so izpolnjena

Katalog pravil (tekstil + baterije)

Tekstil (Q3.3.4)

KodaStopnja resnostiSprožilec
TEXTILE_AGEC_REQUIREDerror (FR) · warning (sicer)Nepopolna veriga AGEC (tkanje/barvanje/konfekcija), FR je na trgu
TEXTILE_MICROPLASTICS_CONSISTENCYerrorSintetika ≥ 50 %, vendar contains_microplastics !== true
TEXTILE_SVHC_THRESHOLDwarningVnos SVHC brez številke CAS ali koncentracije
TEXTILE_GREENWASHINGerror (FR) · warning (sicer)Izraz s seznama prepovedanih izrazov v product_name/material
TEXTILE_ESPR_READYinfoVsa polja ESPR B7–B15 so izpolnjena

Baterije (faza 4a)

Validator preverja mejne vrednosti iz Uredbe EU o baterijah 2023/1542 (pragi reciklirane vsebnosti, razredi ogljičnega odtisa, minimalna garancija itd.). Podrobnosti najdete v dokumentaciji za baterijski DPP.

Predogled v živo v obrazcu za ustvarjanje

Takoj ko ustvarite DPP na nadzorni plošči (/dashboard/dpp/new), se isti validator izvaja brezstanjno (stateless) ob vsakem preverjanju (validate roundtrip) — ne da bi bilo treba potni list shraniti. Razdelek eu_compliance se pojavi neposredno pod obstoječo ploščo za preverjanje (validation panel) in izpostavi napake ter opozorila pred oddajo (submit).

Neposreden dostop do API-ja:

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 vsebuje:

  • data.valid — sintaktična veljavnost (Zod)
  • data.errors[] — klasične napake Zod
  • data.jsonld_preview — predogled JSON-LD
  • data.eu_compliance — rezultat EU-validatorja (null, če preverjanje Zod ne uspe)

Če je eu_compliance.summary.errors > 0, nadzorna plošča izriše pasico Save-Guard neposredno nad gumbom za oddajo — shranjevanje ni blokirano, vendar pred klikom vidite posledice.

Simulator v živo podrobno

Na /dashboard/dpp/:dppId je pod razdelkom za skladnost (compliance section) na voljo kartica simulatorja. Omogoča spreminjanje dveh najbolj pomembnih polj za skladnost (status in market_countries) ter takojšen prikaz učinka — brez spreminjanja obstoječih podatkov. Tipičen potek dela (flow):

  1. Predogled: “Kaj se zgodi, če v ponudbo vključim FR?” → izberite ploščico (chip) “FR” → “Preview EU impact” → prikaže se TEXTILE_AGEC_REQUIRED
  2. Popravek: Dopolnite verigo porekla (izven simulatorja v poteku za ustvarjanje ali masovni uvoz)
  3. Shranjevanje: “Save changes” shrani status/seznam trgov neposredno prek PUT /v1/dpp/:id

Neposreden dostop do API-ja:

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 razširi standardni rezultat z 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[] navaja samo polja, ki bi se dejansko spremenila — tako lahko npr. v uporabniškem vmesniku (UI) poudarite le spremenjene ploščice (chips).

Dovoljeno je prazno telo (body), ki vrne trenutno oceno skladnosti (ponovno preveri dejansko stanje).

Avtomatizacija

CI-pipeline

Tipičen preizkus CI:

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

Strežnik MCP

Priloženi @qr3/mcp-server med drugim ponuja orodje validate_dpp — agenti umetne inteligence (KI) lahko z njim pred klicem za ustvarjanje preverijo, ali razpoložljivi podatki ustrezajo pravilom AGEC.

Pogoste napake

Težava (Issue)VzrokPopravek
TEXTILE_MICROPLASTICS_CONSISTENCYDelež poliestra ≥ 50 %, vendar je zastavica falseNastavite contains_microplastics: true
TEXTILE_AGEC_REQUIRED z hints.market: "FR"FR je na trgu, veriga je nepopolnaNastavite country_weaving_knitting, country_dyeing_printing, country_assembly
TEXTILE_GREENWASHING kot errorPrepovedan izraz + FR na trguOdstranite izraz iz product_name ali prilagodite trg
TEXTILE_SVHC_THRESHOLDSnov SVHC brez CASVnesite številko CAS s seznama REACH

Naslednji koraki

  • Tekstilni DPP — shema, veriga porekla, opozorilno polje za mikroplastiko
  • Baterijski DPP — obvezna polja za baterijski potni list
  • Referenca API — podrobnosti o vseh končnih točkah za skladnost z EU