Dokumentacija
Objava i javne adrese
Kada se objavljuje, gdje su datoteke i kako ih poslužiti s vlastite domene.
Kada
- Proizvodi: svako jutro prije 7:00 (Sidro najprije povuče promjene iz WooCommercea, Shopifyja ili feeda, pa objavi). Zakonski rok je 8:00.
- Usluge: odmah nakon svake promjene cijene u Sidru.
- Ručno: gumb Objavi cjenik sada ili
POST /api/v1/publish. - Rezerva: ako dnevna objava iz bilo kojeg razloga kasni, prvi dohvat javne datoteke nakon ponoći je sam pokrene; jutarnja provjera (oko 8:30, zimi oko 7:30) pokuša još jednom i pošalje upozorenje ako cjenik i dalje nije objavljen.
Javne adrese
Sve su bez prijave, s dopuštenim CORS-om — namijenjene automatiziranom dohvatu (t. VII.).
| Adresa | Sadržaj |
|---|---|
/c/{oznaka} |
stranica s cjenicima svih lokacija i arhivom |
/c/{oznaka}/index.json, index.xml |
strojni popis lokacija i svih datoteka (s SHA-256) |
/c/{oznaka}/{lokacija}/latest.csv, latest.xml |
zadnja objava (stalna adresa) |
/c/{oznaka}/{lokacija}/{NAZIV}.csv, .xml |
točno određena objava — nikad se ne mijenja |
/c/{oznaka}/{lokacija}/uzivo.csv, .xml, .json |
cijene u stvarnom vremenu (stare najviše minutu) |
Datirane datoteke imaju ETag (SHA-256) i predmemoriju od godinu dana; latest.* minutu.
Arhiva
Datoteke ostaju javne najmanje 35 dana (propis traži 30), u plaćenim paketima dulje (90 dana, godinu, dvije). Nakon isteka datoteka se briše, a zapis objave (vrijeme, broj stavki, sažetak) ostaje u reviziji.
Poveznica s vašeg weba
Propis traži objavu na vašim mrežnim stranicama. Najmanje: poveznica „Cjenici" u podnožju na javnu stranicu:
<a href="https://sidro-cjenici.vercel.app/c/vasa-oznaka" aria-label="Cjenici proizvoda i usluga (CSV i XML)">Cjenici</a>
Datoteke s vlastite domene
Ako želite da datoteke budu i na vašoj domeni (npr. https://vasatrgovina.hr/cjenici/…), proslijedite putanju na Sidro. Dodatak za WooCommerce to radi sam. Za ostale:
nginx
location /cjenici/ {
proxy_pass https://sidro-cjenici.vercel.app/c/vasa-oznaka/;
proxy_set_header Host sidro-cjenici.vercel.app;
proxy_ssl_server_name on;
}
Apache (mod_proxy)
SSLProxyEngine on
ProxyPass /cjenici/ https://sidro-cjenici.vercel.app/c/vasa-oznaka/
ProxyPassReverse /cjenici/ https://sidro-cjenici.vercel.app/c/vasa-oznaka/
Next.js (next.config.js)
module.exports = {
async rewrites() {
return [{ source: '/cjenici/:path*', destination: 'https://sidro-cjenici.vercel.app/c/vasa-oznaka/:path*' }];
},
};
Vercel (vercel.json)
{ "rewrites": [{ "source": "/cjenici/:path*", "destination": "https://sidro-cjenici.vercel.app/c/vasa-oznaka/:path*" }] }
Netlify (_redirects)
/cjenici/* https://sidro-cjenici.vercel.app/c/vasa-oznaka/:splat 200
Cloudflare Worker
export default {
fetch(req) {
const u = new URL(req.url);
if (!u.pathname.startsWith('/cjenici/')) return fetch(req);
return fetch('https://sidro-cjenici.vercel.app/c/vasa-oznaka/' + u.pathname.slice(9) + u.search);
},
};