NEPAR Publisher
Specifikacija CSV/XML digitalnog cjenika: polja, naziv datoteke, primjeri
Odluka NN 101/2026 propisuje podatke koje cjenik mora sadržavati, ali ne nazive stupaca, separator ni kodiranje. Ovdje je točno kako izgleda NEPAR CSV i XML, kako se zove datoteka i što provjeravamo svaki dan.
Što propisuje Odluka
- Format: važeći cjenik na mrežnoj stranici u
.csvili.xmlobliku, uz mogućnost automatiziranog dohvata. - Usluge: naziv usluge, maloprodajna cijena, podatak o posebnom obliku prodaje (i njegov naziv) te sidrena odnosno dodatna cijena.
- Proizvodi: među ostalim naziv, šifra, marka, maloprodajna i sidrena cijena, posebni oblik prodaje, barkod i dostupnost.
- Naziv datoteke: oblik prodajnog odnosno uslužnog objekta, adresa, oznaka objekta, broj pohrane i vremenska oznaka.
- Arhiva: prethodno objavljeni cjenici dostupni su najmanje 30 dana. Posebna stranica ili adresa arhive nije propisana.
- Struktura: nazivi stupaca, XML elemenata i separator nisu propisani; trgovac s više objekata koristi jedinstvenu strukturu unutar lanca.
- Rok primjene: 17. studenoga 2026. Referentni datum sidrene cijene je 10. rujna 2026. (za ranije obuhvaćene skupine proizvoda 2. svibnja 2025.).
Službeno pojašnjenje Ministarstva
Za proizvod ili uslugu uvedenu nakon 10. rujna 2026. sidrena (dodatna) cijena je cijena s datuma prvog uvrštenja u prodaju, uz jasno naveden taj datum.
NEPAR preporuka
Stupci u nastavku su NEPAR preporučena shema, usklađena s podacima iz Odluke i HOK predloškom. Objava oba formata (CSV i XML), stabilna adresa poput /cjenik.csv i javna stranica arhive korisne su preporuke, ali nisu zakonska obveza.
Ovo je sažetak, ne zamjena za službeni tekst. Nacrt — nije na snazi: dva nacrta pravilnika su na e-Savjetovanju do 13.11.2026.; NEPAR će profil provjere uskladiti s konačnim tekstom.
NEPAR CSV: stupci
Kodiranje UTF-8 (s BOM-om), separator zarez, kraj retka CRLF, decimalna točka. Pri uvozu prepoznajemo i točku-zarez te uobičajena zaglavlja (uključujući HOK predložak za usluge). Provjera web stranice prepoznaje i drukčije nazvana polja istog značenja, npr. service_name ili retail_price, jer Odluka ne propisuje nazive stupaca.
| Stupac | Validator traži | Polje iz Odluke | Primjer | Napomena |
|---|---|---|---|---|
Grupa | Ne | Grupiranje stavki | Šišanje | Kategorija ili skupina usluge/proizvoda. |
Naziv | Da | Naziv usluge / proizvoda | Muško šišanje | Obavezno polje. |
Vrsta | Da (inače ručni pregled) | Razlikovanje proizvoda i usluge | Usluga | Određuje koja se pravila primjenjuju (usluga ili proizvod). |
Interna šifra | Ne (preporučeno) | Šifra (proizvodi) | FR-001 | Vaša šifra stavke. |
Cijena | Da | Maloprodajna cijena | 15.00 | Dvije decimale, točka kao decimalni separator, EUR. |
Akcijska cijena | Ne | Cijena u posebnom obliku prodaje | 12.00 | Prazno ako nema akcije. |
Poseban oblik prodaje | Da | Podatak o posebnom obliku prodaje | NE | Izričito potvrđeno DA ili NE; prazno ostaje nepotvrđeno. |
Naziv posebnog oblika prodaje | Ako je DA | Naziv posebnog oblika prodaje | Jesenska akcija | Obavezno kad je oblik prodaje DA. |
Sidrena cijena | Da | Dodatna (sidrena) cijena | 15.00 | Referentna cijena iz propisanog datuma; može biti jednaka aktualnoj. |
Jedinica | Ne | Jedinica mjere (proizvodi) | kom | Za proizvode gdje se primjenjuje. |
Primjer CSV-a za usluge
Grupa,Naziv,Vrsta,Interna šifra,Cijena,Akcijska cijena,Poseban oblik prodaje,Naziv posebnog oblika prodaje,Sidrena cijena,Jedinica,Datum referentne cijene,Najniža cijena u 30 dana,Nova stavka,Razlog izuzeća cijene po jedinici
Šišanje,Muško šišanje,Usluga,FR-001,15.00,,NE,,15.00,,,,,
Šišanje,Žensko šišanje,Usluga,FR-002,21.00,,NE,,18.00,,,,,
Bojanje,Bojanje kose,Usluga,FR-010,40.00,,DA,Jesenska akcija,45.00,,,45.00,,
Dodatni stupci za cjenik proizvoda
Čim cjenik sadrži barem jednu stavku koja nije usluga, CSV i XML dobivaju prošireni oblik s ovim stupcima. Cjenik koji sadrži samo usluge ostaje u kompaktnom obliku. Odluka traži jedinstvenu strukturu, pa se oblik odabire za cijeli cjenik.
| Stupac | Validator traži | Polje iz Odluke | Primjer | Napomena |
|---|---|---|---|---|
Marka | Da (može „bez marke”) | Marka | Primjer mljekara | Upišite „bez marke” ako je proizvod nema. |
Barkod | Da; neispravna kontrolna znamenka daje upozorenje | Barkod robe | 4006381333931 | Nedostajući barkod traži dopunu. Provjeravamo i kontrolnu znamenku uobičajenih GTIN oznaka. |
Cijena za jedinicu mjere | Da gdje je primjenjivo; inače izričito obrazloženje | Cijena za jedinicu mjere (gdje je primjenjivo) | 1.98 | Uz stupac Jedinica (primjerice kg ili l); dvije prazne vrijednosti ne potvrđuju izuzeće. |
Dostupnost | Da | Dostupno / nedostupno | dostupno | Vrijednosti: dostupno ili nedostupno. |
Za proizvode su uz to obavezni i šifra (Interna šifra) te sidrena cijena. Nedostajuća šifra, marka, dostupnost ili sidrena cijena zaustavljaju objavu dok se ne dopune.
Referentni datum i povijest cijena
NEPAR dodaje stupce Datum referentne cijene, Najniža cijena u 30 dana, Nova stavka i Razlog izuzeća cijene po jedinici kada je unesen barem jedan od tih podataka. U XML-u su to anchorReferenceDate, lowest30DayPrice, isNewSinceReferenceDate i unitPricingExemption. To su proširenja NEPAR formata za čuvanje korisnikove evidencije; Odluka ne određuje ova imena stupaca.
Za proizvode korisnik bira primjenjivi referentni datum: 2. svibnja 2025. za ranije obuhvaćene proizvode ili 10. rujna 2026. Za novu stavku unesite datum prvog uvrštenja i cijenu s tog datuma; stupac Nova stavka je neobavezan NEPAR dodatak. Za usluge bez navedenog datuma primjenjuje se 10. rujna 2026. Sustav ne može potvrditi točnost povijesne evidencije. Datum unesite kao GGGG-MM-DD.
Javni prikaz akcije traži zasebnu prethodnu najnižu cijenu iz evidencije; sidrena cijena nije zamjena. Posebni zakonski režimi i izuzeća zahtijevaju dodatnu provjeru.
Primjer CSV-a za proizvode
Grupa,Naziv,Vrsta,Interna šifra,Cijena,Akcijska cijena,Poseban oblik prodaje,Naziv posebnog oblika prodaje,Sidrena cijena,Jedinica,Marka,Barkod,Cijena za jedinicu mjere,Dostupnost,Datum referentne cijene,Najniža cijena u 30 dana,Nova stavka,Razlog izuzeća cijene po jedinici
Mliječni proizvodi,"Mlijeko 2,8% mm, 1 l",Proizvod,MLI-001,1.19,,NE,,1.09,l,Primjer mljekara,4006381333931,1.19,dostupno,2025-05-02,,,
Pekarski proizvodi,"Kruh bijeli, 500 g",Proizvod,PEK-014,0.99,,NE,,0.95,kg,bez marke,96385074,1.98,nedostupno,2025-05-02,,,
Pića,"Sok od jabuke, 1 l",Proizvod,PIC-203,1.79,1.49,DA,Jesenska akcija,1.79,l,Primjer sokovi,4012345678901,1.79,dostupno,2025-05-02,1.79,,
NEPAR XML: elementi
| Element | Značenje | Primjer |
|---|---|---|
priceList / business / name | Naziv poslovnog subjekta | Primjer frizerski salon |
priceList / source, updatedAt | Izvor podataka i vrijeme objave | nepar, 2026-11-17T05:30:00.000Z |
item / category | Grupa | Šišanje |
item / name | Naziv usluge ili proizvoda | Muško šišanje |
item / type | Vrsta (usluga ili proizvod) | Usluga |
item / price (currency="EUR") | Maloprodajna cijena | 15.00 |
item / salePrice (currency="EUR") | Cijena u posebnom obliku prodaje (ako postoji) | 12.00 |
item / specialSaleApplied | Je li primijenjen poseban oblik prodaje | true |
item / specialSaleName | Naziv posebnog oblika prodaje | Jesenska akcija |
item / anchorPrice (currency="EUR") | Dodatna (sidrena) cijena | 15.00 |
Dodatni elementi za cjenik proizvoda
| Element | Značenje | Primjer |
|---|---|---|
item / externalId | Šifra proizvoda | MLI-001 |
item / brand | Marka | Primjer mljekara |
item / barcode | Barkod robe | 4006381333931 |
item / unit | Jedinica mjere | l |
item / unitPrice (currency="EUR") | Cijena za jedinicu mjere | 1.19 |
item / availability | Dostupno ili nedostupno | dostupno |
Isto vrijedi i za XML: cjenik koji sadrži proizvode dobiva ove elemente, a čisti cjenik usluga ostaje kompaktan.
Primjer XML-a za usluge
<?xml version="1.0" encoding="UTF-8"?>
<priceList>
<business>
<name>Primjer frizerski salon</name>
</business>
<source>nepar</source>
<updatedAt>2026-11-17T05:30:00.000Z</updatedAt>
<items>
<item>
<category>Šišanje</category>
<name>Muško šišanje</name>
<type>Usluga</type>
<price currency="EUR">15.00</price>
<specialSaleApplied>false</specialSaleApplied>
<specialSaleName></specialSaleName>
<anchorPrice currency="EUR">15.00</anchorPrice>
</item>
<item>
<category>Šišanje</category>
<name>Žensko šišanje</name>
<type>Usluga</type>
<price currency="EUR">21.00</price>
<specialSaleApplied>false</specialSaleApplied>
<specialSaleName></specialSaleName>
<anchorPrice currency="EUR">18.00</anchorPrice>
</item>
<item>
<category>Bojanje</category>
<name>Bojanje kose</name>
<type>Usluga</type>
<price currency="EUR">40.00</price>
<specialSaleApplied>true</specialSaleApplied>
<specialSaleName>Jesenska akcija</specialSaleName>
<anchorPrice currency="EUR">45.00</anchorPrice>
<lowest30DayPrice>45.00</lowest30DayPrice>
</item>
</items>
</priceList>
Naziv datoteke
Naziv se generira automatski iz podataka o objektu i broja objave, malim slovima bez dijakritika:
<oblik-objekta>_<adresa>_<oznaka-objekta>_<broj-objave>_<GGGGMMDD-HHMMSS>.csvPrimjer: usluzni-objekt_ulica-1_p-01_8_20261117-064500.csv. Stabilni URL (/cjenik.csv) uvijek poslužuje trenutačnu objavu, a naziv datoteke šalje u zaglavlju odgovora; prethodne objave ostaju na vlastitim URL-ovima u arhivi.
Što NEPAR podržava: usluge i proizvodi
| Vrsta cjenika | Podrška | Detalji |
|---|---|---|
| Usluge (čl. IV) | Puna podrška | Naziv usluge, maloprodajna cijena, poseban oblik prodaje (i naziv) i sidrena cijena, uz provjeru i dnevni nadzor. |
| Proizvodi (čl. III) | Podržana polja iz Odluke | Naziv, šifra, marka, jedinica mjere i cijena za jedinicu mjere (gdje je primjenjivo), maloprodajna cijena s posebnim oblikom prodaje, sidrena cijena, barkod i dostupnost. Uvoz iz Excela, CSV-a ili XML-a, do 5 000 stavki po cjeniku. |
Podatke učitavate iz Excela, CSV-a ili XML-a (prepoznajemo i izvoz iz WooCommercea). Automatski uvoz izravno iz ERP-a ili blagajne zasad nemamo.
Što provjeravamo svaki dan
Nadzor se pokreće svaki dan rano ujutro, uz ponovnu provjeru prije 8:00 za sve što nije bilo u redu. Svaka provjera bilježi koja je verzija pravila korištena (trenutačno nn-101-2026).
| Provjera | Što znači |
|---|---|
| Dostupnost | CSV i XML vraćaju HTTP 200 na stabilnom URL-u. |
| Broj stavki | Broj redaka u CSV-u i XML-u jednak je broju stavki u objavljenom cjeniku. |
| Sadržaj | Sva polja koja odgovarajući format prenosi podudaraju se s objavljenom verzijom, uključujući sidrene cijene i podatke proizvoda. |
| Naziv datoteke | Odgovara trenutnoj objavi i propisanom obliku (dva zasebna signala). |
| Obvezna polja | Po profilu (proizvodi ili usluge), s brojem stavki kojima polje nedostaje. |
| Arhiva | Provjeravaju se CSV i XML svake verzije kojoj još traje 30-dnevni rok od zamjene, uključujući verzije izvorno objavljene ranije. |
| Aktualnost | Za proizvode: postoji li objava za zadnji radni dan (upozorenje, ne greška). Za usluge se ne očekuje dnevna objava. |
Kritične greške (nedostupna datoteka, krivi broj stavki ili sadržaj, nedostupna arhiva) šalju e-mail; ostalo vidite u nadzornoj ploči. Ovo je tehnička evidencija objave, ne pravni dokaz usklađenosti.
