Od 1. listopada 2026. svaki trgovac i pružatelj usluge koji posluje s potrošačima i ima web stranicu mora na njoj objaviti strojno čitljiv cjenik u .xml ili .csv formatu. Obveza ne dolazi iz Zakona o zaštiti potrošača nego iz Odluke o objavi cjenika proizvoda i usluga kao mjere izravne kontrole cijena, objavljene u Narodnim novinama 101/2026. Uz nju je istoga dana donesena i Odluka o isticanju dodatne cijene, pa je riječ o dvije odvojene obveze koje se često miješaju u jednu. Zakon o zaštiti potrošača od 17. studenoga 2026. uvodi još jednu, trajnu obvezu objave cjenika, ali samo za proizvode; o njoj u ovom članku ne pišem.

O tome što odluke traže od poduzetnika detaljno pišu i naši klijenti Đina d.o.o. i Vema računovodstvo, a u ovom članku saznajte kako se sidrena cijena na web stranici i sam cjenik postavljaju tehnički ispravno, i gdje se pri tome najlakše pogriješi. Ministarstvo gospodarstva objavilo je 22. rujna i pisana pojašnjenja uz obje odluke, pa se na njih oslanjam ondje gdje same odluke nisu precizne.

Sidrena cijena i objava cjenika — dvije različite obveze

Prva odluka uvodi dodatnu maloprodajnu cijenu, tzv. sidrenu cijenu. Točka II. kaže da trgovac i pružatelj usluga „jasno, vidljivo i čitljivo uz maloprodajnu cijenu ističe i dodatnu maloprodajnu cijenu koja ne uključuje posebne oblike prodaje, a koja je za taj proizvod odnosno uslugu bila primjenjiva na dan 10. rujna 2026.” Drugi stavak iste točke proširuje to na oglašavanje, i tu je rečenica: dodatna cijena obvezno se ističe i „na mrežnim stranicama”. Ta je obveza uvjetna: aktivira se tek ako cijene prikazujete. Ako na svojoj stranici bilo gdje navodite cijenu, uz nju mora stajati i sidrena cijena s 10. rujna; ako cijene uopće ne navodite, nemate što ni usidriti.

Iznimka su hrana, piće, kozmetika, sredstva za čišćenje, toaletne potrepštine i proizvodi za kućanstvo. Trgovci koji su za te proizvode dodatnu cijenu isticali već po odluci iz svibnja 2025. zadržavaju stari datum, 2. svibnja 2025., i za njih se druga dodatna cijena ne uvodi (točka IV.).

Druga odluka uvodi objavu cjenika. Objava cjenika ne zahtijeva da cjenik izgleda lijepo, nego da bude strojno čitljiv. Ta obveza nije uvjetna — datoteku morate objaviti bez obzira na to prikazujete li cijene na stranici. Te dvije stvari nemaju mnogo veze jedna s drugom, pa je moguće biti usklađen s jednom i potpuno neusklađen s drugom.

Sidrena cijena se ne mijenja

Kad sutra podignete cijenu usluge, mijenja se maloprodajna cijena, a sidrena ostaje ondje gdje je bila. Posao oko sidrene cijene zato je jednokratan — upišete je jednom i time je gotov. Posao oko cjenika je trajan, jer se datoteka mora održavati — kod robe svaki dan, kod usluga pri svakoj promjeni cijene.

Za uslugu koju u ponudu uvedete nakon 10. rujna pojašnjenje Ministarstva kaže da je dodatna cijena ona po kojoj ste je prvi put ponudili, uz jasnu naznaku toga datuma. Na mojem primjeru cjenika tako uz dodatak za sidrenu cijenu stoji datum 17. rujna 2026., a ne 10. rujna, jer ga prije toga nije bilo u ponudi.

Tko mora objaviti strojno čitljiv cjenik i istaknuti sidrenu cijenu

Odluka o objavi cjenika u točki V. kaže da se primjenjuje na one koji imaju mrežne stranice. Odluka o isticanju dodatne cijene u točki III. kaže da se odnosi „na sve trgovce koji obavljaju registriranu djelatnost trgovine na malo i pružatelje usluga koji obavljaju registriranu djelatnost pružanja usluga, na području Republike Hrvatske”. Ni u jednoj od dviju odluka ne stoji uvjet o tome kome prodajete.

Provjeravao sam to za vlastiti obrt. h1 design radi s trgovačkim društvima i obrtima, ne s privatnim osobama, pa mi se činilo logičnim da me obveza ne dira. U tekstu odluka za to nema uporišta. Pojmovnik Zakona o zaštiti potrošača, na koji se odluke oslanjaju, trgovcem naziva „bilo koju osobu koja sklapa pravni posao ili djeluje na tržištu u okviru svoje trgovačke, poslovne, obrtničke ili profesionalne djelatnosti” — definicija se veže uz djelatnost prodavatelja, ne uz to tko je kupac.

Pojašnjenje Ministarstva ipak unosi nijansu. Obveznike opisuje kao „sve prodavatelje robe i pružatelje usluga potrošačima, neovisno o tome jesu li trgovačko društvo, obrtnik, obavljaju li samostalnu djelatnost, obiteljsko poljoprivredno gospodarstvo itd.” Riječ „potrošačima” u toj rečenici jest. Prezentacija Hrvatske obrtničke komore s webinara o dodatnim cijenama, pisana prema tom pojašnjenju, ide korak dalje i izričito kaže da se odluka ne odnosi na usluge koje se pružaju isključivo drugim poslovnim subjektima ili javnim naručiteljima. Doslovni tekst odluka takvu iznimku ne sadrži, pa je granica riječ „isključivo”: tko uz poduzetnike radi i s građanima, obveznik je. h1 design posluje s poslovnim subjektima, pa se prema tim tumačenjima obveza na moj obrt ne odnosi. Cjenik na ovoj stranici svejedno ostaje objavljen, kao primjer kako obje obveze izgledaju kad se riješe do kraja.

Što se računa kao mrežna stranica

Pojašnjenje odgovara i na pitanje koje sam čuo nekoliko puta: mora li cjenik objaviti obrt koji na stranici uopće nema cijene. Mora, ako posluje s potrošačima. Obveza objave cjenika odnosi se na sve koji imaju uspostavljenu mrežnu stranicu, „uključujući stranice koje služe samo za informativne ili prezentacijske svrhe”. Profil na društvenoj mreži ne smatra se mrežnom stranicom, pa obrt koji ima samo Facebook stranicu cjenik ne objavljuje. Tko ima web stranicu, a cijene na njoj ne prikazuje, na webu nema što sidriti, ali datoteku s cjenikom svejedno mora objaviti.

Što mora sadržavati cjenik proizvoda i usluga

Točka III. propisuje podatke za proizvode, točka IV. za usluge. Popisi nisu jednaki i nema smisla u cjenik usluga trpati polja koja se odnose na robu.

Podatak Proizvodi (t. III.) Usluge (t. IV.)
naziv proizvoda odnosno usluge da da
maloprodajna cijena, uz podatak je li primijenjena tijekom posebnog oblika prodaje i naziv tog oblika da da
sidrena cijena da da
šifra da —
marka da —
jedinica mjere, ako je primjenjivo da —
cijena za jedinicu mjere, ako je primjenjivo da —
barkod robe da —
dostupno / nedostupno da —

Uslužna djelatnost objavljuje tri podatka po stavci, trgovina devet. Frizerskom salonu, autoservisu ili knjigovodstvenom uredu to je posao od jednog popodneva, dok trgovcu s katalogom od nekoliko tisuća artikala treba izvoz iz sustava u kojem se cijene već vode.

Usluge bez unaprijed određene cijene

Tu sam zapeo i sam. Izradu web stranice godinama sam iskazivao u rasponu, od 800 do 2.500 eura, jer na konačni iznos utječu broj podstranica, dizajn, funkcionalnosti i još desetak stvari. Odluke o rasponu ne govore ništa, a i maloprodajna i sidrena cijena u njima su jedan iznos, ne dva.

Pojašnjenje Ministarstva na to odgovara izravno: „Pružatelji usluga čija cijena nije unaprijed određena, u cjeniku objavljuju elemente od kojih se formira cijena s pripadajućom dodatnom cijenom na dan 10. rujna 2026. godine, a ne pojedinačne kalkulacije izrađene po narudžbi/specifikaciji potrošača.” Isto vrijedi i za isticanje dodatne cijene: kod usluga koje se rade prema specifikaciji kupca, dodatna cijena „iskazuje se za pojedinačne elemente od kojih se izračunava konačna cijena”.

U praksi to znači da se u cjenik ne upisuje raspon, nego ono iz čega raspon nastaje: osnovni opseg usluge s fiksnom cijenom i elementi koji se na njega dodaju — dodatna podstranica, sat rada, unos proizvoda. Ponuda klijentu ostaje kakva je bila, samo što se sad svaki njezin dio može naći u javnom cjeniku. Kako sam to riješio na primjeru cjenika, opisano je niže.

Format i naziv strojno čitljivog cjenika

Strojno čitljiv cjenik odluka u točki II. traži u .xml ili .csv formatu. Veznik je „ili”, dakle dovoljan je jedan format i nema potrebe objavljivati oba. PDF nije ni jedno ni drugo — cjenik u PDF-u ne ispunjava ovu obvezu, ma koliko uredno izgledao.

Točka VI. ide korak dalje i propisuje kako se datoteka zove: naziv uključuje oblik prodajnog objekta, adresu prodajnog objekta, oznaku prodajnog objekta, broj pohrane te vremensku oznaku s datumom i vremenom slanja. Datoteka može imati posve ispravan sadržaj i svejedno ne zadovoljavati ovu točku ako se zove cjenik.csv. Kod lanca objekata odluka dodatno traži da struktura datoteke bude jedinstvena za sve objekte.

Razdjelnik i kodiranje naziva odluka ne propisuje. Pojašnjenje Ministarstva daje primjer za pružatelja usluga s jednim uslužnim mjestom — servis_Vukovarska 20 Osijek_U03_015_01.10.2026_07:45 — i dopušta da tko nema interne oznake objekta upiše oznaku poput P-01 ili 01.

Primjer XML cjenika sa sidrenim cijenama za strojno čitanje

Ažuriranje XML ili CSV cjenika do 8 sati ujutro

Trgovac cjenik proizvoda ažurira jednom dnevno, najkasnije do 8:00 za tekući radni dan. Pružatelj usluge ažurira ga pri svakoj promjeni, također najkasnije do 8:00 na dan kada objavljuje izmjenu. Promjena cijene tijekom dana, prema pojašnjenju, ne traži novu datoteku istoga dana; nova verzija ide sutradan do osam.

Ako ste to riješili zakazanim zadatkom u WordPressu, vrijedi znati kako WP-Cron zapravo radi: on se ne pokreće u zadano vrijeme nego kad netko posjeti stranicu. Na stranici s malo prometa zadatak zakazan za 6 ujutro može se izvršiti tek u 11, kad naiđe prvi posjetitelj. Rješenje je isključiti ugrađeni cron kroz DISABLE_WP_CRON u wp-config.php i postaviti pravi cron na serveru koji poziva wp-cron.php u točno određeno vrijeme. Provjerite u upravljačkoj ploči svojeg hostinga nudi li zakazane zadatke i koji je najmanji dopušteni razmak između dva pokretanja — to se razlikuje od paketa do paketa.

Arhiva cjenika i 30 dana dostupnosti

Strojno čitljiv cjenik mora biti dostupan i unatrag. Odluka traži da se objavljeni cjenici pohranjuju i čuvaju na mrežnim stranicama te da im je osigurana dostupnost 30 dana od objave, odnosno od svake promjene. Dostupnost, ne pohrana. Datoteke starih verzija moraju biti dohvatljive s web stranice, što znači da uz aktualni cjenik treba stajati i popis prethodnih verzija s poveznicama. Ako stari cjenik prepišete novim, taj uvjet više ne ispunjavate.

Arhiva objavljenih XML cjenika s verzijama iz posljednjih 30 dana

Automatizirani pristup cjeniku

Točka VII. traži da se omogući uporaba softverskih alata i automatiziranih programa za prikupljanje podataka u stvarnom vremenu. Poveznica na cjenik zato mora biti javna i izravna. Prijava, obrazac, captcha, pa i agresivan firewall koji blokira nepoznate korisničke agente — sve to radi protiv ove točke. Ako koristite Cloudflare ili Wordfence, provjerite otvara li se adresa cjenika izvana, a ne samo iz vašeg preglednika u kojem ste prijavljeni.

Primjer strojno čitljivog cjenika na WordPress stranici

Na ovoj stranici objava izgleda ovako, iako h1 design kao obrt koji posluje s poslovnim subjektima nije obveznik, pa cjenik služi kao primjer: na cjeniku usluga stoje tablice za ljude, razvrstane po skupinama usluga, a uz njih poveznica na strojno čitljiv XML i poveznica na arhivu objavljenih cjenika. Odluka traži samo datoteku i njezinu dostupnost; razvrstavanje po skupinama i odabir jednog formata umjesto oba moje su odluke, ne zahtjev propisa. Datoteka se generira sama pri svakoj promjeni cijene. Stalna adresa zadnje verzije ostaje ista radi automatiziranog dohvata, a u arhivi uz nju stoje kopije s nazivom prema točki VI.; verzije starije od 30 dana brišu se dnevnim zadatkom.

Usluge koje sam dosad iskazivao u rasponu rastavio sam na elemente. Umjesto „web stranica za usluge 800–2.500 €” u cjeniku sad stoje osnovni opseg za 800 €, s popisom onoga što uključuje, dodatna podstranica za 70 € i sat rada za dodatne funkcionalnosti za 35 €. Umjesto „SEO optimizacija 500–10.000 €” stoje istraživanje ključnih riječi, optimizacija po stranici i tehnički SEO po satu. Sidrena cijena uz svaki element stoji u cjeniku; na uslužnim stranicama i u objavama cijene su i dalje iskazane kao „od” iznos s popisom elemenata, jer je to čitatelju jasnije. Tko jest obveznik, dodatnu cijenu mora istaknuti i ondje, uz svaku cijenu koju prikazuje, jer to traži druga odluka.

Za WordPress to nije ugrađena mogućnost. Nema polja za cijenu na određeni datum, nema generatora datoteke u propisanom formatu, a WooCommerce izvozi kataloge u svojoj strukturi, ne u onoj koju traži točka III. Zbog toga sam napravio dodatak koji obje obveze rješava iz administracije — radi i za uslužne djelatnosti bez web shopa i za WooCommerce.

Kako provjeriti je li vaš cjenik usklađen s odlukom

Otvorite adresu na kojoj vam stoji strojno čitljiv cjenik, i to u pregledniku u kojem niste prijavljeni. Ako se datoteka preuzme ili prikaže, prva prepreka je prijeđena. Zatim provjerite zove li se prema točki VI., sadrži li sva polja iz točke III. ili IV. ovisno o tome prodajete li robu ili pružate usluge, jesu li usluge bez fiksne cijene iskazane kao elementi, a ne kao raspon, postoji li popis verzija iz posljednjih trideset dana i je li datoteka jutros bila osvježena prije osam. Na kraju prođite stranicu i pogledajte stoji li uz svaku istaknutu cijenu i dodatna cijena s 10. rujna 2026.

Ako nešto od toga nedostaje, a ne želite se time baviti sami, h1 design radi usklađivanje WordPress stranica s obje odluke — postavljanje dodatka, uvoz cjenika, provjeru dostupnosti datoteke i dodavanje dodatne cijene na postojeće stranice. Javite se putem kontakt obrasca s podatkom o tome vodite li web shop ili uslužnu stranicu.

Izvori

Dražen Stopić

Pišem o web dizajnu, izradi web stranica i SEO optimizaciji, a gotovo sve što objavljujem na ovom blogu temelji se na iskustvu iz svakodnevnog rada s klijentima.

Podijelite objavu!