=== MP Generator Cjenika ===
Contributors: mpdizajn
Tags: woocommerce, cijene, sidrena cijena, cjenik
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.2.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Automatizirano praćenje i objava sidrene (dodatne) cijene i digitalnog cjenika, sukladno Odluci o isticanju dodatne cijene i Odluci o objavi cjenika (NN 101/2026 i 110/2026). Radi s WooCommerceom ili samostalno. Besplatna probna verzija traje 10 dana, nakon čega se automatska objava zaustavlja dok se ne aktivira licenca (već objavljeni cjenik ostaje javno dostupan).

== Description ==

MP Generator Cjenika (MP-Dizajn) pomaže trgovcima i pružateljima usluga u Hrvatskoj istaknuti sidrenu (dodatnu) cijenu i objaviti strojno čitljiv cjenik robe i usluga, prema Odluci o isticanju dodatne cijene i Odluci o objavi cjenika proizvoda i usluga (NN 101/2026 i 110/2026).

**Probna verzija i licenca:** Besplatna probna verzija traje 10 dana, nakon čega se automatska objava zaustavlja dok se ne aktivira licenca (već objavljeni cjenik ostaje javno dostupan). Probna verzija uključuje jednu poslovnicu; više poslovnica dostupno je uz paket „Više poslovnica”. Licenca je godišnja i vezana uz domenu.

Mogućnosti:

* Praćenje sidrene cijene i referentnog datuma za svaki proizvod, varijaciju i samostalnu stavku cjenika. Postojeći proizvodi dobivaju sidrenu cijenu pri aktivaciji, a novi pri prvoj objavi; ručno upisane vrijednosti se nikad ne prepisuju.
* Automatsko generiranje službenog cjenika u CSV i XML obliku (ili samo jednom od njih, po izboru), zasebno za robu i usluge: cjenik robe svaki dan u odabrano vrijeme (preporuka prije 07:30, rok 8:00), cjenik usluga pri svakoj promjeni. Naziv datoteke i redni broj pohrane su po propisu.
* Javni URL-ovi bez prijave, koji uvijek vode na najnoviju objavljenu datoteku. Automatski kreirana stranica „Objava cjenika” sa shortcodeom `[mpgc-cjenici]` prikazuje poveznice na trenutne cjenike — cjenik robe i cjenik usluga, u odabranim formatima, s datumom objave i imenom zadnje objavljene datoteke.
* Arhiva od 30 dana: propis (Odluka o objavi cjenika, t. II.) traži da objavljeni cjenici budu dostupni 30 dana od dana objave, odnosno svake promjene. Dodatak svaku objavljenu datoteku drži dostupnom na vlastitoj adresi dok je trenutna, a kad je zamijeni sljedeća objava iste vrste (uz više poslovnica: iste poslovnice), čuva je i navodi još 30 dana od dana zamjene (do kraja 30. dana, po hrvatskom vremenu); stranica „Objava cjenika” ispod trenutnih cjenika prikazuje i sve ranije objave unutar tog roka u jednom popisu „Ranije objave” (uz više poslovnica popis po poslovnici). Isto vrijedi kad cjenik prestane (brisanje poslovnice, uključivanje ili isključivanje više poslovnica): njegove objave navode se u zasebnom popisu „Ranije objave: …” još 30 dana.
* Podrška za više poslovnica (paket „Više poslovnica”): svaka poslovnica ima svoje poslovne podatke, svoj cjenik, svoj javni URL i svoj brojač pohrane.
* Postavljanje u 5 koraka (wizard): prodajno mjesto (poslovni podaci ili poslovnice), sidrene cijene (referentni datum; ručni unos, CSV uvoz ili današnje cijene), prikaz na webu (uz WooCommerce), automatska objava (automatika, vrijeme i format) te provjera i prva objava.
* Pregled sa stanjem svake stavke (što blokira potpunu objavu, a što je samo preporuka) i završna kontrolna lista.
* Rad s WooCommerceom ili potpuno samostalno, bez njega: tada se cijeli cjenik vodi u „Stavke cjenika” (ručni unos i CSV uvoz), a uz CSV/XML objavljuje se i HTML stranica cjenika za posjetitelje.
* Uvoz cjenika iz CSV-a po HOK predlošku (npr. iz Excela): učitana datoteka je cijeli cjenik te vrste — u cjeniku ostaju samo stavke iz datoteke, s podacima iz nje. Prije primjene prikazuje se što se dodaje, što se mijenja (staro → novo) i što se gasi, a zadnji uvoz može se vratiti.
* Stavke cjenika po zadanom prikazuju važeći cjenik (aktivne stavke), a ugašene su pod filtrom „Neaktivne”.
* Brisanje probnih objava (roba, usluge ili obje; po poslovnici), uz točan popis i potvrdu upisom riječi za odabranu vrstu. Nakon brisanja ništa se ne objavljuje; trenutni cjenik objavljuje se odmah samo uz kvačicu „Ostavi današnji cjenik i obriši povijest”.
* Prekidač „Objava cjenika” (zadano uključen): dok je objava isključena, cjenik nije javno dostupan i dodatak ne objavljuje nove cjenike; objave i arhiva ostaju.
* Nadogradnje stižu kroz WordPress i instaliraju se automatski; ne mogu se isključiti u popisu dodataka, a instalira se samo paket koji je potpisao MP-Dizajn. Ako hosting ili postavke WordPressa isključe sva automatska ažuriranja, dodatak to javlja u Pregledu.
* Kontekstualne upute uz polja i ekrane, sažete prema smjernicama HOK-a.
* Uz WooCommerce: prikaz sidrene cijene ispod cijene proizvoda na web-trgovini, shortcode `[mpgc-sidrena]` i PHP funkcija `mpgc_sidrena_cijena( $product )` (iznos ili raspon; s oznakom i datumom `mpgc_sidrena_cijena( $product, 'full' )`).
* Najniža cijena u 30 dana prije sniženja (Zakon o zaštiti potrošača, čl. 19.): dodatak je računa iz zabilježenih cijena pri početku svakog sniženja i, uz WooCommerce, prikazuje ispod cijene proizvoda na sniženju; prekriženu redovnu cijenu WooCommercea tada ne prikazuje (od 1.0.1 ni u blokovima Košarica, Blagajna, Mini-košarica, „Svi proizvodi” i unakrsnoj prodaji). Akciju koja po propisu nije sniženje (cijena nije niža od najniže ili nema zabilježene ranije cijene) u cjeniku objavljuje kao NE i u trgovini ne označava kao sniženje. Ručni upis ima prednost pred izračunom.
* Cijena za jedinicu mjere iz neto količine (g, kg, ml, l, m, m², m³, kom): u cjeniku (npr. "16.63/kg") i, uz WooCommerce, ispod cijene proizvoda dok nije na sniženju. Kratki kodovi `[mpgc-najniza-30]` i `[mpgc-cjm]` te funkcije `mpgc_najniza_cijena_30()` i `mpgc_cijena_jm()`.

Svi ekrani su u izborniku „Cjenik” (uz WooCommerce i bez njega), s karticama Pregled, Stavke, Postavke i Licenca; Postavljanje, Poslovnice (uz više poslovnica) i Kontrolna lista otvaraju se poveznicama s tih ekrana.

Napomena: dodatak je tehničko pomagalo i ne predstavlja pravni savjet.

== Zakonska usklađenost ==

MP Generator Cjenika je tehnički alat koji pomaže pri ispunjavanju obveza iz Odluke o isticanju dodatne cijene i Odluke o objavi cjenika proizvoda i usluga (NN 101/2026 i 110/2026), a od verzije 1.0.0 i pri isticanju najniže cijene u 30 dana prije sniženja i cijene za jedinicu mjere (Zakon o zaštiti potrošača, čl. 7. i 19.). Dodatak ne jamči pravnu usklađenost poslovanja. Za točnost i potpunost unesenih podataka (cijene, sidrene cijene, referentni datumi, nazivi i vrste posebnih oblika prodaje, ručno upisane najniže cijene, neto količine, poslovni podaci) odgovoran je korisnik. Kratke upute u dodatku sažetak su prema uputama HOK-a; za službena tumačenja pogledajte https://www.hok.hr i sam propis.

Ograda od odgovornosti (prihvaća se pri prvom otvaranju dodatka):

Ovaj dodatak je tehnički alat koji pomaže pri ispunjavanju obveza iz Odluke o isticanju dodatne cijene i Odluke o objavi cjenika proizvoda i usluga (NN 101/2026). Dodatak ne jamči pravnu usklađenost vašeg poslovanja s navedenim propisima i nije pravni savjet. Za točnost, potpunost i pravovremenost podataka unesenih u dodatak, kao i za usklađenost poslovanja s propisima, odgovoran je korisnik dodatka. Odgovornost MP-Dizajna uređuju Uvjeti licence. Nadogradnje dodatka instaliraju se automatski i ne mogu se isključiti u popisu dodataka. Ako hosting ili postavke WordPressa isključe sva automatska ažuriranja, dodatak to javlja u Pregledu.

Uvjeti licence: https://mp-dizajn.com/uvjeti-licence/

== Privatnost ==

Pri aktivaciji, i zatim jednom tjedno dok je licenca aktivna, šaljemo domenu web-mjesta, verziju dodatka, vrijeme slanja, aktivacijski kôd i — ako ste ga upisali — e-mail na poslužitelj MP-Dizajna (https://mp-dizajn.com), radi evidencije aktivacija i podrške. Dok je licenca aktivna, nakon dnevnog generiranja cjenika robe (i nakon ručnog pokretanja) šaljemo i njegov ishod (uspjeh s vremenom ili kratku poruku greške), zajedno s domenom i e-mailom. Dok je aktivacijski kôd aktivan ili opozvan, jednom dnevno šaljemo samo domenu radi provjere je li licenca i dalje valjana; ako provjera ne uspije (npr. nema interneta), dodatak radi dalje bez promjene. Na obrascu „Zatraži aktivaciju” šaljemo domenu, e-mail, traženi paket i poruku, samo kad kliknete „Pošalji zahtjev”.

Provjera nadogradnji (od 0.9.11): dodatak s https://mp-dizajn.com dohvaća opis najnovije verzije u pravilu najviše dvaput dnevno, a nakon neuspjele provjere (npr. poslužitelj nije dostupan) najranije za sat vremena; dodatno samo kad u Nadzorna ploča > Ažuriranja kliknete „Ponovno provjeri.” (od 1.1.0, najviše jednom u 5 minuta). Zahtjev nosi samo verziju dodatka (zaglavlje User-Agent "MPGC/<verzija>"); adresa web-mjesta, e-mail, aktivacijski kôd ni drugi podaci ne šalju se. Poslužitelj, kao kod svakog zahtjeva, vidi IP adresu poslužitelja web-mjesta. Paket nadogradnje preuzima se s iste adrese, također samo s verzijom dodatka u zaglavlju User-Agent, i samo kad nadogradnju pokrene WordPress (automatsko ažuriranje) ili Vi.

Ništa drugo se ne šalje (ni podaci o proizvodima, cijenama, kupcima ni instalaciji). Opcija „Ne šalji evidenciju aktivacije” u Cjenik > Postavke i aktivacija > Aktivacija (prije ili nakon unosa koda) isključuje sva tri slanja: evidenciju aktivacije, ishod objave i dnevnu provjeru licence. Aktivacijski kôd se provjerava bez interneta, pa aktivacija radi i kad je slanje isključeno ili poslužitelj nedostupan.

Uvjeti licence: https://mp-dizajn.com/uvjeti-licence/

== Installation ==

1. Prenesite mapu `mp-generator-cjenika` u `/wp-content/plugins/` (ili Dodaci > Dodaj novi, u novijem WordPressu Dodaj dodatak > Prenesi dodatak, ZIP datoteka).
2. Aktivirajte MP Generator Cjenika. WooCommerce nije obavezan: uz WooCommerce cjenik čine WooCommerce proizvodi i stavke iz „Stavke cjenika”; bez njega cijeli cjenik vodi se u „Stavke cjenika”.
3. Prihvatite uvjete korištenja i slijedite „Postavljanje cjenika” (5 koraka; bez WooCommercea korak „Prikaz na webu” se preskače). Svi ekrani su u izborniku „Cjenik” (uz WooCommerce i bez njega), s karticama Pregled, Stavke, Postavke i Licenca; Postavljanje, Poslovnice (uz više poslovnica) i Kontrolna lista otvaraju se poveznicama s tih ekrana.
4. Nadogradnja: preuzmite ZIP nove verzije, pa Dodaci > Dodaj novi (Dodaj dodatak) > Prenesi dodatak > Instaliraj sada (Instaliraj) i odaberite „Zamijenite trenutnu s prenesenom”. Stari dodatak prije toga ne brišite: u verzijama 0.9.9 i starijima brisanje dodatka briše postavke, aktivacijski kôd, automatiku i poslovnice. Od verzije 0.9.11 nove verzije stižu i kroz WordPress (Nadzorna ploča > Ažuriranja i popis dodataka). Nadogradnje se instaliraju automatski i ne mogu se isključiti u popisu dodataka; ako hosting ili postavke WordPressa isključe sva automatska ažuriranja, dodatak to javlja u Pregledu.

== Frequently Asked Questions ==

= Koliko traje probna verzija i što se događa nakon nje? =

Besplatna probna verzija traje 10 dana, nakon čega se automatska objava zaustavlja dok se ne aktivira licenca (već objavljeni cjenik ostaje javno dostupan).

Probna verzija počinje prvom aktivacijom dodatka i uključuje jednu poslovnicu. Nakon isteka ne pokreće se nijedno novo generiranje cjenika (ni dnevna objava robe ni objava usluga na promjenu), a uređivanje, uvoz i postavljanje su zaključani dok ne unesete aktivacijski kôd. Već objavljene datoteke (CSV/XML i HTML stranica cjenika) i dalje su dostupne na istim javnim adresama: trenutni cjenik bez roka, a zamijenjene objave još 30 dana od dana zamjene; nakon toga ih dodatak briše kao i inače. Aktivaciju možete zatražiti u Cjenik > Licenca > „Zatraži aktivaciju” ili na podrska@mp-dizajn.com.

= Što ako licenca istekne? =

Godišnja licenca vrijedi zaključno s datumom isteka upisanim u aktivacijski kôd. Nakon toga dodatak se ponaša isto kao nakon isteka probne verzije (generiranje stoji, objavljeni cjenik ostaje dostupan). Za nastavak korištenja potrebno je obnoviti licencu kupnjom novog aktivacijskog koda.

= Što se događa s podacima pri deinstalaciji? =

Brišu se samo privremeni podaci dodatka (privremene poruke i zakazani zadaci). Postavke (automatika, vrijeme objave, e-mail, poslovni podaci), aktivacijski kôd i licenca, redni brojevi pohrane, poslovnice, samostalne stavke, podaci u proizvodima (uključujući sidrene cijene), objavljeni cjenici i stranica „Objava cjenika” ostaju, pa dodatak nakon ponovne instalacije nastavlja gdje je stao. Objavljene cjenike i stranicu „Objava cjenika” poslužuje dodatak, pa dok je isključen ili deinstaliran nisu javno dostupni. Propis traži da objavljeni cjenici budu dostupni 30 dana od dana objave, odnosno svake promjene; dodatak svaku zamijenjenu objavu drži dostupnom i navodi još 30 dana od dana zamjene, ali samo dok je uključen. Za potpuno brisanje dodajte u wp-config.php: `define( 'MPGC_REMOVE_ALL_DATA', true );` prije deinstalacije — tada se brišu i postavke, licenca, stavke, zapisnici, podaci dodatka u proizvodima i objavljeni cjenici, a stranica „Objava cjenika” premješta se u otpad, odakle je možete vratiti.

Konstantu koristite samo kad dodatak trajno uklanjate: brišu se i objavljeni cjenici, trenutni i ranije objave koje dodatak još čuva (propis traži da objavljeni cjenici budu dostupni 30 dana od dana objave, odnosno svake promjene, i nakon uklanjanja dodatka — prije toga ih sačuvajte i objavite drugdje); nakon ponovne instalacije redni brojevi pohrane kreću od 1; a gube se i dodatne cijene s referentnog dana (ponovna instalacija kao dodatnu cijenu upisuje trenutnu redovnu cijenu).

= Kako nadograditi dodatak? =

Od verzije 0.9.11 nove verzije stižu kroz WordPress (Nadzorna ploča > Ažuriranja i popis dodataka, uz „Prikaži detalje” s popisom promjena). Nadogradnje se instaliraju automatski i ne mogu se isključiti u popisu dodataka (u stupcu automatskih ažuriranja uz dodatak piše „Automatska ažuriranja su omogućena”, bez prekidača; na multisiteu u popisu dodataka mreže). Isključenje samo za dodatke ili samo za MPGC (npr. drugim dodatkom) ne zaustavlja nadogradnje MPGC-a. Dodatak ne zaobilazi opće isključenje svih automatskih ažuriranja WordPressa (DISALLOW_FILE_MODS, AUTOMATIC_UPDATER_DISABLED ili drugi dodatak koji gasi sva automatska ažuriranja). Tada, kao i kad WordPress za izmjenu datoteka traži FTP podatke, kad je mapa dodataka pod sustavom verzija, kad je na multisiteu dodatak uključen samo na web-mjestu koje nije glavno (WordPress automatska ažuriranja pokreće samo na glavnom) i kad uz DISABLE_WP_CRON poslužitelj više od 12 sati ne pokreće WordPressove zakazane zadatke, Pregled javlja da se nadogradnje ne instaliraju same i što napraviti. Ako se opis izdanja između ponude i preuzimanja promijeni (novije izdanje) ili trenutno nije dostupan, instalira se ponuđena verzija uz istu provjeru potpisa, a sljedeća provjera donosi najnovije izdanje; od 1.1.0 dodatak opis izdanja stariji od sat vremena osvježava pri WordPressovoj provjeri automatskih ažuriranja (po WordPressovu rasporedu dvaput dnevno), pa nova verzija u pravilu stiže pri prvoj sljedećoj takvoj provjeri, a „Ponovno provjeri.” na ekranu Ažuriranja (uz ovlast za ažuriranje dodataka) dohvaća opis izdanja stariji od 5 minuta; nakon neuspjelog dohvata opis izdanja ponovno se dohvaća najranije za sat vremena. Između 05:30 i 08:15 po hrvatskom vremenu dodatak se ne ažurira automatski, da nadogradnja ne padne usred jutarnje objave, a ni u bilo koje doba dok je objava cjenika u tijeku. Instalira se samo paket koji je potpisao MP-Dizajn; nadogradnju dobivaju i probna i istekla licenca. WordPress ponudu nadogradnje provjerava i preko WordPress.orga, pa kad on ili mp-dizajn.com nisu dostupni, ponuda ne stiže — rezerva je ručni prijenos ZIP-a (dolje).

Na verziju 0.9.11 (i ručno, npr. za hitni popravak): preuzmite ZIP nove verzije, pa u WordPressu otvorite Dodaci > Dodaj novi (u novijem WordPressu Dodaj dodatak) > Prenesi dodatak, odaberite ZIP, kliknite „Instaliraj sada” (u novijem WordPressu „Instaliraj”) i zatim „Zamijenite trenutnu s prenesenom”. Postavke, licenca, stavke i objavljeni cjenici ostaju. Stari dodatak prije toga nemojte brisati: ako je instalirana verzija 0.9.9 ili starija, njezino brisanje briše postavke, aktivacijski kôd, automatiku i poslovnice (ispravljeno tek u 0.9.10).

= Koliko velik katalog dodatak može objaviti? =

Tehnički zahtjevi iz Uvjeta licence (https://mp-dizajn.com/uvjeti-licence/): najviše 10.000 proizvoda i usluga, pri čemu se svaka varijacija broji zasebno (osim ako ponuda navodi veći broj), i hosting koji jednom zahtjevu daje najmanje 256 MB memorije i 60 sekundi izvođenja. Za veći katalog javite se prije kupnje na podrska@mp-dizajn.com.

Uz manje memorije ili vremena granica je niža. Izmjereno na testnim stranicama s verzijom 1.2.0 (redak cjenika je jednostavan proizvod ili jedna varijacija; na drugom hostingu, osobito dijeljenom, brojevi mogu biti bitno drukčiji): uz 128 MB i 30 sekundi katalog od 10.500 redaka (PHP 7.4) objavi se za oko 25 sekundi, a ekrani Službeni cjenik i Izvoz/uvoz traju oko 40 sekundi, pa ih hosting koji ograničava ukupno trajanje zahtjeva može prekinuti. Uz PHP 8.3 granica je niža: s verzijom 0.9.11 izmjereno je oko 7.000 redaka (7.000 prolazi, 7.500 ne), a s verzijom 1.2.0 veći katalog nije stao u 128 MB.

Kad katalog prijeđe granicu, objava ne uspije i stiže e-mail „Cjenik robe danas nije objavljen”. Tada od hostinga zatražite memorijski limit od barem 256 MB i vrijeme izvođenja od barem 60 sekundi. Gdje hosting to dopušta, dodatak pri objavi sam podiže memorijski limit na WP_MAX_MEMORY_LIMIT.

= Što radi uvoz cjenika iz CSV-a? =

Učitana datoteka (cjenik robe ili usluga po HOK predlošku, npr. iz Excela ili iz izvoza dodatka) je cijeli cjenik te vrste: u cjeniku ostaju samo stavke iz datoteke, s podacima iz nje (kako je navedeno niže); naziv i šifru, po kojima se stavke uparuju, uvoz ne mijenja. Uvoz je u Cjenik > Stavke cjenika > Izvoz / uvoz (CSV). Proizvodi se uparuju po šifri pa po nazivu, usluge po nazivu.

* Samostalne stavke (Stavke cjenika): uparenoj stavci upisuju se maloprodajna cijena, dodatna cijena, poseban oblik prodaje (s nazivom) i datum dodatne cijene iz datoteke, a robi i marka, jedinica mjere, cijena za jedinicu mjere (osim kad je dodatak računa iz neto količine), barkod, dostupnost te neto količina i njezina jedinica. Redak bez para postaje nova aktivna stavka, a neaktivna stavka koja je u datoteci ponovno se uključuje. Aktivne samostalne stavke te vrste kojih nema u datoteci se gase: ne brišu se, nego su pod filtrom „Neaktivne” u Stavkama cjenika. Uz više poslovnica ne gase se, nego se samo navode.
* WooCommerce proizvodi: upisuju se dodatna cijena, naziv posebnog oblika prodaje, datum dodatne cijene te neto količina i njezina jedinica. Cijene u WooCommerceu (redovna, akcijska, akcija) se ne mijenjaju, a proizvodi kojih nema u datoteci ostaju kakvi jesu.
* Neto količina i jedinica (od 1.0.0): neobavezni stupci „Neto količina” i „Jedinica neto količine” iza „Datum dodatne cijene”; ima ih izvoz stavki (Izvoz / uvoz) i, od 1.2.0, cjenik robe; objavljeni cjenik robe uvozi se natrag i s tim stupcima. Cijenu za jedinicu mjere uvoz čita i s jedinicom ("16.63/kg"). Naziv posebnog oblika prodaje i neto količina jednaki onima koje stavka već ima u cjeniku (zadani naziv iz postavki, naziv ili neto količina nadređenog proizvoda) nisu promjena: varijacija bez vlastite neto količine i dalje preuzima neto količinu nadređenog proizvoda.
* Datum: stupac „Datum dodatne cijene”; prazna ćelija znači datum iz zaglavlja („Cijena …”) za redak s upisanom dodatnom cijenom. Bez dodatne cijene i datuma postojeća stavka zadržava svoj datum, a nova ga dobiva kao i ručno unesena stavka. Prazna ćelija cijene ne mijenja ništa.

Prije primjene prikazuje se što se dodaje, što se mijenja (staro → novo) i što se gasi. Promjena koju ste napravili u datoteci nije greška. Upozorenje o datumu (uvoz se svejedno može primijeniti) dobiva samo datum koji nije valjan (ne primjenjuje se), datum u budućnosti i datum raniji od datuma iz zaglavlja (osim 2. 5. 2025. za robu). „Povrat zadnjeg uvoza” vraća i cijene, datume i stanje stavki (ugašene ponovno uključuje, dodane briše), ali ne dira vrijednosti koje ste nakon uvoza ručno promijenili.

= Kako obrisati probne objave? =

U Cjenik > Stavke cjenika > Službeni cjenik, odjeljak „Brisanje probnih objava”: odaberite vrstu (roba, usluge ili obje; vrsta nema zadani odabir) i, uz više poslovnica, poslovnicu (ni ona nema zadani odabir), pa kliknite „Prikaži popis za brisanje”. Dodatak prikazuje koju vrstu (uz više poslovnica i koje poslovnice) i koliko objava briše, točan popis objava i datoteka (trenutnu i sve ranije verzije) i redni broj pohrane koji dobiva sljedeća objava. Za potvrdu upišite riječ za odabranu vrstu: OBRIŠI ROBU, OBRIŠI USLUGE ili OBRIŠI SVE; potvrda za drugu vrstu ne vrijedi. Brišu se objavljene datoteke i njihovi zapisi u zapisniku objava. Stavke, cijene i postavke se ne mijenjaju. Svako brisanje upisuje se u zapisnik brisanja (tko, kada, koliko objava).

Nakon brisanja ništa se ne objavljuje: do sljedeće objave web-mjesto nema objavljen cjenik obrisanih vrsta (javne adrese trenutnog cjenika vraćaju „Cjenik još nije objavljen.”; stranica „Objava cjenika” uz jedan cjenik pokazuje „(još nije objavljen)”, a uz više poslovnica obrisanu vrstu poslovnice ne navodi). Rezultat brisanja za svaku vrstu kaže kada će je automatika objaviti ili da je neće objaviti jer je automatika ili objava cjenika isključena ili licenca nije aktivna. Uz uključenu objavu to za svaku vrstu kaže već pregled brisanja, uz upozorenje da dok vrijedi obveza objave cjenika trgovac koji je ima bez objavljenog cjenika tu obvezu do sljedeće objave ne ispunjava. Uz kvačicu „Ostavi današnji cjenik i obriši povijest” (zadano isključena) današnji cjenik objavljuje se iznova, odmah nakon brisanja; ako se tada ne može objaviti (npr. nedostaju poslovni podaci), ništa se ne briše. Dok je objava cjenika isključena, kvačica nije dostupna.

Kad brisanje ukloni sve objave (svih vrsta i poslovnica), dodatak trenutak prve objave vraća na početak: samostalne stavke unesene prije sljedeće objave opet su početna ponuda, kao prije prve objave, pa pri objavi ne dobivaju same datum i trenutnu cijenu kao dodatnu (bez vlastitog datuma vrijedi 02.05.2025. za proizvode s dodatnom cijenom od 2. svibnja 2025., a za ostale referentni datum iz postavki). Ako bi neka od njih (bilo koje vrste i poslovnice) tada ostala bez dodatne cijene, pregled je navodi, a brisanje se odbija, bez kvačice i uz nju, dok joj ne upišete datum i iznos dodatne cijene (polja „Referentni datum” i „Sidrena cijena”). Datume i dodatne cijene koje su stavke dobile pri probnim objavama brisanje ne mijenja.

Redni broj pohrane zajednički je za robu i usluge (uz više poslovnica: za svaku poslovnicu). Od broja 1 kreće kad druga vrsta nema objava ili kad se brišu obje; kad se brišu obje, a obje imaju stavke, uz kvačicu roba dobiva broj 1, a usluge broj 2. Obrišete li samo jednu vrstu, broj se nastavlja od zadnje preostale objave druge vrste.

Brisanje se ne može poništiti. Brišu se sve objave s popisa: uvijek i trenutna objava, i one nastale dok obveza objave cjenika vrijedi. Propis traži da objavljeni cjenici budu dostupni 30 dana od dana objave, odnosno svake promjene. Dodatak svaku objavu drži dostupnom dok je trenutna, a zamijenjenu čuva i navodi još 30 dana od dana zamjene (npr. objavu koju je 01.10. zamijenila nova do 31.10. u 23:59); pregled to navodi u stupcu „Dostupna do”, a za trenutnu objavu piše „dok je trenutna”. Obrisana objava odmah prestaje biti dostupna, i prije datuma u stupcu „Dostupna do”, pa nakon brisanja objave nastale dok obveza vrijedi mogu biti dostupne kraće nego što propis traži. Ako web-mjesto koristi CDN ili predmemoriju stranica, nakon brisanja je očistite.

= Što radi prekidač „Objava cjenika”? =

U Cjenik > Postavke i aktivacija, odjeljak „Objava cjenika i automatika”, objavu cjenika možete isključiti i ponovno uključiti; prekidač vrijedi za sve poslovnice. Zadano je uključena, pa nakon nadogradnje sve radi kao dosad. Za isključivanje upišite ISKLJUČI OBJAVU.

Dok je objava isključena, cjenik nije javno dostupan: sve javne adrese cjenika (trenutne datoteke, ranije objave, HTML stranica cjenika i adrese poslovnica) vraćaju „stranica ne postoji” (404), a stranica „Objava cjenika” ostaje, ali bez popisa cjenika. Dodatak tada ne objavljuje nove cjenike, ni automatski ni ručno (ni „Generiraj sada”, ni „Objavi i završi” u postavljanju, ni `wp mpgc generiraj`), i ne šalje e-mailove o propuštenom roku. Prekidač ništa ne briše: objave i arhiva ostaju, a zamijenjene objave dodatak i dalje briše 30 dana od dana zamjene, kao i inače. Bilježenje cijena i prikaz dodatne i najniže cijene u trgovini rade i dalje. Na Pregledu i na ostalim ekranima dodatka stoji upozorenje da cjenik nije javno dostupan. Dok je objava isključena, trgovac koji ima obvezu objave cjenika tu obvezu ovim dodatkom ne ispunjava: ni trenutni cjenik ni ranije objave nisu javno dostupni.

Kad objavu ponovno uključite, opet su dostupne trenutne objave i ranije objave koje dodatak još čuva (zamijenjenu objavu 30 dana od dana zamjene), a automatika nastavlja po svojim pravilima. Nakon svake promjene očistite predmemoriju stranica i CDN, ako ih web-mjesto koristi.

= Kako prikazati sidrenu cijenu na drugom mjestu? =

Isključite automatski prikaz u postavkama i koristite `[mpgc-sidrena]` ili `<?php echo mpgc_sidrena_cijena( $product, 'full' ); ?>`.

= Kako se prikazuje dodatna cijena uz varijabilni i grupirani proizvod? =

Ispod raspona cijena je raspon dodatnih cijena s datumom. Kad varijacije ili proizvodi u grupi imaju različite datume dodatne cijene, iznosi se prikazuju po datumu, od najstarijeg, svaka skupina sa svojom oznakom, npr. „Sidrena cijena (02.05.2025.): 12,00 €; Sidrena cijena (10.09.2026.): 20,00 € – 30,00 €”. Kod grupiranog proizvoda uzimaju se isti proizvodi iz kojih WooCommerce slaže raspon cijena; za varijabilni proizvod u grupi to je njegova najjeftinija varijacija, a za grupirani proizvod u grupi njegova stavka s cijenom koju je WooCommerce spremio za tu grupu (inače najjeftinija); nakon promjene cijene proizvoda u toj grupi raspon cijena WooCommercea i dodatna cijena mogu se razlikovati dok WooCommerce ne osvježi spremljenu cijenu grupe. Dodatna cijena proizvoda u grupi prikazuje se kad mu je uključeno „Prikaži sidrenu cijenu”; grupirani proizvod tu kvačicu nema. Proizvod ili varijacija bez datuma (polje „Referentni datum”; varijacija bez vlastitog ima datum nadređenog proizvoda) ili s datumom koji dodatak ne prepoznaje ima u trgovini isti datum kao u cjeniku: 02.05.2025. za proizvode s dodatnom cijenom od 2. svibnja 2025., a za ostale referentni datum iz postavki. Takvu stavku, ako je uključena u cjenik, Provjera stavki navodi kao preporuku („Referentni datum”).

= Kako dodatak računa i prikazuje najnižu cijenu u 30 dana prije sniženja? =

Od 0.9.16 dodatak bilježi cijenu koju kupac plaća (i akcijsku), a od 1.0.0 iz tih zapisa računa najnižu cijenu u 30 dana prije sniženja (Zakon o zaštiti potrošača, čl. 19. st. 4.). Sniženje počinje kad proizvod prijeđe s redovne cijene na akciju i pri svakoj daljnjoj promjeni akcijske cijene, nižoj ili višoj: svako takvo sniženje ima vlastitu najnižu cijenu. Iznimka su rasprodaja i sezonsko sniženje (vrsta posebnog oblika prodaje na proizvodu ili stavci): ondje niža cijena bez prekida nastavlja isto sniženje (čl. 21. i 22.), ali samo sniženje koje je po propisu sniženje; ako rasprodaja ili sezonsko sniženje počne cijenom koja nije niža od najniže, sniženje počinje prvom cijenom nižom od najniže u 30 dana prije nje. Za WooCommerce usluge svaka niža cijena je novo sniženje s vlastitom najnižom cijenom: kod rasprodaje to traži čl. 21. st. 4. (usluge na daljinu), a dodatak isto postupa i kod sezonskog sniženja. Najniža cijena je najmanja cijena koju ste primjenjivali od 00:00 dana 30 dana prije početka sniženja (po hrvatskom vremenu) do njegova početka, uključujući ranije akcije. Računa se jednom, pri početku sniženja, i ne mijenja se dok ono traje. Cijene zabilježene prije 0.9.16 (samo redovne) uz cijene unesene bez PDV-a uračunavaju se s PDV-om po sadašnjoj stopi, a cijene koje je 0.9.16 zabilježio prije nadogradnje na 1.0.0 dodatak preračunava s PDV-om po sadašnjoj stopi za adresu trgovine (WooCommerce → Postavke → Općenito), jer ih je 0.9.16 uz neke postavke bilježio bez PDV-a ili po stopi kupca iz druge države.

Uz WooCommerce ispod cijene proizvoda na sniženju piše „Najniža cijena u 30 dana prije sniženja: …” (varijabilni proizvod: raspon varijacija na sniženju; grupirani proizvod: raspon proizvoda u grupi koji su na sniženju, za varijabilni proizvod u grupi njegova najjeftinija varijacija, a za grupirani proizvod u grupi njegova najjeftinija stavka), prije dodatne cijene; prikaz se ne može isključiti. Prekriženu redovnu cijenu WooCommercea dodatak tada ne prikazuje (čl. 7. st. 2. i čl. 19. st. 4.). Od 1.0.1 isto vrijedi u blokovima Košarica, Blagajna (sažetak narudžbe) i Mini-košarica, koji cijene iscrtavaju u pregledniku: uz proizvod na akciji je samo cijena koju kupac plaća, i uz cijenu komada i uz iznos stavke, bez prekrižene redovne cijene i bez oznake uštede („Save …”, u hrvatskom sučelju WooCommercea „Uštedi …”, u WooCommerceu 8 „Spremi …”); ondje nema ni retka najniže cijene. To vrijedi za svaku stavku čija je cijena niža od redovne, i kad je snizi drugi dodatak (npr. cijene za skupine kupaca, količinski popusti): ni taj popust se u tim blokovima ne prikazuje. U bloku „Svi proizvodi” i u unakrsnoj prodaji bloka Košarica (WooCommerce 8.x) skriva se i oznaka „Sale” (u hrvatskom sučelju „Akcija”, u WooCommerceu 8 „Sniženje”), jer uz te kartice redak najniže cijene ne može stajati. Za lako pokvarljivu robu redak se ne prikazuje (čl. 19. st. 5.). Na drugom mjestu najnižu cijenu prikazuje kratki kod `[mpgc-najniza-30]` (s `id="…"` za drugi proizvod) ili `<?php echo mpgc_najniza_cijena_30( $product, 'full' ); ?>`. Najniža cijena nije podatak cjenika i ne objavljuje se u njemu.

Ako akcijska cijena nije niža od najniže cijene, po propisu to nije poseban oblik prodaje (čl. 19. st. 1., čl. 20.); bez ranije cijene proizvoda također nije, pa dodatak akciju proizvoda bez zabilježene ranije cijene, kad zapisi pokrivaju svih 30 dana prije sniženja, ne vodi kao poseban oblik prodaje. U cjeniku je tada „Poseban oblik prodaje” NE, a u trgovini se cijena prikazuje kao obična, bez oznake sniženja („Akcija!”, „Sale!”). Provjera stavki to navodi uz stavku. Snizite akcijsku cijenu ispod najniže ili uklonite akciju; ako ste proizvod ranije nudili, upišite najnižu cijenu ručno.

Prvih 30 dana nakon što je dodatak počeo bilježiti cijene zapisi ne pokrivaju cijelo razdoblje, pa izračun može biti previsok ili ga nema. Isto vrijedi nakon ponovne aktivacije dodatka i nakon povratka WooCommercea (kad je dodatak sve stavke prvi put bilježio bez njega): dodatak tada ponovno bilježi sve stavke, a zapisa iz vremena dok dodatak ili WooCommerce nije radio nema, pa izračun ne mora biti točan. Od 1.2.0, kad dodatak pri tom ponovnom bilježenju zatekne drugu cijenu ili akciju nego prije prekida (cijena se mogla promijeniti dok dodatak ili WooCommerce nije radio), cijenu zabilježenu prije prekida ne uzima kao dokaz da akcija nije sniženje: kad bi samo zbog nje akcija bila NE, vodi je kao sniženje s nepotpunim zapisima, a iznos računa iz cijena zabilježenih u 30 dana prije sniženja (bez njih iznosa nema). To ne vrijedi kad je dodatak deaktiviran tek nakon početka tog razdoblja ni za prekide prije 1.1.0. Trenutak deaktivacije dodatak bilježi od 1.2.0; kad ga ne zna (npr. povratak WooCommercea, prekidi pod 1.1.x), pretpostavlja da je prekid počeo prije tog razdoblja, pa akciju koja bi inače bila NE može voditi kao sniženje s nepotpunim zapisima (DA). Kao i dosad, zapisi pokrivaju svih 30 dana tek 30 dana nakon završetka tog bilježenja, a od 1.1.0 to vrijedi i dok ono traje. U to vrijeme akcija bez zabilježene ranije cijene u cjeniku je „Poseban oblik prodaje” DA, a u trgovini se prikazuje kao sniženje, bez retka najniže cijene dok je ne upišete ili potvrdite. Tada Provjera stavki, Pregled i Kontrolna lista traže provjeru: na proizvodu, varijaciji ili samostalnoj stavci na akciji upišite najnižu cijenu iz svoje evidencije (polje „Najniža cijena u 30 dana prije sniženja”). Ručni upis ima prednost pred izračunom i vrijedi samo za to sniženje. Isto vrijedi za sniženja koja su trajala na dan nadogradnje. Od 1.1.0 u Provjeri stavki (Stavke cjenika > Provjera stavki, filtar „Najniža cijena: za provjeru”) iznos možete potvrditi pojedinačno ili skupno za odabrane stavke na stranici popisa: za akciju koja je već trajala kad je dodatak bilježio sve stavke (uz WooCommerce) redovnu cijenu koju je tada zabilježio, a za izračun iz nepotpunih zapisa taj izračun. Potvrda traži označenu izjavu i sprema se kao ručni upis s Vašim korisničkim imenom i vremenom. Za proizvod koji je dodatak prvi put zabilježio kasnije, odmah s akcijskom cijenom: ako ga u 30 dana prije akcije niste nudili ni po jednoj cijeni višoj od akcijske, po propisu to nije akcija, pa uklonite akcijsku cijenu; samostalna stavka unesena nakon deaktivacije dobiva uputu o kvačici „Primijenjen je poseban oblik prodaje” (samostalna stavka nema zasebnu akcijsku cijenu); ako jeste, iznos upišite ručno (za WooCommerce uslugu ga možete upisati), kao i za samostalnu stavku bez zapisa. Obavijest u administraciji javlja koliko je takvih stavki.

= Kako dodatak računa cijenu za jedinicu mjere? =

Na proizvodu, varijaciji (prazno = kao nadređeni proizvod), u Brzoj izmjeni ili u obrascu samostalne stavke upišite neto količinu i jedinicu (g, kg, ml, l, m, m², m³ ili kom). Dodatak dijeli maloprodajnu cijenu s PDV-om s količinom u kilogramima, litrama, metrima, m², m³ ili komadima i zaokružuje na 2 decimale (pola naviše). U cjeniku je iznos s jedinicom ("16.63/kg" u CSV-u, atribut jedinica u XML-u). Cjenik robe od 1.2.0 ima i stupce „Neto količina” i „Jedinica neto količine” (u XML-u element neto_kolicina s atributom jedinica). U njima su količina i jedinica iz kojih se računa cijena za jedinicu mjere, količina s decimalnom točkom ("0.5"); upisuju se i dok je proizvod na sniženju. Za hranu u tekućem mediju upišite ocijeđenu masu, jer se iz nje računa cijena za jedinicu mjere (Pravilnik NN 105/2026, čl. 8. st. 3.); ona je tada i u stupcu „Neto količina”. Bez ispravne neto količine i jedinice oba su polja prazna. Dok je proizvod na sniženju, cijena za jedinicu mjere se ne iskazuje (Pravilnik NN 105/2026, čl. 8. st. 2.), osim kad akcija po propisu nije sniženje. Uz WooCommerce ispod cijene piše „Cijena za jedinicu mjere: 16,63 €/kg”, izračunata iz cijene koju kupac vidi, osim kad je jednaka toj cijeni (npr. 1 kom; tada se upisuje samo u cjenik). Kratki kod `[mpgc-cjm]` i funkcija `mpgc_cijena_jm()` prikazuju je na drugom mjestu. Samostalna stavka bez neto količine zadržava upisani iznos. U Postavkama odaberite kategorije za koje se ističe; Kontrolna lista tada navodi proizvode iz njih bez neto količine, a uvijek i proizvode s neispravnom.

= Što dodatak ne pokriva? =

* Oglašavanje izvan web-trgovine (feedovi, newsletteri, banneri, strukturirani podaci): i ondje uz sniženje treba istaknuti najnižu cijenu (Zakon o zaštiti potrošača, čl. 19. st. 6.).
* Kupone, pravila košarice i cijene za skupine kupaca (čl. 8. st. 4.).
* Postotke i oznake sniženja koje dodaje tema ili drugi dodatak: moraju polaziti od najniže cijene u 30 dana prije sniženja (presuda Suda EU C-330/23).
* Košarice i popise proizvoda koje iscrtavaju teme i drugi dodaci (npr. bočne košarice, widgeti graditelja stranica) te blokove WooCommercea koje dodatak ne obrađuje: ondje se i dalje može pojaviti prekrižena redovna cijena, oznaka uštede ili oznaka „Sale”. Dodatak obrađuje klasične predloške trgovine, blokove koje WooCommerce iscrtava na poslužitelju („Cijena proizvoda”, „Slika proizvoda” i „Oznaka za artikl na akciji”, u WooCommerceu 8 „Bedž Akcija”; npr. u „Kolekciji proizvoda” i u povezanim proizvodima), starije blokove mreže proizvoda („Proizvodi na akciji”, „Ručno izabrani proizvodi”, „Najnoviji proizvodi”, „Proizvodi po kategoriji”, „Proizvodi po oznaci”, „Proizvodi prema atributima”, najprodavaniji i najbolje ocijenjeni proizvodi te „Novo u trgovini” u praznoj košarici), Košaricu, Blagajnu, Mini-košaricu, „Svi proizvodi” i unakrsnu prodaju bloka Košarica.
* Dodatnu cijenu, najnižu cijenu u 30 dana prije sniženja i cijenu za jedinicu mjere u bloku „Svi proizvodi” i u unakrsnoj prodaji bloka Košarica (WooCommerce 8.x): WooCommerce ondje cijene iscrtava u pregledniku, pa ih dodatak uz njih ne može dodati. Odluka o isticanju dodatne cijene (t. II.) dodatnu cijenu traži uz maloprodajnu cijenu na prodajnom mjestu i pri oglašavanju cijene, uključujući mrežne stranice; prema pojašnjenjima Ministarstva gospodarstva (t. 1.) ističe se na prodajnom mjestu, uključujući i internet trgovine, uz važeću maloprodajnu cijenu i na jednakom mjestu na kojem trgovac ističe maloprodajnu cijenu, a prema uputama HOK-a (str. 4), kad se cijena prikazuje na više mjesta, na svim tim mjestima. Za popise proizvoda zato koristite klasične popise trgovine ili blokove koje WooCommerce iscrtava na poslužitelju (npr. „Kolekcija proizvoda” u novijem WooCommerceu). Od 1.1.0 Kontrolna lista i Pregled navode objavljene stranice, objave, uzorke, izbornike, predloške aktivne teme i widgete na kojima se blok „Svi proizvodi” koristi.
* Stavke u košarici, blagajni i mini-košarici (klasičnim i u blokovima): uz njih dodatak ne prikazuje dodatnu cijenu, najnižu cijenu u 30 dana prije sniženja ni cijenu za jedinicu mjere; uz njih je samo cijena koju kupac plaća.
* Cijenu za jedinicu mjere uz cijenu grupiranog proizvoda: proizvodi u grupi mogu imati različite količine i jedinice, pa je dodatak prikazuje uz svaki proizvod u tablici na stranici grupiranog proizvoda, kao na stranici tog proizvoda.
* Prekriženu cijenu, oznaku uštede i oznaku „Sale” u blokovima Košarica, Blagajna, Mini-košarica, „Svi proizvodi” i unakrsnoj prodaji dodatak skriva stilom (assets/css/frontend.css): WooCommerce ih iscrtava u pregledniku, pa ih dodatak ne može ukloniti prije slanja stranice. Zato ostaju u HTML-u stranice i u podacima Store API-ja i može ih prikazati sve što te podatke čita (npr. mobilna aplikacija trgovine). Od 1.1.0 dodatak ta pravila ispisuje i kao umetnuti stil na stranici (s oznakom mpgc-cijene-u-blokovima i id-om mpgc-frontend-inline-css) i taj stil dodacima WP Rocket i LiteSpeed Cache prijavljuje kao iznimku pri uklanjanju nekorištenog CSS-a; uz njih provjerite košaricu, blagajnu i mini-košaricu. Drugi dodatak za optimizaciju koji uklanja „nekorišteni” CSS (npr. „Remove unused CSS”) ili ga učitava tek nakon prikaza može ta pravila izostaviti: umetnuti stil s tom oznakom i datoteku stila dodatka izuzmite iz te optimizacije. Nakon nadogradnje očistite predmemoriju stranica i spojenih stilova (i uz WP Rocket i LiteSpeed Cache): stranice spremljene u predmemoriju prije nadogradnje nemaju umetnuti stil. U uređivaču blokova pregled tih blokova i dalje prikazuje prekriženu cijenu.
* Popise, filtre i blokove proizvoda na akciji (npr. „Proizvodi na akciji”, `[sale_products]`): WooCommerce u njih uvrštava i proizvod čija akcija po propisu nije sniženje; snizite mu akcijsku cijenu ili je uklonite.
* Krajnji rok uporabe lako pokvarljive robe (čl. 24. st. 1.).
* Najnižu cijenu iz razdoblja za koje dodatak nema potpune zapise (prije nego što je počeo bilježiti cijene i dok nije radio): upišite je ručno iz svoje evidencije ili, od 1.1.0, potvrdite predloženi iznos u Provjeri stavki.
* Isticanje u prodavaonici: za samostalne stavke dodatak računa najnižu cijenu i cijenu za jedinicu mjere, a na policu ih ističete sami.

= Imam više poslovnica — kako objaviti zaseban cjenik za svaku? =

Potreban je paket „Više poslovnica” (u probnoj verziji i uz paket „Jedna poslovnica” prekidač je onemogućen). U postavkama uključite „Više poslovnica” (zadano isključeno). Postojeći poslovni podaci mogu se pri uključivanju prenijeti u prvu poslovnicu (postavke ostaju netaknute). Na ekranu „Poslovnice cjenika” svaka poslovnica dobiva svoje poslovne podatke i svoj redni broj pohrane, a svaku stavku (proizvod, varijaciju ili samostalnu stavku) dodjeljujete poslovnici. Svaka poslovnica objavljuje svoj cjenik na /cjenik/<oznaka objekta>/roba.csv (i .xml, usluge), sa svojom arhivom od 30 dana. Kad poslovnicu obrišete, njezin cjenik se više ne objavljuje; kad uključite više poslovnica, više se ne objavljuje jedan cjenik, a kad ih isključite, cjenici svih poslovnica. Dodatak zadnje objave tih cjenika čuva i navodi na stranici „Objava cjenika” (i na HTML stranici cjenika) pod „Ranije objave” još 30 dana od dana brisanja odnosno promjene, a ranije objave 30 dana od dana zamjene, kao svaku zamijenjenu objavu. Nedodijeljene stavke ne ulaze ni u jedan cjenik i prikazuju se u Stavke > Provjera stavki kao stavke koje blokiraju; poslovnica bez stavki ne objavljuje datoteku.

== Changelog ==

= 1.2.0 =
* Popravak (instalacije uz WooCommerce, proizvodi s dodatnom cijenom od 2. svibnja 2025.): dodatak sidrene cijene postojećih proizvoda upisuje pri aktivaciji, prije koraka 2 postavljanja cjenika, u kojem se označavaju kategorije proizvoda s dodatnom cijenom od 2. svibnja 2025. Proizvodi iz kategorija označenih nakon toga zato su dobivali zadani referentni datum (npr. 10.09.2026.) i tadašnju redovnu cijenu, a za one koji su 2. 5. 2025. već bili u ponudi vrijede datum 02.05.2025. i redovna cijena (bez akcije) na taj dan; proizvod uveden kasnije zadržava datum po općem pravilu (zadani referentni datum ili prvi dan u ponudi). Sada, kad se popis tih kategorija proširi (korak 2 ili Postavke) ili se na proizvodu oznaka postavi na „Da”, takvi proizvodi i njihove varijacije objavljeni najkasnije 2. 5. 2025. dobivaju datum 02.05.2025., a sidrena cijena se briše i treba je upisati, i kad datum 02.05.2025. već imaju (uz zadani referentni datum 02.05.2025.; dodatak ne zna je li to bila redovna cijena na taj dan); proizvode objavljene kasnije ispravak ne dira. Dok je ne upišete (redovnu cijenu bez akcije na dan 2. 5. 2025.), trgovina je uz te proizvode ne prikazuje. Proizvodi koji su u cjeniku do tada se u njemu objavljuju bez nje, a Pregled i Provjera stavki vode ih kao stavke koje blokiraju potpunu objavu. Upišite je prije sljedeće jutarnje objave. Ispravak se svakom proizvodu i varijaciji radi samo jednom: sidrenu cijenu koju trgovac nakon toga upiše dodatak više ne briše. Nadogradnja jednom ispravlja proizvode kojima se to već dogodilo; isti ispravak obuhvaća i proizvode iz tih kategorija koje nadogradnja na 0.9.8, suprotno opisu tog izdanja, nije ispravila. Na velikom katalogu ispravak radi u serijama, u administraciji i zakazanim zadacima WordPressa (WP-Cron), ne pri posjetu trgovini. Obavijest nakon nadogradnje i spremanja kategorija navodi ispravljene proizvode (do 20, uz broj ostalih) s datumom prije i poslije ispravka (ili da ostaje) i obrisanom sidrenom cijenom, traži da se obrisana cijena upiše ponovno ako je bila upravo redovna cijena na taj dan, kaže što se do upisa događa u trgovini i cjeniku i za proizvode u cjeniku upućuje na Stavke cjenika > Provjera stavki (filtar „Blokira potpunu objavu”); obavijest na ekranu proizvoda navodi taj proizvod i njegove varijacije i kaže isto o ponovnom upisu. Ispravak dira samo proizvode koji i dalje imaju vrijednosti kakve upisuje dodatak (zadani referentni datum i sidrenu cijenu jednaku redovnoj); iste vrijednosti upisane ručno ili uvozom dodatak od njih ne razlikuje. Kontrolna lista i Pregled, neovisno o zadanom referentnom datumu, upozoravaju na proizvode i varijacije s dodatnom cijenom od 2. svibnja 2025. objavljene najkasnije 2. 5. 2025. kojima je datum dodatne cijene kasniji od 02.05.2025. (osim datuma koji je dodatak upisao pri prvom spremanju s cijenom) i na samostalne stavke s tom oznakom i datumom kasnijim od 02.05.2025., bez obzira na dan unosa; proizvodu koji 2. 5. 2025. nije bio u ponudi u polju „Proizvod s dodatnom cijenom od 2. svibnja 2025.” treba odabrati „Ne”, a samostalnoj stavci tu oznaku ukloniti. Ako ste zadani referentni datum promijenili nakon aktivacije dodatka (npr. na 02.05.2025.), ispravak ne obuhvaća proizvode kojima je dodatak pri aktivaciji upisao prijašnji zadani datum (npr. 10.09.2026.), a Kontrolna lista i Pregled navode one objavljene najkasnije 2. 5. 2025.
* Popravak pri nadogradnji (sve instalacije, najniža cijena u 30 dana prije sniženja): akcija koja traje, bez ručnog upisa najniže cijene, a počela je zapisom iz bilježenja cijena svih stavki (u 1.0.0 i 1.0.1 nakon ponovne aktivacije ili povratka WooCommercea) ili dok to bilježenje nije bilo dovršeno, i vodi se kao sniženje s potpunim zapisima ili kao akcija bez ranije cijene (NE), sada je sniženje s nepotpunim zapisima. Izračun ostaje; Provjera stavki i obavijest na ekranima dodatka traže provjeru. Akcija koja je dosad bila NE u cjeniku je DA, a u trgovini dobiva oznaku sniženja, bez retka najniže cijene. Ništa se ne briše, a ručni upisi i završene akcije se ne mijenjaju.
* Novo (sve instalacije, cjenik robe): iza stupca „Datum dodatne cijene” stupci „Neto količina” i „Jedinica neto količine”, istih naziva kao u izvozu stavki za uređivanje; u XML-u na kraju stavke element neto_kolicina, s jedinicom u atributu jedinica (kao kod cijene za jedinicu mjere). U njima su neto količina i jedinica iz kojih dodatak računa cijenu za jedinicu mjere (varijacija bez vlastite ima vrijednost nadređenog proizvoda), količina s decimalnom točkom (npr. "0.5" i "kg"). Za hranu u tekućem mediju to je upisana ocijeđena masa, iz koje se računa cijena za jedinicu mjere. Bez ispravne neto količine i jedinice oba su polja prazna. Neto količina upisuje se i dok je proizvod na sniženju, kad se cijena za jedinicu mjere ne iskazuje. Iste stupce ima tablica robe na stranici cjenik.html (bez WooCommercea). Cjenik usluga se ne mijenja. Objavljeni cjenik robe uvozi se natrag i sa stupcima neto količine (Izvoz / uvoz). Neto količina kakvu stavka već ima u cjeniku pri uvozu nije promjena, ni u objavljenom cjeniku ni u datoteci za uređivanje: varijacija bez vlastite neto količine i dalje preuzima onu nadređenog proizvoda (dosad je neto količina nadređenog proizvoda upisana uz varijaciju u datoteci za uređivanje postajala vlastita neto količina varijacije). HOK predložak i cjenici ranijih verzija uvoze se kao dosad.
* Popravak (sve instalacije, „Današnje cijene kao sidrene” u postavljanju cjenika): proizvod do kojeg upis sidrenih cijena pri aktivaciji još nije došao najprije dobiva vrijednosti kao pri aktivaciji (redovna cijena i referentni datum ili, ako je objavljen kasnije, datum objave), a tek zatim vrijedi današnja cijena. Stavke s dodatnom cijenom od 2. svibnja 2025. (i samostalne) se preskaču i broje zasebno, jer za njih vrijedi cijena na dan 2. 5. 2025. (ili na prvi dan u ponudi, ako je kasniji), a ne današnja. Dosad su takve stavke dobivale današnju redovnu cijenu (a stavka bez datuma i referentni datum iz postavki), a proizvod objavljen nakon referentnog datuma datum iz postavki umjesto datuma objave. Proizvode s dodatnom cijenom od 2. svibnja 2025. objavljene najkasnije 2. 5. 2025. kojima je tako upisan referentni datum iz postavki ispravlja popravak za te proizvode, a samostalne stavke s tom oznakom i datumom kasnijim od 02.05.2025. navodi upozorenje u Kontrolnoj listi i Pregledu. Ostale dodatak ne ispravlja i na njih ne upozorava: ako ste „Današnje cijene kao sidrene” koristili prije 1.2.0, provjerite sidrenu cijenu proizvoda i samostalnih stavki s dodatnom cijenom od 2. svibnja 2025. koji imaju datum 02.05.2025. ili kasniji prvi dan u ponudi (dodatak im je upisao tadašnju cijenu, a datum ostavio) te datum dodatne cijene proizvoda objavljenih nakon referentnog datuma. Uputa na „Povrat zadnjeg uvoza” prikazuje se samo kad je današnja cijena upisana barem jednoj stavci; inače bi povrat vratio neki raniji, nevezani uvoz.
* Popravak (instalacije uz WooCommerce, upis sidrenih cijena pri aktivaciji): proizvod objavljen prije početka tog upisa, a spremljen dok upis traje i prije nego što je došao do njega (npr. narudžbom ili ručnim unosom u koraku 2 postavljanja cjenika), dobiva vrijednosti kao pri aktivaciji: redovnu cijenu i referentni datum ili datum objave, a proizvod s dodatnom cijenom od 2. svibnja 2025. datum 02.05.2025. (ili prvi dan u ponudi, ako je kasniji) bez cijene. Dosad je kao datum dodatne cijene dobivao današnji datum.
* Novo (instalacije uz WooCommerce, postavljanje cjenika, automatska objava i Pregled): dok dodatak nakon aktivacije još upisuje sidrene cijene postojećih proizvoda, korak 5 postavljanja cjenika („Provjera i prva objava”), Pregled i kartica „Službeni cjenik” to navode, s brojem obrađenih proizvoda i varijacija. Prva objava iz postavljanja cjenika tada nije moguća, a automatska objava čeka da upis završi i objavljuje pri sljedećem pokretanju nakon toga, jer bi se neobrađeni proizvodi objavili bez sidrene cijene, a ona je obavezan podatak cjenika. Čekanje nije neuspio pokušaj, a e-mail o propuštenom roku šalje se kao dosad, uz odlomak da automatska objava čeka upis. Ručna objava (gumb „Generiraj cjenik sada” u Stavke cjenika > Službeni cjenik, gumb „Generiraj sada” u postavkama i naredba "wp mpgc generiraj") ostaje moguća, uz upozorenje da cjenik objavljen prije kraja upisa treba objaviti ponovno kad upis završi; uz isključenu automatiku upozorenje ne spominje automatsku objavu. Upozorenje da cjenik kasni tada navodi i da automatska objava čeka upis. Kad objava nije prva, korak 5 samo upozorava; Pregled uvijek samo upozorava. Ako upis sat vremena ne napreduje, prva objava više nije blokirana i ni automatska objava više ne čeka, a korak 5, Pregled i kartica „Službeni cjenik” upozoravaju da upis ne napreduje, upućuju na zakazane zadatke WordPressa (WP-Cron) i savjetuju da se cjenik objavljen prije završetka upisa objavi ponovno kad upis završi.
* Promjena (sve instalacije, brisanje probnih objava): nakon brisanja dodatak više ne objavljuje trenutni cjenik sam. Do sljedeće objave web-mjesto nema objavljen cjenik obrisanih vrsta: javne adrese trenutnog cjenika vraćaju „Cjenik još nije objavljen.”, a stranica „Objava cjenika” uz jedan cjenik pokazuje „(još nije objavljen)”. Rezultat brisanja za svaku vrstu kaže kada će je automatika objaviti ili da je neće objaviti jer je automatika ili objava cjenika isključena ili licenca nije aktivna. Pregled brisanja uz uključenu objavu upozorava na obvezu objave cjenika i za svaku vrstu kaže kada je sljedeća objava. Dosadašnje ponašanje (odmah nakon brisanja objava trenutnog cjenika) sada daje kvačica „Ostavi današnji cjenik i obriši povijest”, zadano isključena. Kad brisanje ukloni sve objave (svih vrsta i poslovnica), vraća se i trenutak prve objave: samostalne stavke unesene prije sljedeće objave opet su početna ponuda. Dosad je trenutak prve objave ostajao i nakon brisanja svih objava, pa su samostalne stavke unesene nakon probne objave pri prvoj sljedećoj objavi dobivale datum te objave i trenutnu cijenu kao dodatnu. Ako bi neka samostalna stavka uz vraćeni trenutak ostala bez dodatne cijene, pregled je navodi, a brisanje se odbija, bez kvačice i uz nju. Datume i dodatne cijene koje su stavke već dobile pri ranijim objavama ni nadogradnja ni brisanje ne mijenjaju; to vrijedi i za instalacije koje su probne objave obrisale prije ove verzije (provjerite ih u Stavke cjenika > Provjera stavki).
* Novo (sve instalacije, objava cjenika): prekidač „Objava cjenika” u Postavkama (odjeljak „Objava cjenika i automatika”), zadano uključen; isključivanje traži upisanu potvrdu. Dok je objava isključena, javne adrese cjenika vraćaju „stranica ne postoji” (404), stranica „Objava cjenika” ne prikazuje popis cjenika, a dodatak ne objavljuje nove cjenike (ni automatski, ni ručno, ni WP-CLI-jem) i ne šalje e-mailove o propuštenom roku. Prekidač ništa ne briše, a bilježenje cijena i prikaz u trgovini rade i dalje. Na Pregledu i na ostalim ekranima dodatka stoji upozorenje da cjenik nije javno dostupan i da trgovac koji ima obvezu objave cjenika tu obvezu tada ovim dodatkom ne ispunjava. Nakon ponovnog uključivanja opet su dostupne trenutne objave i ranije objave koje dodatak još čuva (zamijenjenu objavu 30 dana od dana zamjene). Nakon nadogradnje objava je uključena, kao dosad.
* Popravak (sve instalacije, najniža cijena u 30 dana prije sniženja): nakon ponovne aktivacije dodatka ili povratka WooCommercea cijena zabilježena prije tog prekida više ne odlučuje da akcija nije sniženje kad je dodatak pri ponovnom bilježenju cijena svih stavki zatekao drugu cijenu ili akciju. Dok dodatak ili WooCommerce nije radio, cijena se mogla promijeniti, pa je izračun mogao biti prenizak. Primjer: ranija akcija 50, nakon prekida redovna cijena 100, nova akcija 80; takva akcija dosad je bila „nije sniženje” (u cjeniku NE, bez oznake sniženja). Sada se vodi kao sniženje s nepotpunim zapisima (DA), a iznos se računa iz cijena zabilježenih u 30 dana prije sniženja, pa može biti previsok; Provjera stavki traži provjeru. Kao i dosad vrijedi kad je to bilježenje zateklo istu cijenu, kad je dodatak deaktiviran nakon početka razdoblja od 30 dana (trenutak deaktivacije dodatak bilježi od 1.2.0) i za prekide prije 1.1.0. Kad trenutak prekida nije poznat (npr. povratak WooCommercea, prekidi pod 1.1.x), dodatak pretpostavlja da je prekid počeo prije razdoblja od 30 dana, pa akciju koja bi inače bila NE može voditi kao sniženje s nepotpunim zapisima (DA), a Provjera stavki traži provjeru.
* Popravak (sve instalacije, najniža cijena u 30 dana prije sniženja): ponovna aktivacija dok dodatak još nije dovršio bilježenje cijena svih stavki sada to bilježenje pokreće ispočetka, kao i nakon dovršenog. Dosad su se zapisi tada smatrali potpunima od starog početka bilježenja, pa je akcija proizvoda prvi put zabilježenog nakon aktivacije mogla biti akcija bez zabilježene ranije cijene (u cjeniku NE), a akcija proizvoda s ranijim zapisima sniženje s potpunim zapisima, iako dok dodatak nije radio ništa nije zabilježeno. Na multisiteu se uz mrežnu deaktivaciju trenutak deaktivacije bilježi za svako web-mjesto.
* Popravak (sve instalacije, Provjera stavki): zapis kojim počinje akcija, a nastao je dok je dodatak bilježio cijene svih stavki (objava cjenika, spremanje proizvoda ili dnevni prolaz između serija tog bilježenja), vodi se kao zapis iz tog bilježenja. Proizvod bez ranijih zapisa tada dobiva prijedlog redovne cijene kao najniže, a izjava uz izračun ne navodi razdoblje do zabilježenog početka akcije. Iznimka je proizvod objavljen nakon deaktivacije dodatka (kad trenutak deaktivacije nije poznat: nakon početka bilježenja cijena): bez prijedloga, uz poruku da zapis stavke počinje odmah s akcijskom cijenom; samostalna stavka unesena nakon deaktivacije dobiva poruku da zapis stavke počinje odmah na akciji, uz uputu o kvačici „Primijenjen je poseban oblik prodaje” (samostalna stavka nema zasebnu akcijsku cijenu). Akcija koju je to bilježenje zateklo, a stavka ima ranije zapise iz kojih se najniža cijena ne može izračunati, nema prijedlog (ručni upis). Cjenik i trgovina se ne mijenjaju.
* Popravak (sve instalacije, Provjera stavki): na mobitelu (zaslon do 782 px) pod filtrom „Najniža cijena: za provjeru” uz stavku se vide najniža cijena i radnja, pa se stavka može potvrditi i pojedinačno; dosad je radnja bila skrivena, pa je ostajala samo skupna potvrda. Na ekranu potvrde tablica se na uskom zaslonu pomiče unutar svog okvira, a stranica se više ne pomiče vodoravno.
* Promjena (sve instalacije, Pregled i Kontrolna lista): napomena „Bilježenje cijena” prikazuje se otvoreno dok zapisi ne pokrivaju svih 30 dana prije sniženja; dosad je na Pregledu bila u zatvorenom retku „provjera u redu”, a Kontrolna lista je nije prikazivala. Nakon ponovne aktivacije dodatka ili povratka WooCommercea napomena navodi kada je dodatak ponovno zabilježio sve stavke i da zapisa iz vremena prekida nema, a kad je poznato, i kada je dodatak deaktiviran.
* Tekstovi (sve instalacije, najniža cijena u 30 dana prije sniženja, postavljanje cjenika i opis polja „Sidrena cijena”): uz izračun iz nepotpunih zapisa opis sniženja, upozorenje uz stavku i obavijest navode da iznos može biti previsok, a nakon prekida bilježenja i prenizak. Za WooCommerce uslugu koju je dodatak prvi put zabilježio odmah s akcijskom cijenom opis sniženja, upozorenje i stupac u Provjeri stavki kažu da najnižu cijenu možete upisati ručno, kao radnja uz stavku od 1.1.0; poveznica uz WooCommerce uslugu glasi „Ručni upis”, a obavijest i provjera „Akcije i sniženja” (Pregled i Kontrolna lista) upućuju na Provjeru stavki, gdje uz svaku stavku piše što možete napraviti. Uz prijedlog redovne cijene kao najniže piše „Zabilježena redovna cijena (datum): iznos.” i uputa: ako to nije najniža cijena po kojoj ste stavku nudili u 30 dana prije akcije, ne potvrđujte, nego najnižu cijenu upišite ručno (za WooCommerce uslugu: možete je upisati), a ako je u tom razdoblju niste nudili ni po jednoj cijeni višoj od akcijske, po propisu to nije akcija; uz radnju je i poveznica za ručni upis, a ekran potvrde upućuje da tada potvrdu ne spremate. Izjava kaže „Zapis ove akcije počinje …” umjesto „Dodatak ovu akciju bilježi od …”, a poruka uz stavku koju je dodatak prvi put zabilježio odmah na akciji „Zapis ove stavke počinje …” umjesto „Dodatak je ovu stavku prvi put zabilježio …”, jer zapis može nositi početak akcije iz WooCommercea, iz vremena kad dodatak nije radio. Ta poruka uvjet navodi s razdobljem: „Ako je u 30 dana prije akcije niste nudili ni po jednoj cijeni višoj od akcijske, …” umjesto „Ako je niste nudili po višoj cijeni, …”. Kad dodatak ne može predložiti iznos, poruka navodi i slučaj u kojem se iz ranijih zapisa najniža cijena ne može izračunati. Završni ekran postavljanja cjenika kaže da će cjenik objaviti automatika ako je uključena, a korak 4 da uključena automatika prvi cjenik može objaviti i prije provjere u koraku 5: cjenik usluga već nakon koraka 4, a cjenik robe u zadano vrijeme dnevne objave (ako je današnje već prošlo, odmah); za uključivanje automatike nakon prve objave upućuje na kućicu „Automatika objave uključena” u postavkama. Opis polja „Sidrena cijena” navodi referentni datum stavke: zadani, za proizvode s dodatnom cijenom od 2. svibnja 2025. taj dan, a za stavku koja je u ponudu ušla kasnije prvi dan u ponudi. Upozorenje uz objavu sa stavkama bez obaveznog polja upućuje na Stavke cjenika > Provjera stavki (filtar „Blokira potpunu objavu”), a ne više na „Pregled svih stavki” (kartica se ranije zvala „Pregled svih stavki cjenika”). Navodnici u tekstovima na ekranima dodatka i u ovom opisu su „…”, osim uz tehničke vrijednosti (npr. zaglavlja i naredbe).

= 1.1.1 =
* Popravak (sve instalacije, licenca): kad se ista instalacija otvori pod drugom adresom (npr. privremenom adresom hostinga), dodatak licencu provjerava prema glavnoj adresi web-mjesta iz postavki WordPressa (Postavke > Općenito, odnosno WP_HOME u wp-config.php), a ne prema adresi pod kojom je stranica otvorena. Dosad aktivacijski kôd za glavnu domenu pod drugom adresom nije vrijedio: dodatak je ondje javljao probnu verziju (nakon njezina isteka zaključan rad), slao e-mail o probnoj verziji s poveznicama na tu adresu, a zahtjev u administraciji pod tom adresom brisao je tjednu evidenciju i dnevnu provjeru licence (zakazivao ih je ponovno sljedeći zahtjev u administraciji pod glavnom adresom). U zahtjevu pod drugom adresom automatska objava se nije izvodila; cjenik je objavljivao sljedeći prolaz automatike pod glavnom adresom. Postojeće aktivacije ostaju valjane: kôd potpisan za adresu pod kojom je stranica otvorena i dalje vrijedi pod tom adresom. Novi unos koda provjerava se prema glavnoj adresi, a ista se domena prikazuje u obrascu „Zatraži aktivaciju”. Evidencija aktivacije, ishod dnevnog generiranja i dnevna provjera licence šalju domenu za koju je kôd potpisan.
* Promjena (sve instalacije, e-mail obavijesti): e-mailovi dodatka (cjenik robe ili usluga nije objavljen, automatska objava se ne pokreće, licenca i probna verzija) više nemaju poveznica na administraciju. Svaka uputa navodi put kroz izbornik, a uz „Pregled stanja” stoji da je izbornik „Cjenik” u administraciji WordPressa, nakon prijave. Dosad su poveznice na /wp-admin/ odjavljenom vlasniku uz dodatak koji skriva prijavu (npr. WPS Hide Login) vodile na stranicu koja ne postoji, a pod drugom adresom iste instalacije na tu adresu. E-mail o licenci i probnoj verziji navodi i obrazac za upit na mp-dizajn.com i e-mail podrške. Predmet i potpis e-maila nose glavnu domenu web-mjesta. Probni e-mail se ne mijenja.

= 1.1.0 =
* Poboljšanje (sve instalacije, kanal nadogradnji): nova verzija stiže brže. Pri WordPressovoj provjeri automatskih ažuriranja (po WordPressovu rasporedu dvaput dnevno; uz izmijenjen, češći raspored te provjere kao dosad) dodatak opis izdanja dohvaća svjež kad je stariji od sat vremena (dosad je mogao biti star do 12 sati), a kad je u njemu novija verzija, WordPress odmah ponovno provjerava dodatke; „Ponovno provjeri.” u Nadzorna ploča > Ažuriranja dohvaća opis izdanja odmah (najviše jednom u 5 minuta). Opis izdanja i dalje se dohvaća u pravilu najviše dvaput dnevno, a nakon neuspjele provjere najranije za sat vremena; neuspjeli dohvat ne zamjenjuje ispravan opis izdanja. Između 05:30 i 08:15 i dok je objava cjenika u tijeku dodatak se i dalje ne ažurira automatski. Najdulje čekanje od objave do automatske instalacije skraćuje se s oko 36 na oko 25 sati; djeluje od 1.1.0, pa do 1.1.0 nadogradnja stiže kao dosad.
* Novo (sve instalacije, Provjera stavki): filtar „Najniža cijena: za provjeru” za stavke na akciji kojima najniža cijena u 30 dana prije sniženja nije poznata ili je izračunata iz nepotpunih zapisa (bez lako pokvarljive robe). Iznos se može potvrditi pojedinačno ili skupno za odabrane stavke na stranici popisa: za akciju koja je već trajala kad je dodatak bilježio sve stavke (uz WooCommerce) redovna cijena koju je tada zabilježio, a za izračun iz nepotpunih zapisa taj izračun. Kad se zabilježena redovna cijena razlikuje od današnje, prikazuju se obje i stavka se potvrđuje samo pojedinačno. Potvrda traži označenu izjavu, sprema se kao ručni upis s korisnikom i vremenom i vrijedi samo za tu akciju; sniženje koje se u međuvremenu promijenilo se preskače. Proizvod koji je dodatak prvi put zabilježio kasnije, odmah s akcijskom cijenom, nema potvrde: ako ga niste nudili po višoj cijeni, po propisu to nije akcija i akcijsku cijenu treba ukloniti, a ako jeste, najnižu cijenu upisujete ručno (za WooCommerce uslugu je možete upisati), kao i za samostalnu stavku bez zapisa. U trgovini se mijenja samo ono što mijenja ručni upis.
* Novo (sve instalacije, administracija): obavijest korisnicima s ovlašću dodatka koliko stavki na akciji nema poznatu najnižu cijenu u 30 dana prije sniženja ili je ona izračunata iz nepotpunih zapisa, s poveznicom na Provjeru stavki. Može se zatvoriti; ponovno se prikazuje kad se broj poveća.
* Popravak (sve instalacije, najniža cijena u 30 dana prije sniženja): nakon ponovne aktivacije dodatka i nakon povratka WooCommercea (kad je dodatak sve stavke prvi put bilježio bez njega) dodatak ponovno bilježi sve stavke, a zapisa iz vremena dok dodatak ili WooCommerce nije radio nema. Sniženje koje to bilježenje zatekne (počelo je u tom vremenu) ili koje počne dok ono traje sada se vodi kao sniženje s nepotpunim zapisima: uz raniju zabilježenu cijenu s izračunom koji ne mora biti točan, bez nje bez iznosa, pa Provjera stavki, Pregled i Kontrolna lista traže provjeru. U cjeniku je takva akcija „Poseban oblik prodaje” DA (i proizvod nakon povratka WooCommercea), a u trgovini ima oznaku sniženja; redak najniže cijene bez iznosa se ne prikazuje dok je ne upišete ili potvrdite. Dosad je dobivala izračun kao da su zapisi potpuni, bez upozorenja, a proizvod nakon povratka WooCommercea vodio se kao akcija bez zabilježene ranije cijene (u cjeniku NE). Bez izmjene ostaje pravilo za akciju čija cijena nije niža od izračunate najniže cijene u 30 dana prije sniženja: dodatak je ne vodi kao sniženje (u cjeniku „Poseban oblik prodaje” NE, u trgovini bez oznake sniženja). Ako izračun potječe iz cijene zabilježene prije nego što je dodatak bio isključen, a ta cijena u 30 dana prije sniženja više nije vrijedila, upišite najnižu cijenu ručno; ručni upis ima prednost pred izračunom. Kao i dosad, zapisi pokrivaju svih 30 dana tek 30 dana nakon završetka tog bilježenja. Sniženja zabilježena prije nadogradnje ostaju kako su izračunata: ako ste nakon nadogradnje na 1.0.0 dodatak deaktivirali i ponovno aktivirali ili ponovno uključili WooCommerce, a akcija iz tog vremena još traje, provjerite njezinu najnižu cijenu na proizvodu i po potrebi je upišite ručno.
* Poboljšanje (sve instalacije): dnevno bilježenje cijena i početno bilježenje cijena svih stavki podižu memorijski limit gdje hosting to dopušta (WP_MAX_MEMORY_LIMIT), kao Provjera stavki; veličina serije ostaje ista.
* Popravak (uz WooCommerce, prikaz u trgovini): grupirani proizvod uz svoju cijenu sada ima dodatnu cijenu, najnižu cijenu u 30 dana prije sniženja i oznaku sniženja prema proizvodima u grupi, kao varijabilni proizvod. Dodatna i najniža cijena odnose se na iste proizvode iz kojih WooCommerce slaže raspon cijena (za varijabilni proizvod u grupi to je njegova najjeftinija varijacija, a za grupirani proizvod u grupi njegova najjeftinija stavka), a oznaka „Akcija!” („Sale”) ostaje samo kad je bar jedan proizvod u grupi na sniženju po propisu. Dodatna cijena proizvoda u grupi prikazuje se prema njegovoj kvačici „Prikaži sidrenu cijenu”. Na stranici za uređivanje grupiranog proizvoda u kartici „Povezani proizvodi” nalazi se kratak sažetak: koliko je proizvoda u grupi na akciji, koliko ih nema oznaku sniženja (po propisu nije sniženje ili nema zabilježene ranije cijene) i kolikima najniža cijena nije poznata. Dosad uz grupirani proizvod nije bilo ni dodatne ni najniže cijene, a oznaka je ostajala uz svaku akciju.
* Promjena (uz WooCommerce, prikaz u trgovini): dodatna cijena varijabilnog i grupiranog proizvoda prikazuje se s datumom; kad varijacije ili proizvodi u grupi imaju različite datume, iznosi se prikazuju po datumu, svaka skupina sa svojom oznakom (pojašnjenja Ministarstva gospodarstva, t. 1.1 i 1.3). Proizvod ili varijacija bez datuma (ni vlastitog ni nadređenog proizvoda) ili s datumom koji dodatak ne prepoznaje u trgovini ima isti datum kao u cjeniku (02.05.2025. za proizvode s dodatnom cijenom od 2. svibnja 2025., inače referentni datum iz postavki); Provjera stavki takvu stavku navodi kao preporuku i uz datum koji ne prepoznaje. Dosad je raspon varijabilnog proizvoda bio bez datuma (osim kad je datum upisan na nadređenom proizvodu), a dodatna cijena proizvoda bez datuma bila je u trgovini bez datuma (npr. „Sidrena cijena: 12,00 €”), dok ju je cjenik objavljivao s datumom.
* Novo (uz WooCommerce, Kontrolna lista i Pregled): provjera „Cijene u blokovima trgovine”. Upozorenje kad blok „Svi proizvodi” koristi objavljena stranica, objava, uzorak, izbornik, predložak ili dio predloška aktivne teme (s nazivom) ili widget: uz njega dodatak ne može prikazati dodatnu cijenu (Odluka o isticanju dodatne cijene, t. II.), najnižu cijenu u 30 dana prije sniženja ni cijenu za jedinicu mjere. Uz blokove „Svi proizvodi”, Košarica, Blagajna i Mini-košarica savjet o dodatku za optimizaciju koji uklanja nekorišteni CSS; WP Rocket i LiteSpeed Cache s tom postavkom dodatak prepoznaje.
* Novo (sve instalacije, Kontrolna lista i Pregled): upozorenje „Bilježenje cijena kasni” kad početno bilježenje cijena svih stavki nije završeno 24 sata nakon početka ili kad je zadnje dovršeno dnevno bilježenje starije od 36 sati (a novo nije u tijeku), i to samo kad je uzrok utvrđen, s uputom: zakazani zadaci WordPressa se pokreću, ali bilježenje ne završava; uz cron poslužitelja (DISABLE_WP_CRON) zakazani zadaci kasne više od 2 sata; uz WP-Cron preko posjeta posjet je zatekao zakazani zadatak dodatka na čekanju, a WordPress ga ni nakon 60 minuta nije pokrenuo (dulje razdoblje bez posjeta nije kvar). Bez dnevnog bilježenja dodatak promjene cijena koje ne prođu kroz spremanje proizvoda ili stavke bilježi samo pri objavi cjenika, pa najniža cijena u 30 dana prije sniženja može biti netočna.
* Popravak (uz WooCommerce, prikaz u trgovini): pravila stila kojima dodatak u blokovima Košarica, Blagajna, Mini-košarica i „Svi proizvodi” skriva prekriženu cijenu, oznaku uštede i oznaku „Sale” ispisuju se i kao umetnuti stil na stranici, koji dodatak dodacima WP Rocket i LiteSpeed Cache prijavljuje kao iznimku pri uklanjanju nekorištenog CSS-a. Uklanjanje nekorištenog CSS-a ta je pravila moglo izbaciti iz datoteke stila dodatka, pa bi se prekrižena cijena i oznaka uštede ponovno prikazale; uz te dodatke provjerite košaricu, blagajnu i mini-košaricu. Nakon nadogradnje očistite predmemoriju stranica: stranice spremljene prije nje nemaju umetnuti stil.
* Popravak (uz WooCommerce, prikaz u trgovini): ako uklanjanje oznake „Sale” iz bloka „Slika proizvoda” ili iz stavke starijeg bloka mreže proizvoda ne uspije (npr. uz neuobičajeno dugu oznaku ili strožu postavku PHP-a na poslužitelju), slika i stavka ostaju na stranici, a oznaka može ostati. Dosad bi nestale.

= 1.0.1 =
* Popravak (uz WooCommerce, prikaz u trgovini): u blokovima Košarica, Blagajna (sažetak narudžbe) i Mini-košarica proizvod na akciji više nema prekriženu redovnu cijenu ni oznaku uštede („Save …”, u hrvatskom sučelju „Uštedi …”, u WooCommerceu 8 „Spremi …”), nego samo cijenu koju kupac plaća, i uz cijenu komada i uz iznos stavke, kao na stranici proizvoda i u popisima (Zakon o zaštiti potrošača, čl. 7. st. 2. i čl. 19. st. 4.; presuda Suda EU C-330/23). Dosad su ti blokovi prikazivali prekriženu redovnu cijenu i uštedu izračunatu od nje, i kad akcija po propisu nije sniženje. Isto vrijedi za cijene u bloku „Svi proizvodi” i u unakrsnoj prodaji bloka Košarica; ondje se skriva i oznaka „Sale”, jer uz te kartice redak najniže cijene ne može stajati. U tim blokovima ne prikazuje se ni popust koji stavci košarice daje drugi dodatak. Samo prikaz (stil dodatka): cijene, zbrojevi, porezi, kuponi i podaci Store API-ja se ne mijenjaju. Bez nove postavke i bez nadogradnje baze. Uz stavke u košarici, blagajni i mini-košarici (klasičnim i u blokovima) dodatak i dalje ne prikazuje dodatnu cijenu, najnižu cijenu ni cijenu za jedinicu mjere (vidi „Što dodatak ne pokriva?”).
* Popravak (uz WooCommerce, prikaz u trgovini): u starijim blokovima mreže proizvoda („Proizvodi na akciji”, „Ručno izabrani proizvodi”, „Najnoviji proizvodi”, „Proizvodi po kategoriji” i drugi) i u „Novo u trgovini” u praznoj košarici oznaka „Sale” (u hrvatskom sučelju „Akcija”, u WooCommerceu 8 „Sniženje”) ne prikazuje se kad akcija po propisu nije sniženje, kao oznaka „Akcija!” u klasičnim popisima (presuda Suda EU C-330/23); oznaka ostaje samo uz grupirani proizvod, čim je neki njegov dio na akciji (vidi „Što dodatak ne pokriva?”). Dosad su ti blokovi oznaku prikazivali uz svaku akciju, mimo pravila dodatka. Cijena i retci ispod nje se ne mijenjaju.

= 1.0.0 =
* Novo (uz WooCommerce): najniža cijena u 30 dana prije sniženja (Zakon o zaštiti potrošača, čl. 19. st. 4.). Dok je proizvod na sniženju, ispod cijene je redak „Najniža cijena u 30 dana prije sniženja: …” (varijabilni proizvod: raspon varijacija na sniženju), prije dodatne cijene; ne ovisi o postavci prikaza dodatne cijene. Računa se jednom, pri početku sniženja, iz cijena koje dodatak bilježi od 0.9.16: najmanja cijena koju ste primjenjivali od 00:00 dana 30 dana prije sniženja do njegova početka. Svako daljnje sniženje akcije je novo sniženje s vlastitom najnižom cijenom; uz rasprodaju i sezonsko sniženje niža cijena bez prekida nastavlja isto sniženje, ako je ono po propisu sniženje (inače sniženje počinje prvom cijenom nižom od najniže u 30 dana prije nje), a za WooCommerce usluge svaka niža cijena je novo sniženje. Cijene zabilježene prije 0.9.16 uz cijene unesene bez PDV-a uračunavaju se s PDV-om po sadašnjoj stopi. Za lako pokvarljivu robu redak se ne prikazuje (čl. 19. st. 5.). Najniža cijena ne ide u cjenik.
* Novo (uz WooCommerce): dok je proizvod na akciji, trgovina ne prikazuje prekriženu redovnu cijenu, nego samo cijenu koju kupac plaća (čl. 7. st. 2. i čl. 19. st. 4.). Oznaka sniženja („Akcija!”, „Sale!”, blokovi „Product Sale Badge” i „Product Image”) ne prikazuje se kad po propisu to nije sniženje (presuda Suda EU C-330/23).
* Promjena (sve instalacije, sadržaj cjenika): akcija čija cijena nije niža od najniže u 30 dana prije sniženja po propisu nije poseban oblik prodaje (čl. 19. st. 1., čl. 20.), a dodatak isto vodi i akciju proizvoda bez zabilježene ranije cijene. U cjeniku je tada „Poseban oblik prodaje” NE, bez naziva, s cijenom koja se naplaćuje i cijenom za jedinicu mjere, uz upozorenje u Provjeri stavki. Izvoz stavki za uređivanje i dalje nosi spremljeni poseban oblik i naziv.
* Novo (sve instalacije): na proizvodu, varijaciji i samostalnoj stavci na akciji okvir sa stanjem sniženja i polje za ručni upis najniže cijene, koji ima prednost pred izračunom; stupac najniže cijene u Stavkama cjenika i Provjeri stavki. Kad zapisi ne pokrivaju svih 30 dana (prvih 30 dana bilježenja), Provjera stavki, Pregled i Kontrolna lista traže provjeru i ručni upis. Kontrolna lista upozorava i kad trgovina prikazuje cijene bez PDV-a, kad je uključen dodatak koji možda i sam prikazuje najnižu cijenu i kad bilježenje cijena ne radi.
* Novo (sve instalacije): cijena za jedinicu mjere iz neto količine i jedinice (g, kg, ml, l, m, m², m³, kom), upisanih na proizvodu, varijaciji, u Brzoj izmjeni ili u obrascu samostalne stavke; 2 decimale, pola naviše. U cjeniku "16.63/kg" (CSV) i atribut jedinica (XML); uz sniženje se ne iskazuje (kao dosad), a jednaka maloprodajnoj cijeni upisuje se. Uz WooCommerce ispod cijene „Cijena za jedinicu mjere: 16,63 €/kg”, dok proizvod nije na sniženju i kad nije jednaka cijeni. Samostalna stavka bez neto količine zadržava upisani iznos. Postavka kategorija za koje se ističe; Kontrolna lista i Pregled navode proizvode bez neto količine i s neispravnom.
* Novo (sve instalacije): izvoz stavki za uređivanje ima stupce „Neto količina” i „Jedinica neto količine”, a uvoz ih primjenjuje (i na WooCommerce proizvodu) i čita cijenu za jedinicu mjere s jedinicom.
* Novo: kratki kodovi `[mpgc-najniza-30]` i `[mpgc-cjm]` te funkcije `mpgc_najniza_cijena_30()` i `mpgc_cijena_jm()`.
* Popravak (instalacije koje koriste izvoz i uvoz stavki): uvoz vlastitog izvoza više ne upisuje zadani naziv akcije iz postavki ni naziv nadređenog proizvoda na proizvod, varijaciju ili stavku bez vlastitog naziva.
* Popravak (uz WooCommerce, sadržaj cjenika): maloprodajna i dodatna cijena u cjeniku, povijest cijena i najniža cijena računaju se s PDV-om po stopi za adresu trgovine (WooCommerce → Postavke → Općenito), neovisno o tome koji je kupac upravo u trgovini. Dosad su uz cijene unesene bez PDV-a, porez po adresi kupca i zadanu lokaciju kupca „Geolociraj” ili „Bez lokacije” objava (automatska i ručna), Provjera stavki i spremanje u administraciji davali cijene bez PDV-a, a kupac iz inozemstva ili oslobođen PDV-a mijenjao je zabilježenu cijenu kad WooCommerce na blagajni sprema proizvod. Cijene koje je 0.9.16 prije nadogradnje zabilježio drukčije za najnižu cijenu, „Poseban oblik prodaje” (DA/NE) i oznaku sniženja računaju se po sadašnjoj stopi za adresu trgovine, pa se akcija koja traje preko nadogradnje nastavlja. Cijena za jedinicu mjere uz cijenu u trgovini prati cijenu koju kupac vidi. Kontrolna lista upozorava kad za adresu trgovine nema stope PDV-a.
* Nadogradnja (migracija 15): tablica sniženja dobiva stupac snižene cijene, a samostalne stavke stupce neto količine. Stavka koja je pri nadogradnji na akciji dobiva zapis o sniženju pri početnoj snimci cijena nakon nadogradnje ili, ako ga tada ne dobije, pri sljedećem dnevnom prolazu, objavi, spremanju ili ručnom upisu; dotad se najniža cijena računa iz zabilježenih cijena.

= 0.9.16 =
* Novo (sve instalacije): dodatak bilježi cijenu koju kupac plaća (i akcijsku), redovnu cijenu, je li proizvod na akciji te naziv i vrstu posebnog oblika prodaje — pri spremanju proizvoda i stavki, pri svakoj objavi cjenika i u dnevnom prolazu u 00:30 po hrvatskom vremenu, i bez uključene automatike i uz isteklu licencu (bilježenje nije objava). Iz tih zapisa najnižu cijenu u 30 dana prije sniženja (Zakon o zaštiti potrošača, čl. 19.) računat će 1.0.0. Cijena 0 se ne bilježi; zapis počinje kad stavka dobije cijenu. Pri nadogradnji se sve stavke jednom zabilježe u pozadini, u serijama. U trgovini i u cjeniku se ništa ne mijenja.
* Popravak (instalacije bez uključene automatike ili s isteklom licencom): objave kojima je istekao rok dostupnosti sada se brišu s diska i iz zapisnika objava i bez automatike i uz isteklu licencu (dnevni prolaz, tako da se ne preklapa s objavom). Javno se ni dosad nisu prikazivale ni posluživale, ali su datoteke ostajale zauvijek. U prvom dnevnom prolazu nakon nadogradnje brišu se sve takve ranije objave; pravila brisanja se ne mijenjaju.
* Novo (sve instalacije): vrsta posebnog oblika prodaje — Akcija (zadano), Rasprodaja, Sezonsko sniženje, a za samostalne stavke i Pokvarljivo postupno sniženje (samo uz oznaku lako pokvarljive robe; za web trgovinu ne vrijedi). Vrstu birate na proizvodu, varijaciji ili stavci, a zadanu u Postavkama. U 0.9.16 vrsta se samo bilježi uz cijene; pri izračunu najniže cijene koristi je 1.0.0. Cjenik se ne mijenja.
* Novo (sve instalacije): oznaka lako pokvarljive robe na proizvodu, varijaciji i samostalnoj stavci. U Postavkama se kategorije hrane samo predlažu; vrijede tek kad ih označite i spremite. U 0.9.16 oznaka se samo sprema; koristi je 1.0.0.
* Promjena (sve instalacije): čišćenje povijesti cijena radi i bez uključene automatike i uz isteklu licencu; zapisi proizvoda koji je na akciji čuvaju se dok akcija traje, i kad traje dulje od 40 dana. Trajno brisanje WooCommerce proizvoda ili varijacije briše i povijest cijena tog proizvoda ili varijacije, kao i dosad brisanje samostalne stavke (premještanje u smeće je ne briše).
* Tekstovi (sve instalacije): Kontrolna lista i Pregled („Bilježenje cijena”) opisuju što se bilježi i od kada zapisi pokrivaju svih 30 dana prije sniženja (umjesto ranije tvrdnje o punoj 30-dnevnoj povijesti); FAQ „Što ako licenca istekne?” usklađen s tekstom na sajtu; FAQ o probnoj verziji kaže da se zamijenjene objave nakon 30 dana brišu i nakon isteka probne verzije ili licence.
* Tekstovi (instalacije bez WooCommercea): u Postavkama upute za proizvode s dodatnom cijenom od 2. svibnja 2025. i za lako pokvarljivu robu vode na obrazac stavke, umjesto na WooCommerce kategorije kojih nema.

= 0.9.15 =
* Popravak (sve instalacije s jednim cjenikom): gumb „Generiraj cjenik sada” (Stavke cjenika > Službeni cjenik) i naredba "wp mpgc generiraj" objavu sada odmah upisuju u zapisnik objava, s izvorom „ručno”, točnim vremenom i sažetkom sadržaja cjenika, isto kao „Generiraj sada” (roba uz stanje dana, ponovne pokušaje i status, usluge samo kad se razlikuju od zadnje objave). Dosad ju je uz jedan cjenik dodatak upisivao tek naknadno, s vremenom zaokruženim na minutu, a uz format samo XML sa sažetkom XML datoteke. Zbog toga su se usluge pri sljedećoj provjeri ponovno objavljivale s novim brojem i istim sadržajem, „Objavi i završi” u čarobnjaku ponovno je objavljivao nepromijenjenu robu, a nakon neuspjelog jutarnjeg pokušaja i ručne objave automatika je robu objavljivala još jednom. Ako se usluge nisu promijenile, gumb i naredba sada javljaju da je isti cjenik usluga već objavljen; bez usluga ili bez poslovnih podataka javljaju razlog, kao dosad. Uz više poslovnica "wp mpgc generiraj" za nepostojeću poslovnicu (--poslovnica) javlja grešku i ništa ne objavljuje (dosad je objavljivao cjenik iz postavki), a status objave robe šalje se jednom, nakon svih poslovnica.
* Popravak (sve instalacije): promjena formata objave (CSV, XML ili oba) više ne ostavlja robu bez trenutnog cjenika. Roba se u novom formatu objavljuje sa sljedećom dnevnom objavom, kao i dosad (automatika je zbog promjene formata ne objavljuje drugi put u danu), ili odmah ručnom objavom („Generiraj sada”, „Generiraj cjenik sada”, "wp mpgc generiraj"); usluge kao dosad pri sljedećoj provjeri. Dotad stalne adrese poslužuju trenutni cjenik u formatu koji stvarno postoji, a stranica „Objava cjenika” i HTML stranica cjenika navode formate prema objavljenim datotekama, ne prema postavci (dok roba i usluge imaju različite formate, uvod stranice kaže da je oblik naveden uz svaki cjenik). Adresa u novom formatu do tada javlja da cjenik u tom formatu još nije objavljen i u kojem je formatu dostupan. Opisi postavke „Format objave” (postavke i čarobnjak) to navode. Dosad su pri prelasku s jednog formata na drugi (CSV ↔ XML) do sljedeće objave robe obje stalne adrese robe vraćale grešku, a pri dodavanju formata adresa novog formata, na koju je vodila i stranica „Objava cjenika”.
* Promjena (instalacije na kojima se nadogradnje ne instaliraju same): kad u kanalu nadogradnji čeka novija verzija, a WordPress je ne može instalirati sam (isključena automatska ažuriranja, npr. postavka hostinga, FTP podaci, DISALLOW_FILE_MODS, multisite, sustav verzija ili zakazani zadaci koji ne rade), Pregled to javlja istaknutim upozorenjem s brojem te verzije i uputom prema razlogu: ručna nadogradnja u Nadzorna ploča > Ažuriranja ili preuzimanje ZIP-a (poveznica u upozorenju) i zamjena postojećeg dodatka. Dok novija verzija ne čeka, obavijest iz 0.9.14 o tome zašto se nadogradnje ne instaliraju same ostaje, kao neistaknuta informacija. Verzija se čita iz WordPressove provjere nadogradnji, bez dodatnog dohvata s mreže; e-mail se ne šalje.
* Popravak (instalacije s paketom Više poslovnica): kraj cjenika poslovnice ili jednog cjenika (brisanje poslovnice, uključivanje ili isključivanje više poslovnica) sada se računa kao zamjena. Zadnje objave takvog cjenika ostaju dostupne i navedene na stranici „Objava cjenika” i na HTML stranici cjenika još 30 dana od dana brisanja odnosno promjene, a ranije objave 30 dana od dana zamjene, kao svaka zamijenjena objava; navode se ispod trenutnih cjenika pod naslovom „Ranije objave: <adresa> (oznaka objekta …)”, odnosno „Ranije objave: zajednički cjenik, prije objave po poslovnicama”. Dosad (0.9.14, „Iznimka, kao dosad”) zadnja objava takvog cjenika čuvala se samo do kraja 30. dana nakon dana svoje objave i više se nije navodila na stranici, pa je cjenik koji je bio trenutni dulje od 30 dana (npr. usluge bez promjena) nestajao odmah pri brisanju poslovnice ili promjeni. Za poslovnice obrisane i promjene načina rada prije nadogradnje kao dan kraja računa se dan nadogradnje, za objave koje do nadogradnje po dosadašnjem pravilu još nisu istekle; istekle ostaju nedostupne. Deinstalacija uz MPGC_REMOVE_ALL_DATA briše i zapis kraja tih cjenika. Potvrda prije brisanja poslovnice, poruka nakon brisanja i napomena uz prekidač „Više poslovnica” (postavke i čarobnjak) to navode.
* Promjena (instalacije sa stavkama iz uvoza do 0.9.12 koje čekaju potvrdu): u popisu „Stavke iz uvoza koje čekaju potvrdu” (Stavke cjenika > Izvoz / uvoz (CSV)) uz svaku stavku je poveznica „Uredi” na njezin obrazac, u kojem se stavka pojedinačno dopunjuje i potvrđuje (kvačica „Aktivno”).
* Popravak (sve instalacije): uz izdanje ispravaka WordPressa (npr. 7.1.2) Nadzorna ploča > Ažuriranja i „Prikaži detalje” uz novu verziju MP Generator Cjenika više ne javljaju da dodatak nije testiran („Not tested”) kad "Tested up to" navodi istu verziju X.Y (npr. 7.1 uz WordPress 7.1.2). Kao na wordpress.org, verzija iz "Tested up to" vrijedi za sva izdanja ispravaka. Prikaz se ispravlja od ponude sljedeće verzije nakon 0.9.15; instalirane verzije 0.9.11–0.9.14 ponudu za 0.9.15 prikazuju kao dosad.
* Tekstovi (sve instalacije): uz „NN 101/2026” navodi se i izmjena „NN 110/2026” (obje odluke stupaju na snagu 17.11.2026. umjesto 1.10.2026.) u napomenama uz polja, na stranici „Objava cjenika” i u opisu dodatka; tekst uvjeta korištenja nije mijenjan (odluke navodi po izvornoj objavi, pa ih ne treba ponovno prihvatiti). Rok 8:00 navodi se kao rok iz Odluke o objavi cjenika (dosad „zakonski rok”). Uputa u koraku 2 čarobnjaka opisuje kako proizvodi s dodatnom cijenom od 2. svibnja 2025. dobivaju svoj datum (dosad je tvrdila da ih dodatak ne razdvaja). Napomene koje su Pregled ili Provjeru stavki zvale „nadzorna ploča” sada ih zovu imenom iz izbornika. Rezultat brisanja probnih objava podsjeća da nove samostalne stavke i dalje dobivaju datum objave u kojoj se prvi put pojave (stavci koja je na referentni dan već bila u ponudi upisuje se datum i cijena tog dana) i da datumi i dodatne cijene iz probnih objava ostaju, uz poveznicu na Provjeru stavki. Obavijest pri izradi stranice „Objava cjenika” i kartica u postavkama više ne tvrde da je za usklađenost s propisom dovoljno da je stranica javno dostupna; samo opisuju da je stranica javno dostupna na svojoj adresi, da poveznicu na nju korisnik dodaje sam (izbornik ili podnožje) i da dodatak ne mijenja izbornike ni zaglavlje.

= 0.9.14 =
* Popravak (sve instalacije): stavke iz uvoza do 0.9.12 koje je uvoz cijelog cjenika (od 0.9.13) ugasio više se ne nude kao „čeka potvrdu” (Pregled, Izvoz/uvoz), pa ih „Potvrdi sve potpune” ne uključuje ponovno. Dosad su se nakon uvoza ponovno nudile, a potvrda ih je vraćala u cjenik i time poništavala uvoz (nalaz s mp-dizajn.hr: objavljen je cjenik usluga sa stavkama kojih nema u datoteci). Isto vrijedi za stavku iz uvoza do 0.9.12 koja je još čekala potvrdu, a nema je u učitanoj datoteci: više ne čeka potvrdu i ostaje neaktivna (pregled uvoza je navodi pod „Više ne čeka potvrdu”). Potvrda se sada zapisuje: stavka potvrđena gumbom „Potvrdi sve potpune” ili namjernim uključivanjem u „Stavke cjenika” više nikad ne čeka potvrdu, ni kad je kasnije ručno ugašena (dosad se takva stavka iz uvoza do 0.9.12 nakon gašenja ponovno nudila za potvrdu). Isto vrijedi za stavku koju je uvoz cijelog cjenika ponovno uključio, dok se taj uvoz ne vrati. Pri nadogradnji se jednom kao potvrđene zapisuju sve stavke iz uvoza do 0.9.12 koje su tada aktivne; one koje su tada neaktivne (i one potvrđene prije 0.9.14 pa ugašene) i dalje čekaju potvrdu. Namjerno uključivanje stavke u „Stavke cjenika” i povrat uvoza rade kao dosad; povrat uvoza potvrdu ne poništava. Ako ste nakon uvoza cijelog cjenika već kliknuli „Potvrdi sve potpune”, nakon nadogradnje ponovno uvezite istu datoteku: stavke kojih u njoj nema se gase i više se ne nude za potvrdu, a cjenik se objavljuje iznova.
* Promjena (sve instalacije): koliko dugo dodatak čuva objave, jednako za robu i usluge. Propis traži da objavljeni cjenici budu dostupni 30 dana od dana objave, odnosno svake promjene. Dodatak svaku objavu drži dostupnom dok je trenutna, a kad je zamijeni sljedeća objava iste vrste (uz više poslovnica: iste poslovnice), čuva je i navodi u „Ranije objave” još 30 dana od dana zamjene, do kraja 30. dana po hrvatskom vremenu (npr. objava zamijenjena 01.10. u 06:30 dostupna je do 31.10. u 23:59:59), i preko prelaska na zimsko ili ljetno vrijeme. Dosad je dodatak objavu čuvao od trenutka same objave točno 30 × 24 sata, pa je objava koja je dulje od 30 dana bila trenutna (npr. cjenik usluga bez promjena) nestajala iz arhive čim ju je zamijenila nova. Isti rok vrijedi za popis ranijih objava, arhivsku adresu, brisanje starih datoteka i stupac „Dostupna do” u pregledu brisanja probnih objava (za trenutnu objavu „dok je trenutna”). Iznimka, kao dosad: zadnja objava obrisane poslovnice, odnosno jednog cjenika ili poslovnica nakon uključivanja ili isključivanja više poslovnica, nema sljedeće objave, pa ostaje do kraja 30. dana nakon dana svoje objave; objave takve skupine više se ne navode na stranici „Objava cjenika” (dostupne su na svojim arhivskim adresama).
* Promjena (sve instalacije): automatsko ažuriranje MP Generator Cjenika uvijek je uključeno. U popisu dodataka (na multisiteu u popisu dodataka mreže) uz dodatak piše „Automatska ažuriranja su omogućena”, bez prekidača; dosadašnje isključenje u popisu dodataka ili drugim dodatkom više ne zaustavlja nadogradnje. Između 05:30 i 08:15 po hrvatskom vremenu i dok je objava cjenika u tijeku dodatak se i dalje ne ažurira automatski. Opće isključenje svih automatskih ažuriranja WordPressa (DISALLOW_FILE_MODS, AUTOMATIC_UPDATER_DISABLED ili drugi dodatak koji gasi sva automatska ažuriranja) dodatak ne zaobilazi; tada, kao i kad WordPress za izmjenu datoteka traži FTP podatke, kad je mapa dodataka pod sustavom verzija, kad je na multisiteu dodatak uključen samo na web-mjestu koje nije glavno i kad uz DISABLE_WP_CRON poslužitelj više od 12 sati ne pokreće WordPressove zakazane zadatke, Pregled javlja da se nadogradnje ne instaliraju same i što napraviti (i da obavijest treba proslijediti administratoru web-mjesta ili hostingu). Automatska ažuriranja drugih dodataka nisu dirnuta. Instalacije na 0.9.11–0.9.13 kojima je automatsko ažuriranje bilo isključeno u popisu dodataka na 0.9.14 prelaze jednom ručno (Nadzorna ploča > Ažuriranja); dalje se nadograđuju same. Nadogradnja se nikad ne vraća na stariju verziju.
* Poboljšanje (sve instalacije): kanal nadogradnji ne pada kad se opis izdanja između ponude i preuzimanja promijeni (novije izdanje) ili trenutno nije dostupan. Ponuda nadogradnje nosi sha256 i potpis iz provjerenog opisa izdanja, pa se instalira ponuđena verzija uz istu provjeru: točna adresa paketa te verzije, verzija novija od instalirane, sha256 i potpis MP-Dizajna; sljedeća provjera zatim donosi najnovije izdanje. Dosad se tada ništa nije preuzimalo. Nakon neuspjelog dohvata opis izdanja ponovno se dohvaća najranije nakon sat vremena, pri sljedećoj provjeri nadogradnji (dosad najranije nakon 12 sati). Instalira se i dalje samo paket koji je potpisao MP-Dizajn, i kad ga pripremi drugi dodatak; ručni prijenos ZIP-a radi kao dosad.
* Popravak (sve instalacije): brisanje probnih objava. Vrsta (roba, usluge ili obje) više nema zadani odabir — dosad je bila odabrana „Roba (proizvodi)”, pa se uz nepromijenjen odabir brisala roba umjesto usluga; bez odabira nema ni popisa ni brisanja. Riječ za potvrdu sadrži vrstu: OBRIŠI ROBU, OBRIŠI USLUGE ili OBRIŠI SVE (dosad OBRIŠI za sve vrste), a potvrda koja ne odgovara vrsti iz pregleda se odbija. Uz više poslovnica ni poslovnica nema zadani odabir (dosad je bila odabrana prva). Pregled, gumb i rezultat navode vrstu, uz više poslovnica i poslovnicu, te broj objava koje se brišu.
* Promjena (sve instalacije): stranica „Objava cjenika” i HTML stranica cjenika (bez WooCommercea) ranije objave prikazuju pod jednim naslovom „Ranije objave”, u jednom zajedničkom popisu robe i usluga, najnovije prvo — dosad je svaka vrsta imala svoj popis, a usluge su bile u sklopivom bloku po danu. Svaki unos počinje oznakom vrste („Cjenik robe:” ili „Cjenik usluga:”), jer se vrsta iz naziva datoteke ne vidi, a dalje je kao dosad: datum i puni naziv datoteke za svaki format, uz datoteke s drugim referentnim datumom „(dodatna cijena na dan …)”. U popisu je svaka ranija objava koja je još unutar roka dostupnosti i ima datoteke na disku, i kad ih je istog dana više, uključujući današnje ranije objave; izostavljaju se samo trenutni cjenici prikazani iznad (dosad najviše jedna objava po vrsti i danu, zadnja toga dana, i bez današnjih). Uz više poslovnica popis je zaseban za svaku poslovnicu. Rečenica „Svaka verzija ostaje javno dostupna 30 dana od svoje objave.” uz popis se više ne ispisuje. Popravak (HTML stranica cjenika): preglednik ili CDN koji provjerava predmemoriranu kopiju (ETag) dobiva novu stranicu i kad se promijenio samo popis ranijih objava (npr. sutradan, bez nove objave); dosad je dobivao „nije promijenjeno” do sljedeće objave.
* Uvjeti korištenja (sve instalacije): ograda od odgovornosti navodi da se nadogradnje instaliraju automatski i ne mogu isključiti u popisu dodataka, a da dodatak u Pregledu javlja kad hosting ili postavke WordPressa isključe sva automatska ažuriranja. Tekst treba jednom ponovno prihvatiti pri otvaranju dodatka; do tada automatska objava, javni cjenik i zakazani zadaci rade normalno.

= 0.9.13 =
* Promjena (sve instalacije): uvoz cjenika iz CSV-a. Učitana datoteka je cijeli cjenik te vrste: u cjeniku ostaju samo stavke iz datoteke, s podacima iz nje. Samostalnim stavkama uvoz sada upisuje i maloprodajnu cijenu, poseban oblik prodaje i datum dodatne cijene, a robi i marku, jedinicu mjere, cijenu za jedinicu mjere, barkod i dostupnost — ne samo dodatnu cijenu i naziv posebnog oblika; naziv i šifru, po kojima se stavke uparuju, ne mijenja. Prazna ćelija ne mijenja ništa. Datum iz datoteke (prazna ćelija uz upisanu dodatnu cijenu: datum iz zaglavlja) upisuje se i postojećim stavkama; dosad je postojeća stavka zadržavala svoj datum, a razlika se prikazivala kao upozorenje. Redak bez para postaje aktivna stavka (dosad neaktivna, čekala je potvrdu). Neaktivna stavka koja je u datoteci ponovno se uključuje, a dosad se redak preskakao. Aktivne samostalne stavke te vrste kojih nema u datoteci se gase (ne brišu se); uz više poslovnica samo se navode. WooCommerce proizvodima upisuju se dodatna cijena, naziv posebnog oblika prodaje i datum; cijene u WooCommerceu se ne mijenjaju, a proizvodi kojih nema u datoteci ostaju netaknuti. Roba s dodatnom cijenom od 2. svibnja 2025. (stavka koja ima taj datum ili oznaka „proizvodi s dodatnom cijenom od 2. svibnja 2025.” pri uvozu samostalne robe) uz praznu ćeliju datuma zadržava 02.05.2025.; povrat uvoza vraća i tu oznaku. Novi redak koji u međuvremenu već ima stavku (npr. isti uvoz primijenjen iz drugog pregleda) ne dodaje se ponovno. Datoteka bez ijednog retka (samo zaglavlje) se ne uvozi.
* Pregled uvoza (sve instalacije): neutralno navodi što se dodaje, što se mijenja (staro → novo) i što se gasi. Upozorenje o datumu (uvoz se svejedno može primijeniti) dobiva samo datum koji nije valjan (ne primjenjuje se), datum u budućnosti i datum raniji od datuma iz zaglavlja (osim 02.05.2025. za robu). Povrat zadnjeg uvoza vraća i nova polja (maloprodajna cijena, poseban oblik, datum) te ponovno uključuje ugašene stavke. Isto u WP-CLI naredbi "wp mpgc uvoz".
* Izvoz i objava (sve instalacije): „Miješani referentni datumi” više nije upozorenje; vlastiti datum stavke je uobičajen i nalazi se u stupcu „Datum dodatne cijene”.
* Stavke cjenika (sve instalacije): popis po zadanom prikazuje samo aktivne stavke („Važeći cjenik (N)”), a neaktivne su pod filtrom „Neaktivne (N)”; nakon spremanja neaktivne stavke otvara se taj filtar.
* Novo (sve instalacije): brisanje probnih objava na kartici Službeni cjenik, za odabranu vrstu (roba, usluge ili obje) i poslovnicu. Briše objavljene datoteke (trenutnu i arhivu) i njihove zapise u zapisniku objava, vraća redni broj pohrane i odmah objavljuje trenutni cjenik. Redni broj zajednički je za robu i usluge, pa od broja 1 kreće kad druga vrsta nema objava ili kad se brišu obje. Prije brisanja prikazuje točan popis i traži upis riječi OBRIŠI, a upozorava da se brisanje ne može poništiti, da se brišu sve objave s popisa (dok obveza vrijedi, objava mlađa od 30 dana ne smije se obrisati) i da treba očistiti CDN. Ako se trenutni cjenik ne može objaviti (suhi izračun prije brisanja), ništa se ne briše. Svako brisanje upisuje se u zapisnik brisanja (tko, kada, koliko objava). Stavke, cijene i postavke se ne mijenjaju.

= 0.9.12 =
* Popravak (sve instalacije s WooCommerceom): cijena u cjeniku jednaka je cijeni koju WooCommerce prikazuje i naplaćuje i kad zapis cijene u bazi nije onakav kakav bi WooCommerce spremio (npr. "12,34" iz uvoza izravno u bazu u trgovini s decimalnom točkom). Dosad se uz takav zapis cjenik mogao razlikovati od weba (npr. redovna cijena "12,34" u cjeniku 1234, a na webu 12,34 € jer je cijena na webu zapisana ispravno). Dodatak namjeru trgovca ne pogađa: uz takav zapis objavljuje cijenu koju je WooCommerce spremio za prikaz i naplatu (i u trgovini s decimalnim zarezom; cijena tada ne slijedi pravilo iz 0.9.8 o akciji po datumima, a oznaka akcije i dalje se određuje po datumima akcije). Proizvod bez te cijene (web ga prikazuje bez cijene) cjenik i dalje objavljuje s redovnom ili akcijskom cijenom kako je WooCommerce čita.
* Popravak (sve instalacije s WooCommerceom, PHP 7.4): sidrena cijena zapisana s razmakom ili novim retkom na kraju (npr. iz uvoza izravno u bazu) prikazuje se na webu, kao i u cjeniku. Web i cjenik sidrenu cijenu čitaju jednako; zapis koji nije broj (npr. "9,99") ni jedan ne prikazuje.
* Novo u Kontrolnoj listi i Pregledu (sve instalacije s WooCommerceom): greška za proizvode sa zapisom cijene koji WooCommerce ne bi spremio (redovna, akcijska, cijena na webu i sidrena cijena), s iznosom kako ga WooCommerce (sidrenu dodatak) čita, poveznicom na proizvod i uputom za ispravak u jednom spremanju — i za trgovine s decimalnim zarezom, u kojima polje već prikazuje ispravan iznos (tada se upisuje s jednom nulom više u decimalama). Pregled uz takve proizvode prikazuje upozorenje s njihovim brojem i poveznicom na Kontrolnu listu; objavu ne blokira.
* Nova postavka (sve instalacije): „Nismo isticali dodatnu cijenu prema odluci iz 2025. (NN 75/25)” u Postavkama, uz kategorije za 2. svibnja 2025., zadano isključena — za trgovce koji na dan stupanja na snagu Odluke o isticanju dodatne cijene (t. IV) prema odluci iz 2025. nisu isticali dodatnu cijenu. Uključena gasi upozorenje u Pregledu po nazivima stavki (Pregled tada javlja „Datum 2. 5. 2025. se ne primjenjuje.”); datume ne mijenja (označene kategorije i proizvodi i dalje imaju 2. 5. 2025.). Upozorenje upućuje na tu opciju. Stavke kojima je datum dodatne cijene 02.05.2025. upisan bez oznake Pregled sada broji kao proizvode s dodatnom cijenom od 2. svibnja 2025.
* Upute (sve instalacije): u uputama za instalaciju i nadogradnju gumb za instalaciju prenesenog ZIP-a naveden je kako glasi u hrvatskom WordPressu — „Instaliraj sada”, u novijem WordPressu „Instaliraj”; FAQ o veličini kataloga navodi tehničke zahtjeve iz Uvjeta licence (najviše 10.000 proizvoda i usluga, svaka varijacija zasebno; 256 MB memorije i 60 sekundi izvođenja) umjesto izmjerenih 10.500 i 16.000 redaka uz 256 MB.

= 0.9.11 =
* Poboljšanje (sve instalacije, najviše velik katalog): skupljanje stavki za cjenik troši manje memorije — WordPressova predmemorija pročitanih proizvoda prazni se svakih 200 učitanih proizvoda i varijacija (samo njezina kopija u memoriji zahtjeva; trajna predmemorija, npr. Redis, ostaje netaknuta), a stavke druge vrste (roba ili usluge) preskaču se bez čitanja cijena. Zato proizvod s greškom jedne vrste (npr. usluga kojoj se cijena ne može pročitati) više ne sprječava objavu cjenika druge vrste. O neobjavljenom cjeniku vrste s greškom i dalje stiže e-mail — za usluge „Cjenik usluga nije objavljen nakon 3 pokušaja”, i kad promjena usluga nije prošla kroz WordPress (npr. izmjena izravno u bazi ili drugim dodatkom). Gdje hosting dopušta, dodatak pri skupljanju stavki podiže memorijski limit na WP_MAX_MEMORY_LIMIT (zadano 256 MB); uz limit koji je hosting zaključao nema učinka.
* FAQ: nova stavka „Koliko velik katalog dodatak može objaviti?” s izmjerenim granicama uz 256 MB / 60 s i 128 MB / 30 s.
* Popravak (sve instalacije): e-mail „Cjenik robe danas nije objavljen” čeka objavu samo kad web-mjesto zakazane zadatke pokreće posjetima (WP-Cron), poziv s hostinga nije se javio u zadnja 2 dana i nijedan posjet još nije zatekao objavu na čekanju, i to samo do 8:00. Kad se automatika od termina nije pokrenula, a web-mjesto koristi poziv s hostinga (javio se u zadnja 2 dana) ili cron poslužitelja (DISABLE_WP_CRON), ili je posjet već zatekao objavu na čekanju a WordPress je nije pokrenuo, e-mail stiže već pri provjeri prije 8:00 (pri posjetu ili pozivu s hostinga od vremena provjere); inače uz WP-Cron preko posjeta stiže pri prvom posjetu nakon 8:00. Razlog navodi od kada se zakazani zadaci ne pokreću i tko ih je trebao pokrenuti. U 0.9.10 e-mail je tada izostao, a cjenik je mogao biti objavljen tek nakon 8:00. Trgovina bez robe ni tada ne dobiva e-mail.
* Popravak (sve instalacije): objavljeni proizvod bez oznake vrste proizvoda (npr. nastao uvozom izravno u bazu ili prekinutim uvozom) i proizvod vrste koju više ne registrira nijedan aktivni dodatak (npr. isključen dodatak za pakete) ulaze u cjenik robe kao jednostavni proizvodi — WooCommerce ih učitava kao jednostavne, a cjenik ih je dosad izostavljao. U cjeniku robe zato se mogu pojaviti novi retci: provjerite ih, a proizvod koji ne prodajete isključite iz cjenika. Proizvod bez cijene označen je kao i svaki drugi proizvod bez cijene. Cjenik i provjera za e-mail „Cjenik robe danas nije objavljen” koriste isti popis proizvoda. Novo u Kontrolnoj listi: upozorenje za proizvode s redovnom cijenom koje web prikazuje bez cijene (WooCommerce za njih nema spremljenu cijenu, a cjenik ih objavljuje s cijenom iz proizvoda), s poveznicom na proizvod i uputom kako cijenu vratiti jednim spremanjem: samo spremanje ne pomaže, nego se u istom spremanju u prazna polja Sidrena cijena i Referentni datum (kod varijabilnog proizvoda u svakoj varijaciji) upišu datum i cijena koja je toga dana vrijedila, bez akcije, a redovna cijena ispravi ili upiše s jednom nulom više u decimalama (npr. 12,34 → 12,340, a 25 → 25,0; iznos ostaje isti, a WooCommerce cijenu tako ponovno sprema), pa se provjeri cijena na webu.
* Uvjeti licence (sve instalacije): tekst na ekranu „Cjenik: uvjeti korištenja” i u ogradi na Nadzornoj ploči više ne tvrdi da MP-Dizajn ne odgovara ni za kakvu štetu; dodatak je alat, ne jamči pravnu usklađenost i nije pravni savjet, za unesene podatke i usklađenost poslovanja odgovara korisnik, a odgovornost MP-Dizajna uređuju Uvjeti licence (https://mp-dizajn.com/uvjeti-licence/). Dosadašnje prihvaćanje vrijedi i dalje. Uz svako polje za aktivacijski kôd: „Unosom koda potvrđujete da prihvaćate Uvjete licence.”; u popisu dodataka poveznica „Uvjeti licence”. Privatnost (readme i Postavke) točno prema kodu: uz ishod objave šalju se domena i e-mail, dnevna provjera radi dok je kôd aktivan ili opozvan, opcija „Ne šalji evidenciju aktivacije” isključuje sva tri slanja, obrazac za zahtjev šalje i traženi paket.
* Novo (sve instalacije): kanal nadogradnji. Nove verzije stižu kroz WordPress (Nadzorna ploča > Ažuriranja i popis dodataka, „Prikaži detalje” s popisom promjena). Nadogradnje se instaliraju automatski (ako web-mjesto to dopušta), a to se može isključiti u popisu dodataka; između 05:30 i 08:15 po hrvatskom vremenu dodatak se ne ažurira automatski (jutarnja objava), a ni dok je objava cjenika u tijeku — i kad drugi dodatak prisilno uključuje automatska ažuriranja. Instalira se samo paket koji je potpisao MP-Dizajn (provjera sha256 i potpisa prije instalacije, i kad paket pripremi drugi dodatak); kad se ponuđeni paket i najnoviji opis izdanja razilaze, ništa se ne preuzima, a WordPress javlja da se pokuša ponovno za nekoliko minuta. Ručni prijenos ZIP-a radi kao dosad i rezerva je kad ponuda ne stigne. Nadogradnje dobivaju i probna i istekla licenca. Na 0.9.11 prelazi se jednom ručno (prijenos ZIP-a preko postojećeg dodatka), a dalje kroz WordPress. Privatnost: nova stavka o provjeri nadogradnji (samo verzija dodatka, najviše dvaput dnevno; i paket se preuzima vlastitim zahtjevom samo s verzijom dodatka, bez adrese web-mjesta koju bi poslalo WordPressovo preuzimanje).
* Upute (sve instalacije): nadogradnja ide prijenosom ZIP-a preko postojećeg dodatka („Zamijenite trenutnu s prenesenom”), ne brisanjem — u 0.9.9 i starijima brisanje dodatka briše postavke, aktivacijski kôd, automatiku i poslovnice (Installation, FAQ „Kako nadograditi dodatak?”; nazivi izbornika i gumba kao u hrvatskom WordPressu). FAQ o deinstalaciji upozorava što se uz MPGC_REMOVE_ALL_DATA gubi: objavljeni cjenici koje treba čuvati 30 dana (i nakon uklanjanja dodatka), redni brojevi pohrane i dodatne cijene s referentnog dana.
* Popravak (sve instalacije): e-mail „Cjenik robe danas nije objavljen” poslan nakon 8:00 navodi stvarno vrijeme slanja i uputu da cjenik objavite ručno ako se u međuvremenu nije objavio.

= 0.9.10 =
* Vremenska zona (sve instalacije): sve što propisuje obveza računa se po hrvatskom vremenu (Europe/Zagreb), neovisno o vremenskoj zoni WordPressa — vrijeme i zakazivanje automatske objave (i preko prijelaza na ljetno i zimsko vrijeme), provjere i e-mail obavijesti, naziv datoteke i vrijeme u XML-u, datumi u cjeniku i arhivi (datum objave, datum dodatne cijene, datum prve objave) i vremena u sučelju dodatka. Uz polje za vrijeme dnevne objave (wizard i Postavke) piše „po hrvatskom vremenu”. Instalacije kojima je zona WordPressa bila Europe/Zagreb ne primjećuju nikakvu promjenu. Na instalacijama kojima zona WordPressa nije bila Europe/Zagreb (npr. zadani UTC engleske instalacije ili fiksni pomak UTC+X) automatska objava od nadogradnje ide u upisano vrijeme po hrvatskom vremenu, a nove datoteke u nazivu nose hrvatsko vrijeme, dok se već spremljene vrijednosti i datoteke ne preračunavaju.
* Popravak (instalacije kojima zona WordPressa nije Europe/Zagreb): uklonjena je obavijest o vremenskoj zoni s gumbom „Postavi zonu web-mjesta na Europe/Zagreb” (Postavke i korak 4 wizarda). Bila je ugrađena unutar obrasca, pa se Postavke nisu mogle spremiti („Spremi postavke” nije ništa slao), gumb za zonu u Postavkama vodio je na WordPressovu stranicu „All Settings”, a „Spremi i nastavi” u koraku 4 bez potvrde je mijenjao zonu web-mjesta i nije spremao korak. Dodatak vremensku zonu WordPressa više ne čita ni ne mijenja; uklonjene su i napomena s oba sata u Postavkama, provjera zone na Pregledu i blokada zone u koraku 5.
* E-mail „Cjenik robe danas nije objavljen”: vrijeme provjere je hrvatsko, pa u poruci više ne piše „(vrijeme web-mjesta)”.
* Popravak (sve instalacije): e-mail „Cjenik robe danas nije objavljen” ne šalje se dok je današnja objava još na čekanju — termin je prošao, a automatika se od njega još nije pokrenula ili je objava upravo u tijeku (ispravljeno u 0.9.11: čeka se samo uz WP-Cron preko posjeta i samo do 8:00, a inače se i tada šalje, s razlogom). Šalje se kad objava ne uspije, kad se automatika nakon termina pokrenula a objave nije bilo (npr. zakazani događaj je nestao) i kad je cjenik robe ostao prazan iako trgovina ima robe za cjenik (objavljeni proizvodi ili stavke robe koji po pravilima cjenika ulaze u cjenik robe). Trgovina bez robe (samo usluge) više ne dobiva lažnu obavijest. Isto vrijedi kad nijedan objavljeni proizvod ne ide u cjenik robe (isključeni iz cjenika, usluge, grupirani, varijacije u nacrtu ili isključene) — roba se razvrstava po istim pravilima kao cjenik.
* Popravak (sve instalacije): deinstalacija uz `MPGC_REMOVE_ALL_DATA` sada uklanja sve što je dodatak stvorio — i početak „novih stavki” (bez toga je ponovna instalacija naslijedila stari datum prve objave), rezervirane automatske šifre i privremene podatke — a stranicu „Objava cjenika” premješta u otpad (ne briše je trajno; uz isključen otpad ostaje). Bez te konstante stranica i podaci trgovca ostaju kao dosad. Deaktivacija i deinstalacija uklanjaju i zaostali zakazani nastavak snimanja sidrenih cijena.
* Obavijest „Stranica ‚Objava cjenika’ je kreirana” prikazuje se samo kad je aktivacija stranicu stvarno kreirala — ne više pri svakoj ponovnoj aktivaciji (i nakon što je zatvorena) ni kad je preuzeta postojeća stranica.
* Popis cjenika na stranici „Objava cjenika”: dugi nazivi datoteka lome se i na uskom zaslonu (mobitel), i uz teme koje ne lome duge riječi.
* Postavljanje bez ijedne stavke: korak 5 kaže „Cjenik još nema stavki” s poveznicom za dodavanje (umjesto „Sve stavke imaju obavezne podatke”), a završetak bez ijedne objave kaže da cjenik još nije objavljen i što nedostaje (umjesto zelenog „Postavljanje je završeno”).
* Zaglavlje dodatka: "WC tested up to: 11.1" (WooCommerce više ne javlja da kompatibilnost nije navedena).
* Deinstalacija bez `MPGC_REMOVE_ALL_DATA` (sve instalacije) briše samo privremene podatke (privremene poruke, zakazane zadatke i brave); postavke (automatika, vrijeme objave, e-mail, poslovni podaci), aktivacijski kôd i licenca, početak probne verzije, redni brojevi pohrane, poslovnice, stanje postavljanja i prihvaćeni uvjeti te adresa za automatsku provjeru s hostinga ostaju, kao kod WooCommercea. Dosad su se brisale postavke i licenca, pa je nadogradnja brisanjem starog i prijenosom novog dodatka isključivala automatiku, brisala aktivacijski kôd, mijenjala adresu za hosting i vraćala brojanje na 1. Uz konstantu se briše sve kao dosad.
* Popravak (sve instalacije): sljedeća objava nikad ne dobiva redni broj pohrane manji od najvećeg u zapisniku objava + 1 — posebno za jedan cjenik i za svaku poslovnicu (roba i usluge dijele brojač). Dosad je izgubljen ili ručno smanjen brojač (npr. nakon deinstalacije i ponovne instalacije) ponavljao već objavljene brojeve.

= 0.9.9 =
* Zadani naziv posebnog oblika prodaje (sve instalacije): postavka je sada zadano „Akcija”. Nova instalacija ga ima odmah; postojećoj instalaciji migracija 11 upisuje „Akcija” samo ako je postavka prazna — vlastiti naziv koji je trgovac upisao ne dira se. Nakon migracije jednokratna obavijest u adminu: „Zadani naziv akcije postavljen je na ‚Akcija’. Možete ga promijeniti u postavkama ili upisati poseban naziv na pojedinom proizvodu.” Redoslijed je nepromijenjen: naziv na proizvodu (ili samostalnoj stavci) → naziv roditelja varijacije → zadani naziv. Proizvod na akciji bez vlastitog naziva u cjeniku dobiva „DA” i „Akcija”. Stavka blokira potpunu objavu samo ako je trgovac zadani naziv ručno obrisao; tada uz stavku stoji poruka gdje ga upisati, a Pregled, Provjera stavki i korak 5 wizarda prikazuju obavijest s poveznicom na postavku. Opis postavke (Postavke i korak 2 wizarda) kaže da vrijedi za sve proizvode i usluge na akciji bez vlastitog naziva.
* Sučelje (samo tekst): korak 4 wizarda zove se „Automatska objava” — traka koraka, naslov koraka i poveznica iz koraka 5 („Promijeni u koraku 4 (Automatska objava)”).
* Nove obavijesti e-mailom (sve instalacije), zadano uključene, na adresu iz nove postavke „E-mail za obavijesti” (prazno = adresa administratora web-mjesta); gumb „Pošalji probni e-mail” u Postavkama (kartica „Obavijesti e-mailom”), ista polja i jedna rečenica objašnjenja u koraku 4 wizarda. Poruke su običan tekst na hrvatskom s jasnim predmetom; svaka uputa navodi točan put kao u sučelju (izbornik „Cjenik” → stavka izbornika → kartica ili odjeljak → gumb) i ispod njega poveznicu izravno na to mjesto, a svaka poruka i put do Pregleda. (a) „Cjenik robe danas nije objavljen” — ako u vrijeme provjere nema uspješne objave robe za današnji dan (ni automatske ni ručne); provjera je u 07:30, a uz kasnije vrijeme objave 30 minuta nakon njega, najkasnije u 07:59 (zona web-mjesta; rok 8:00 ostaje u tekstu). Razlog opisuje stvarno stanje: „dnevna objava zakazana za 06:30 nije uspjela (N pokušaja): …”, „… nije izvršena” (uz vrijeme zadnjeg pokretanja zakazanih zadataka samo kad je ono prije termina) ili „vrijeme objave je nakon roka 8:00”. Uputa: Cjenik → Stavke cjenika → kartica „Službeni cjenik” → odjeljak „Cjenik robe (proizvoda)” → gumb „Generiraj cjenik sada”. (b) „Cjenik usluga nije objavljen nakon 3 pokušaja” — promjena usluga otkrivena, a objava nije uspjela ni nakon 3 pokušaja (dodatak sada broji pokušaje i pamti zadnju grešku); uputa ista kao u (a), odjeljak „Cjenik usluga”, i put do Provjere stavki. (c) „Probna verzija/Licenca istječe za 7 dana”, „… istječe sutra”, „… istječe danas” i „… je istekla — automatska objava je zaustavljena”, s putem Cjenik → Licenca → kartica „Unesi kôd” → gumb „Aktiviraj” (i „Zatraži aktivaciju” → „Pošalji zahtjev”). (d) „Automatska objava cjenika se ne pokreće”: na web-mjestu s cronom poslužitelja (DISABLE_WP_CRON) kad je zadnje pokretanje zakazanih zadataka dodatka starije od 2 sata; na web-mjestu gdje WP-Cron radi preko posjeta duga pauza bez posjeta (npr. noću) nije razlog — obavijest ide tek kad zakazani događaj dodatka (npr. dnevna objava robe) kasni više od 60 minuta, a posjet stranici barem 10 minuta ranije ga je već zatekao na čekanju (WordPress ne uspijeva pokrenuti zakazane zadatke, npr. blokiran poziv web-mjesta samome sebi). Uputa: Cjenik → Postavke i aktivacija → „Objava cjenika i automatika” → „Pouzdanija objava točno na vrijeme (preporučeno)” → gumb „Kopiraj upute”. Isključene obavijesti: ne šalje se nijedna poruka, ni o licenci (upozorenja u adminu ostaju). Najviše jedan e-mail po vrsti dnevno; svaka poslana poruka (i probna) bilježi se u zapisnik dodatka (Postavke > Obavijesti e-mailom). Provjere (a) i (d) ne ovise samo o WP-Cronu: izvode se i u ticku automatike i pri bilo kojem učitavanju stranice (javne ili admina), jeftino — čita se jedna opcija, a ostalo najviše svakih 10 minuta. Ako slanje ne uspije (wp_mail vraća false), u zapisniku ostaje „NIJE poslano” i u adminu se prikazuje obavijest „E-mail obavijest nije poslana — provjerite slanje e-pošte na sajtu (npr. SMTP dodatak)” dok se ne zatvori ili dok sljedeće slanje ne uspije. Pomoć u odjeljku „Pouzdanija objava točno na vrijeme” i u kartici obavijesti kaže da se za pouzdanu jutarnju objavu preporučuje automatska provjera s hostinga (zakazani posao na poslužitelju). Obavijesti (a), (b) i (d) šalju se samo dok je automatika objave uključena; (c) uvijek.
* Obavijest o aktivaciji na Nadzornoj ploči WordPressa (sve instalacije): dok licenca nije aktivna, na Nadzornoj ploči (index.php) stoji crvena obavijest bez mogućnosti skrivanja — tijekom probne verzije „MP Generator Cjenika: licenca nije aktivirana. Probna verzija istječe DD.MM.GGGG.; nakon toga automatska objava cjenika staje.”, nakon isteka probne verzije ili licence „MP Generator Cjenika: licenca nije aktivirana — cjenik se više ne objavljuje automatski.”, uz gumb „Aktiviraj licencu” (Cjenik → Licenca). Vide je samo korisnici s ovlašću upravljanja dodatkom (trgovinom); uz aktivnu licencu nema obavijesti.
* Službeni cjenik: odjeljci „Cjenik robe (proizvoda)” i „Cjenik usluga” imaju sidra (poveznice iz e-mail obavijesti vode izravno na gumb).
* Deinstalacija briše i opcije obavijesti (stanje, zapisnik) te rezultate migracija 10 i 11.

= 0.9.8 =
* Promjena formata datoteke (sve instalacije): uklonjen stupac „Najniža cijena u zadnjih 30 dana” iz CSV-a i XML-a robe i usluga (XML više nema element najniza_cijena_30_dana). Datoteke sada imaju točno stupce HOK predloška (roba 11, usluge 5) i, kao jedini dodatak, „Datum dodatne cijene” na kraju: roba 12, usluge 6 stupaca; XML prati CSV. Odluka o objavi cjenika (NN 101/2026) najnižu cijenu u zadnjih 30 dana ne traži. Svim trgovinama sljedeća objava robe i usluga (automatska ili ručna) objavljuje novu datoteku. Uvoz i dalje prihvaća datoteke iz ranijih verzija sa stupcem najniže cijene (vrijednost se ne uvozi), a javna tablica arhivskih XML datoteka i dalje prikazuje njihov stupac. Praćenje cijena nastavlja se u pozadini; obavijest u Pregledu to kaže.
* Promjena sadržaja datoteke (sve instalacije): „Datum dodatne cijene” ima svaka stavka, uvijek u obliku DD.MM.GGGG. (vlastiti datum stavke, datum šestice iz 2025. ili referentni datum iz postavki; neispravan ili prazan datum u postavkama zamjenjuje zadani 10.09.2026.). Pri snimci postojećih proizvoda (prvo uključivanje dodatka) proizvod ili varijacija objavljeni u trgovini nakon referentnog datuma dobivaju datum objave u trgovini (dosad referentni datum); već snimljeni proizvodi se ne mijenjaju. Proizvodi objavljeni kasnije dobivaju datum prve objave i redovnu cijenu kao sidrenu, kao i dosad. Samostalna stavka (roba ili usluga) unesena nakon prve objave s verzijom 0.9.8 dobiva datum prve objave cjenika u kojoj se pojavi i, bez vlastite sidrene cijene i izvan akcije, maloprodajnu cijenu kao sidrenu; oboje se trajno upisuje pri toj objavi. Postojeće samostalne stavke i ručno upisan datum ostaju kakvi jesu. Promjena naziva ili šifre ne mijenja sidrenu cijenu ni datum.
* Promjena sadržaja datoteke (sve instalacije): maloprodajna cijena je cijena koja se naplaćuje u trenutku objave. Akcija se prepoznaje po datumima akcije u WooCommerceu i trenutku objave, a ne po spremljenoj cijeni koju WooCommerce za zakazane akcije osvježava tek svojim dnevnim zadatkom — akcija koja počinje u ponoć objavljuje se u jutarnjoj objavi istog dana s akcijskom cijenom i „DA”, a istekla akcija s redovnom cijenom i „NE”. Vrijedi i za pojedine varijacije i za usluge iz WooCommercea. Sidrena cijena nikad nije akcijska.
* Migracija 10 (postojeće instalacije): proizvod ili varijacija objavljena u trgovini nakon referentnog datuma, a kojoj je automatska snimka pri uključivanju dodatka upisala referentni datum (npr. 10.09.2026.), dobiva datum svoje objave (lokalno vrijeme sajta; za varijaciju kasniji od vlastitog i roditeljevog); cijena ostaje. Ručno upisane vrijednosti (cijena različita od redovne ili drugi datum) se ne diraju; snimkom se smatra cijena jednaka trenutnoj redovnoj uz zadani referentni datum. Nakon migracije obavijest u adminu nabraja promijenjene stavke.
* Sučelje (sve instalacije, samo tekst): postavka „Šestica iz 2025.” zove se „Proizvodi s dodatnom cijenom od 2. svibnja 2025.” — u Postavkama, koraku 2 wizarda, na proizvodu, u obrascu samostalne stavke, uvozu i provjerama — s opisom kome je namijenjena (trgovci koji su prema odluci iz 2025., NN 75/25, isticali dodatnu cijenu; za te proizvode i dalje vrijedi cijena na dan 2. 5. 2025.). Interni ključ postavke i podaci se ne mijenjaju.
* Proizvodi s dodatnom cijenom od 2. svibnja 2025. (pogađa samo instalacije s označenim kategorijama u postavkama): automatska snimka takvim proizvodima više ne upisuje referentni datum ni redovnu cijenu — datum je 02.05.2025. (ili datum objave ako je kasniji), a cijenu na taj dan treba upisati; do tada stavka blokira potpunu objavu s porukom „Sidrena cijena: Upišite cijenu na dan 2.5.2025.” (Provjera stavki, Pregled, korak 5 wizarda). Migracija 10 isto ispravlja postojeće stavke šestice kojima je snimka upisala referentni datum: datum 02.05.2025., snimljena cijena se briše i traži se upis (popis u obavijesti). Bez označenih kategorija ništa se ne mijenja.
* Nova postavka „Zadani naziv posebnog oblika prodaje” (Postavke > Zadane vrijednosti u cjeniku i korak 2 wizarda), zadano prazna, s gumbom brzog upisa „Akcija”. Upisuje se samo stavkama na akciji bez vlastitog naziva (roba i usluge); vlastiti naziv (proizvoda, roditelja varijacije ili samostalne stavke) ima prednost. Dok je prazna, stavka na akciji bez naziva i dalje zaustavlja objavu kao dosad.
* Popravak (sve instalacije): proizvodi sa statusom zaliha „Po narudžbi” (izrada po narudžbi, prednarudžba, dropshipping — kupac ih može naručiti) u cjeniku robe sada su „dostupan”. Dosad su bili „nedostupan”, jednako kao „Nema na zalihi”. Trgovinama s proizvodima „Po narudžbi” cjenik se za te proizvode mijenja iz „nedostupan” u „dostupan”, pa sljedeća objava (automatska ili ručna) objavljuje novu datoteku. „Na zalihi” ostaje „dostupan”, „Nema na zalihi” ostaje „nedostupan”; varijacija se ocjenjuje po istom pravilu prema svom statusu.
* Provjera stavki i korak 5 wizarda upozoravaju kad šifra robe izgleda kao cijena: broj s decimalama (npr. "19,00") ili cijeli broj jednak cijeni stavke. Tekst imenuje polje („Šifra izgleda kao cijena (19,00). Provjerite polje SKU.”) i vodi na uređivanje proizvoda. Upozorenje ne blokira objavu; takva stavka ima status „Preporuka”.
* Nove postavke „Zadana marka za proizvode bez marke” i „Zadana jedinica mjere” (Postavke > Zadane vrijednosti u cjeniku i korak 2 wizarda), zadano prazne. Upisuju se u cjenik samo robi kojoj marka ili jedinica mjere nije upisana: vlastita vrijednost (marka iz taksonomije ili atributa, jedinica iz polja proizvoda, polja samostalne stavke) uvijek ima prednost, a usluge se ne diraju. Gumbi brzog upisa: naziv web-mjesta za marku i "kom" za jedinicu mjere. Dok su postavke prazne, cjenik se ne mijenja.
* Uvoz CSV-a uz „Cijena D.M.GGGG.” prihvaća i stupac sidrene cijene „Dodatna cijena D.M.GGGG.” i „Sidrena cijena D.M.GGGG.” (s razmacima ili prelomom retka). Izvoz ostaje „Cijena D.M.GGGG.”, kao u HOK predlošcima.
* Pomoć uz polje dostupnosti navodi pravilo: „Na zalihi” i „Po narudžbi” = dostupan, „Nema na zalihi” = nedostupan.

= 0.9.7 =
* Novi wizard „Postavljanje cjenika” u 5 koraka. Koraci 1–3: „Prodajno mjesto” (poslovni podaci uz pregled naziva datoteke dok se upisuje; uz više poslovnica poslovnice se upisuju i uređuju u samom koraku), „Sidrene cijene” (referentni datum, kategorije šestice iz 2025. i upis sidrenih cijena) i „Prikaz na webu” (oznaka sidrene cijene na stranici proizvoda; bez WooCommercea korak je siv i preskače se). „Natrag” i klik na drugi korak spremaju ispravno upisano, a neispravno ostaje u obrascu s porukom; „Dalje” sprema tek kad je sve ispravno.
* Novi wizard, koraci 4–5: „Objava” (automatika, vrijeme dnevne objave robe i format; automatika je zadano uključena samo dok postavljanje nikad nije završeno, inače ostaje trenutna vrijednost, a isključivanje se sprema uz poruku „Automatska objava je isključena — cjenik se neće objavljivati sam.”) i „Provjera i prva objava”. Korak 5 ne dopušta objavu dok vremenska zona, poslovni podaci, stranica „Objava cjenika” (uz WooCommerce) ili licenca nisu u redu — svaka prepreka vodi točno na mjesto popravka. Stavke bez obaveznih podataka prikazuju se (do 10, uz „Sve (N) →” na Provjeru stavki) i zaustavljaju objavu dok se ne potvrdi „Svjestan/na sam …”.
* Migracija 9: stanje postavljanja sprema se u obliku za 5 koraka. Završeno postavljanje ostaje završeno i wizard se ne otvara ponovno; kod nedovršenog se zadržava samo korak 1 (poslovni podaci). Ponovno pokretanje wizarda pamti da je postavljanje već jednom završeno.
* Objava iz wizarda: „Objavi prvi cjenik i završi” objavljuje robu i usluge; pri ponovnom prolazu „Objavi i završi” objavljuje samo cjenik koji se razlikuje od zadnje objave (sadržaj, naziv datoteke ili format), a nepromijenjeni ostaje („Nema promjena — zadnja objava ostaje (broj N)”), pa redni broj pohrane raste samo pri stvarnoj objavi. Objava ide istim putem kao ručna objava i automatika; generator cjenika nije mijenjan.
* Popravak (sve instalacije): automatika usluga nije ponovno objavljivala cjenik kad se promijenio samo naziv datoteke (poslovni podaci: oblik, adresa ili oznaka objekta, odnosno podaci poslovnice) ili format objave (dodan ili uklonjen XML/CSV), a sadržaj je ostao isti — zadnja objava ostajala je sa starim nazivom ili bez novog formata. Usporedba sada uz sadržaj gleda i naziv (bez rednog broja i vremena) i formate zadnje objave; isto vrijedi za ručnu objavu usluga i za „Objavi i završi” u wizardu. Dnevna objava robe nije promijenjena (objavljuje se svaki dan).
* Gumb „Objavi … i završi” radi i bez JavaScripta: uz stavke bez obaveznih podataka u pregledniku ostaje onemogućen dok se ne označi potvrda, a poslužitelj u svakom slučaju odbija objavu bez potvrde (uz prepreke iz koraka 5 gumb i potvrda su uvijek onemogućeni).
* Tekstovi: Pregled i opis dodatka navode pet koraka postavljanja.
* Razvoj: podaci za živi pregled oznake sidrene cijene izdvojeni su u MPGC_Admin::preview_script_data(), da ih koriste Postavke i wizard; ponašanje nepromijenjeno.

= 0.9.6 =
* Uključuje sve popravke iz 0.9.5: cjenik je jedna datoteka po poslovnici i vrsti sa stupcem „Datum dodatne cijene”, stare adrese s datumom preusmjeravaju se (301) na glavnu datoteku, trenutni cjenik šalje "Cache-Control: no-cache" (vidi unos 0.9.5).
* Popravak: u Postavkama se sada sprema isključivanje svih kategorija šestice iz 2025. Dosad obrazac uz sve neoznačene kategorije nije slao ništa, pa je ostajao stari izbor i proizvodi iz tih kategorija i dalje su dobivali datum 2.5.2025. Greška postoji od 0.5.0 (uvođenje šestice). Odznačavanje dijela kategorija radilo je i prije.
* Obrazac zahtjeva za licencu: primjer u polju poruke više ne spominje trajnu licencu („npr. godišnja licenca, jedna poslovnica”).
* Razvoj: testovi razdvojeni na logiku i sučelje; kod dodatka nepromijenjen.
* Admin: prikaz ekrana odvojen od spremanja stanja (priprema za novi izgled); ponašanje nepromijenjeno.
* Admin: novi izgled. Zaglavlje s nazivom dodatka, stanjem licence i poveznicama „Pomoć” i podrska@mp-dizajn.com; tabovi Pregled, Stavke, Postavke i Licenca (Licenca je uvijek vidljiva). Postavljanje, Poslovnice i Kontrolna lista otvaraju se poveznicama.
* Pregled (bivša nadzorna ploča): stanje objave robe i usluga po poslovnici, brojači stavki, automatske provjere i brze radnje („Objavi sada”, „Otvori javni cjenik”, „Uredi stavke”), a ispod popis stavki kao i dosad. Prilagođeno mobitelu, bez animacija uz „smanji pokrete”.
* Popravak: uz WooCommerce 9.2 i noviji dodatak više ne čita interni ključ _global_unique_id, pa u zapisu grešaka nema obavijesti za svaki proizvod bez GTIN-a (već objavljeno u 0.9.5).
* Popravak: uz uključeno više poslovnica prijevodi se više ne učitavaju prerano (obavijest _load_textdomain_just_in_time u WordPressu 6.7 i novijem; već objavljeno u 0.9.5).
* Admin, zbijeniji prikaz: Pregled više ne sadrži popis svih stavki. Umjesto toga kartica „Treba pažnju” pokazuje najviše 5 stavki koje blokiraju objavu i poveznicu na ostale, a automatske provjere prikazuju samo probleme (ostale su skupljene u jedan redak).
* Stavke: podtab „Provjera stavki” zamjenjuje „Pregled svih stavki cjenika” i preuzima tablicu s Pregleda (filtri, izvoz „fali sidro”, grupiranje po poslovnici). Samostalne stavke i Provjera stavki imaju pretragu po nazivu i šifri i 50 stavki po stranici; stare adrese s filtrom vode na Provjeru stavki. Na mobitelu tablice postaju kompaktan popis.
* Postavke: navigacija sekcija na vrhu, duža objašnjenja u zatvorenom „Više o tome”; „Pouzdanija objava” pokazuje status i gumb „Kopiraj upute” (adresa i upute za izrađivača stranice ili hosting), a koraci su u zatvorenom bloku.
* Licenca: status aktivne licence više ne završava neoznačenim datumom aktivacije; tekst o probnoj verziji prikazuje se samo tijekom probe. U uputama za šifru uklonjen je zastarjeli savjet da se automatska šifra „uključi” (od 0.9.1 uvijek je uključena).

= 0.9.5 =
* Cjenik je jedna datoteka po poslovnici i vrsti (roba / usluge), bez obzira na referentni datum stavki. HOK traži zasebne datoteke samo po poslovnici i po vrsti. Dosad su stavke s drugim referentnim datumom (šestica iz 2025., vlastiti datum stavke) išle u zasebnu datoteku s datumom u nazivu (npr. roba-2025-05-02.csv), izvan propisanog oblika naziva. Sada su u istoj datoteci, a naziv datoteke je uvijek u propisanom obliku, bez datumskog nastavka.
* CSV ima novi zadnji stupac „Datum dodatne cijene” (DD.MM.GGGG.), popunjen u svakom retku: datum na koji vrijedi sidrena cijena te stavke. Zaglavlje sidrene cijene i dalje nosi datum iz postavki (npr. „Cijena 10.9.2026.”). HOK stupci ostaju istim redom. XML ostaje jedna datoteka s datumom uz sidrenu cijenu svake stavke (postojeći atribut). Stranica cjenika (cjenik.html) prikazuje isti stupac.
* Stare adrese s datumom (npr. /cjenik/roba-2025-05-02.csv) trajno se preusmjeravaju (301) na glavnu datoteku (/cjenik/roba.csv), koja sada sadrži i te stavke. Do prve objave nakon nadogradnje stara datoteka s datumom i dalje je trenutni cjenik; nakon nje ostaje u popisu ranijih verzija 30 dana od svoje objave, uz oznaku „(dodatna cijena na dan …)”, a zatim se briše kao i svaka ranija verzija.
* Nakon nadogradnje cjenik se jednom objavljuje ponovno, jer se zbog novog stupca mijenja sadržaj datoteke (redni broj pohrane raste za 1). To je očekivano.
* Datoteke iz 0.9.5 (sa stupcem „Datum dodatne cijene”) ne mogu se učitati u 0.9.4 ni ranije verzije. Uvoz u 0.9.5 čita i nove i stare datoteke; nova stavka iz uvoza dobiva datum svog retka iz tog stupca (inače datum iz zaglavlja).
* Javne adrese trenutnog cjenika (/cjenik/…, stranica cjenika) šalju "Cache-Control: no-cache" umjesto "public, max-age=300": preglednik, proxy ili CDN smije spremiti cjenik, ali ga prije svakog posluživanja provjerava (ETag / Last-Modified), pa se ne poslužuje zastarjeli cjenik. Arhivske datoteke se ne mijenjaju i ostaju "public, max-age=86400".
* Popravak: uz WooCommerce 9.2 i noviji dodatak više ne čita interni ključ _global_unique_id, pa u zapisu grešaka nema obavijesti za svaki proizvod bez GTIN-a.
* Popravak: prijevodi se više ne učitavaju prerano (obavijest _load_textdomain_just_in_time u WordPressu 6.7 i novijem).
* Razvoj: testovi razdvojeni na logiku i sučelje; kod dodatka nepromijenjen.

= 0.9.4 =
* Popis ranijih verzija (stranica „Objava cjenika” i /cjenik/cjenik.html) za svaku datoteku prikazuje puni zapis, u istom obliku kao poveznica trenutnog cjenika: „24.09.2026. – Obrt_…_7_2026-09-24T1626.csv”. Dosad je stajalo samo vrijeme i oznaka formata. Pravila popisa se ne mijenjaju: jedan unos po danu, današnji dan izostavljen, formati prema datotekama na disku.
* Poveznica cjenika s drugim referentnim datumom sada u tekstu nosi naziv te datoteke. Dosad je tekst imenovao glavnu datoteku, iako je poveznica vodila na ispravnu.
* Ispravak prema propisu: najniža cijena u zadnjih 30 dana sada uključuje i cijenu koja je vrijedila na početku razdoblja od 30 dana (zadnji zapis prije njega), uvijek, a ne samo kad u razdoblju nema drugih zapisa. Dosad se ta cijena nije računala, pa je u cjeniku mogla biti prikazana viša najniža cijena od stvarne, a stavka na akciji dulje od 30 dana ostajala je s praznim stupcem. Čišćenje povijesti (40 dana) zato čuva najnoviji stariji zapis svake stavke. Akcijska cijena se i dalje ne bilježi u povijest.
* „Današnji dan” u povijesti cijena računa se po hrvatskom vremenu (kao rok objave), a ne po UTC-u; između ponoći i 02:00 zapis od jučer više se ne smatra današnjim. Spremljeni zapisi se ne mijenjaju.

= 0.9.3 =
* Jedno upozorenje = jedan okvir na svakom ekranu. U 0.9.2 se upozorenje o neobjavljenoj stranici prikazivalo dvaput (na nadzornoj ploči dodatka i u postavkama i triput), a upozorenje o kašnjenju objave u postavkama dvaput. Sada ih nosi samo zajednički crveni okvir.
* U tom okviru stoji radnja koja odgovara stanju stranice: „Objavi stranicu” za skicu, „Vrati stranicu iz smeća” (uz mogućnost izrade nove) za stranicu u smeću, „Kreiraj stranicu” kad ne postoji. Vraćanje iz smeća vraća stranicu u status koji je imala prije brisanja.
* Uz WooCommerce stranica „Objava cjenika” jedino je mjesto koje javno popisuje objavljene datoteke, pa je njezin izostanak sada neusklađenost (crveni okvir koji se ne može zatvoriti). U samostalnom načinu istu ulogu ima /cjenik/cjenik.html, pa ondje nepostojeća stranica ostaje savjet koji se može zatvoriti.

= 0.9.2 =
* Stranica „Objava cjenika” koja nije javno dostupna (skica, na čekanju, privatna ili zakazana) sada se prijavljuje kao neusklađenost, a ne kao savjet: crveni okvir na svakom ekranu admina, stavka u kontrolnoj listi i okvir na nadzornoj ploči, s gumbom „Objavi stranicu”. Dotad je dodatak takvu stranicu vodio kao urednu, pa su datoteke cjenika postojale, a posjetitelj na adresi stranice dobivao 404.
* Taj se okvir ne može trajno zatvoriti dok stranica nije objavljena — „Ne prikazuj više” i dalje vrijedi za savjete (kreiranje stranice, dodavanje u izbornik).
* Ovlast koju traže ekrani i obavijesti dodatka odlučuje se na jednom mjestu: uz WooCommerce je to manage_woocommerce, a u samostalnom načinu manage_options. Ponašanje uz WooCommerce je nepromijenjeno.
* Zahvati izvan samog dodatka traže stroža prava: vremenska zona web-mjesta uvijek manage_options (voditelj trgovine je ne može promijeniti), a izrada i objava stranice „Objava cjenika” uz to i WordPressovo pravo na objavu te stranice.

= 0.9.1 =
* Proizvod bez šifre i bez SKU-a sada UVIJEK dobiva internu oznaku (P… ili S…) — automatska šifra više nije postavka koja se uključuje. Šifra je obavezan stupac cjenika, pa je dosad sajt s isključenom postavkom objavljivao cjenik s praznim stupcem, a nadzorna ploča je te stavke prijavljivala kao „Blokira potpunu objavu”. Oznake se dodjeljuju i postojećim stavkama, bez ijedne radnje.
* Oznaka se prije dodjele provjerava: ako je netko ručno upisao šifru ili SKU istog oblika, ili ako je oznaka pripadala obrisanoj stavci, dodjeljuje se sljedeća slobodna (npr. P550-1). Ručno upisana šifra i WooCommerce SKU se nikad ne mijenjaju — automatska oznaka živi isključivo u podacima dodatka.
* Popis ranije objavljenih verzija sada prikazuje najviše jednu verziju po danu — zadnju toga dana. Dan postavljanja zna imati nekoliko probnih objava, a popis je javna informacija za kupca, ne zapisnik rada. Sve datoteke i dalje postoje na disku, u zapisniku i na svojim adresama; mijenja se samo odabir za prikaz. Današnje ranije verzije se ne prikazuju, a trenutna je i dalje iznad, uz sam cjenik.

= 0.9.0 =
* Stranica „Objava cjenika” sada ispod svakog cjenika prikazuje popis ranije objavljenih verzija s poveznicama na CSV i XML. Propis traži da svaka objavljena verzija ostane dostupna 30 dana; datoteke i zapisnik postojali su i prije, ali uz WooCommerce ih ništa nije linkalo, pa ih vanjski alat nije mogao pronaći (popis se dotad ispisivao samo na stranici cjenika u samostalnom načinu).
* Rok objave (8:00) mjeri se po hrvatskom vremenu, bez obzira na to kako je postavljena zona web-mjesta. Sajt ostavljen na UTC-u dosad je „vjerovao” da je stigao na vrijeme dok je objavljivao u 10:00 po hrvatskom satu, pa upozorenja o kašnjenju nisu ni okidala. Vrijeme vaše objave i nazivi datoteka i dalje su u zoni web-mjesta; ponovni pokušaji se vežu uz rok koji istječe prvi.
* Kad se zona web-mjesta razlikuje od one po kojoj se mjeri rok, postavke pokazuju oba sata („objava u 06:30 po zoni web-mjesta = 08:30 po zoni roka”).
* Ako zona web-mjesta nije postavljena ili nije zona u kojoj se mjeri rok, dodatak nudi ispravak u jednom kliku (uz potvrdu) i odmah prezakazuje objavu. Zonu nikad ne mijenja sam. Zona vašeg preglednika se samo prikazuje kao podatak — web-mjesto uredno postavljeno na hrvatsko vrijeme ne dobiva upozorenje ni kad mu administrator radi iz inozemstva.
* Ako dnevna objava robe ne uspije, pokušaji se nastavljaju i nakon 8:00, do kraja dana: zakašnjela objava je bolja od nikakve. Kašnjenje se i dalje prijavljuje kao upozorenje, a isti neuspjeh se ne javlja evidenciji iznova.
* Postavke pokazuju vrijeme zadnje provjere promjena usluga, pa se vidi da tiha provjera u pozadini doista teče. Ta provjera hvata i promjene koje nitko nije izazvao — npr. kad „najniža cijena u zadnjih 30 dana” klizne jer je stara niska cijena ispala iz prozora.
* Savjet o vremenu dnevne objave sada uspoređuje stvarne trenutke, a ne sate kao tekst, pa je točan i kad zona web-mjesta nije zona u kojoj se mjeri rok.
* Novo upozorenje kad je zona zadana kao fiksni pomak (UTC+X): takav sajt ne prati ljetno i zimsko računanje vremena, pa bi nakon zadnje nedjelje u listopadu objava kasnila sat vremena.
* Čarobnjak za postavljanje više ne dopušta završetak dok vremenska zona web-mjesta nije postavljena.
* Promjena vremenske zone web-mjesta sada odmah pomiče i zakazanu dnevnu objavu. Zakazani termini nose apsolutno vrijeme, pa je nakon ispravka zone objava dotad i dalje išla po starom satu (npr. 06:30 po UTC-u = 08:30 po hrvatskom vremenu), a u postavkama je pisalo 06:30. Isto se preračunava i rok zaostale regeneracije usluga.
* Arhiva se ravna po datotekama koje stvarno postoje, a ne po trenutnoj postavci formata: ako ste objavljivali CSV i XML pa isključili XML, ranije objavljeni XML ostaje na popisu i dostupan do isteka svojih 30 dana. Trenutni cjenik i dalje postoji samo u odabranim formatima.

= 0.8.0 =
* Uvoz sada UVIJEK kreira neaktivnu stavku za redak koji u cjeniku nema para — potvrdni okvir „kreiraj nove stavke” je uklonjen, jer je uz aktivan WooCommerce bio isključen pa su se retci tiho gubili („kreira se: 0”).
* Kad su svi retci iz datoteke stavke koje postoje, ali su isključene iz cjenika, pregled to i kaže umjesto da javi samo „Nema promjena za primjenu.”.

= 0.7.0 =
* Uvoz cjenika više ne preskače tiho retke bez para: redak za koji u cjeniku nema ničega postaje nova stavka, ali NEAKTIVNA — ne objavljuje se dok je ne potvrdite.
* Novi gumb „Potvrdi sve potpune” uključuje odjednom sve uvezene stavke koje imaju sve što propis traži; nepotpune ostaju neaktivne uz popis onoga što im nedostaje.
* Redak koji odgovara stavci isključenoj iz cjenika (ili neaktivnoj) sada dobiva obavijest umjesto upozorenja: „Postoji stavka ..., ali je isključena iz cjenika — redak je preskočen.”
* Neaktivne stavke više se ne uparuju pri uvozu, jednako kao isključeni WooCommerce proizvodi — uvoz više ne mijenja tiho ono što nije u cjeniku.
* Nadzorna ploča javlja koliko stavki iz uvoza čeka potvrdu, a povrat uvoza briše i stavke koje je uvoz kreirao.
* Brisanje stavke sada briše i njezinu povijest cijena.

= 0.6.0 =
* Praćenje cijena: dodatak od sada bilježi svaku promjenu redovne cijene proizvoda i stavki, da bi mogao izračunati najnižu cijenu u zadnjih 30 dana. Povijest se gleda unaprijed — ono što je bilo prije nadogradnje ne postoji.
* Novi stupac u cjeniku, „Najniža cijena u zadnjih 30 dana”, odvojen od dodatne (sidrene) cijene. Popunjava se samo za stavke koje su trenutno na sniženju; za ostale ostaje prazan.
* Dok se povijest ne skupi, stavka na sniženju privremeno dobiva svoju redovnu cijenu, a kontrolna lista javlja od kada praćenje radi i kada će povijest biti potpuna.
* Uvoz i dalje prihvaća cjenike bez tog stupca, pa datoteke iz ranijih verzija rade kao i prije.

= 0.5.0 =
* Stranica „Objava cjenika” sada ispod trenutnog cjenika navodi i ranije objavljene verzije, sa svojim datumom i poveznicama; svaka ostaje dostupna 30 dana od objave, kako propis traži.
* Dva referentna datuma: hrana, piće, kozmetika, sredstva za čišćenje, toaletne potrepštine i proizvodi za kućanstvo imaju dodatnu cijenu na dan 2.5.2025., a sve ostalo datum iz postavki. Kategorije se označe u Postavkama, pojedini proizvod na samom proizvodu, a samostalne stavke u obrascu stavke ili grupno pri uvozu.
* Stavke s drugim referentnim datumom objavljuju se u zasebnoj datoteci (npr. /cjenik/roba-2025-05-02.csv), jer datoteka po propisu nosi datum u nazivu stupca. Trgovci bez takvih stavki i dalje imaju jednu datoteku, bez ikakve promjene.
* XML sada uz svaku stavku navodi njezin referentni datum, a ne jedan datum za cijelu datoteku.
* Kontrolna lista podsjeti ako ništa nije označeno kao šestica iz 2025., a nazivi stavki govore suprotno.

= 0.4.0 =
* Automatska interna šifra više nema prefiks "AUTO-": oznake su sada oblika P123 (WooCommerce) i S45 (Stavke cjenika). Oznake dodijeljene ranijom verzijom prepisuju se jednom, pri nadogradnji.
* Ekran „Licenca i aktivacija” razdvojen je u dvije kartice: „Unesi kôd” za one koji kôd već imaju i „Zatraži aktivaciju” za one koji ga tek traže (obrazac zahtjeva više ne prikazuje polje za kôd).
* U zahtjevu za aktivaciju odabir paketa (jedna ili više poslovnica) sada je obavezan i šalje se uz zahtjev, pa kôd stiže s ispravnim paketom.
* Upozorenje u postavkama kad vremenska zona WordPressa nije postavljena, jer se tada vrijeme objave i rok od 8:00 računaju po UTC vremenu.

= 0.3.0 =
* Prošireno postavljanje (wizard): pitanje „Imate li više poslovnica?” na početku, ponuda automatske šifre za proizvode bez šifre, neobavezna pouzdanija objava točno na vrijeme i adresa stranice „Objava cjenika” (ili izrada stranice) na kraju.
* Brza izmjena na popisu WooCommerce proizvoda: sidrena cijena, naziv akcije i poslovnica bez otvaranja proizvoda.
* Jednostavniji jezik u sučelju i „Napredne postavke” za rjeđe korištene opcije.
* Jasnija automatska provjera s hostinga: nije obavezna, koraci s gumbom „Kopiraj” i prikaz stanja.

= 0.2.0 =
* Novi format aktivacijskog koda (MPGC2): kôd nosi datum isteka (godišnja ili trajna licenca) i paket (jedna ili više poslovnica). Stari MPGC1 kodovi više ne vrijede.
* Više poslovnica dostupno uz paket „Više poslovnica”.
* Dnevna online provjera licence (samo domena); neuspjeh provjere ne utječe na rad.
* Besplatna probna verzija 10 dana; nakon isteka automatska objava staje, a već objavljeni cjenik ostaje javno dostupan.
* Ekran „Licenca” s unosom koda i obrascem „Zatraži aktivaciju”.

= 0.1.0 =
* Praćenje sidrene (dodatne) cijene i referentnog datuma po proizvodu, varijaciji i samostalnoj stavci.
* Automatsko generiranje CSV i XML cjenika za robu (dnevno, prije 8:00) i usluge (pri promjeni), s nazivom datoteke i rednim brojem pohrane po propisu.
* Javni URL-ovi bez prijave i arhiva od 30 dana.
* Podrška za više poslovnica (zasebni cjenici, URL-ovi i brojači).
* Wizard u 3 koraka, nadzorna ploča i kontrolna lista.
* Rad s WooCommerceom ili samostalno (s HTML stranicom cjenika).
* Kontekstualne upute prema smjernicama HOK-a.
