API i integracije
Tri načina da se webshop ili blagajna spoje s Usklađenošću cijena, od najlakšeg prema najmoćnijem: jedan redak na web stranici, gotov dodatak za platformu koju već koristite, ili REST API i SDK za vlastiti softver. Sve troje govori s istim računom, istim artiklima i istim javnim cjenikom.
Web widget
Jedan <script> na vašoj stranici: plutajući gumb „Cjenik” otvara javni cjenik s arhivom. Bez promjene stranice, bez kolačića.
Pogledaj primjer →
Dodaci za webshop
WooCommerce, Shopify i PrestaShop: proizvodi i cijene idu u servis pri svakom spremanju, a uz cijenu se ispisuje sidrena cijena. Instalacija bez programiranja.
WooCommerce · Shopify · PrestaShop →
REST API i SDK
Za blagajnu, ERP ili vlastiti webshop: artikli, cijene, odluka što ispisati uz cijenu, objave, uvoz, webhooks. SDK za PHP, Python i JavaScript.
Dokumentacija i SDK →
Gotovi dodaci za webshop platforme
Svaki dodatak radi isto troje: šalje artikle i cijene u servis pri svakoj promjeni (varijante kao zasebni artikli, akcije kao sniženja s datumom), ispisuje sidrenu cijenu ispod cijene na stranici proizvoda, i na klik pošalje cijeli katalog. Katalog u servisu se nikad ne mijenja bez vas. Otvoreni kod, licenca MIT.
WooCommerce
WordPress 6.2+, WooCommerce 8+, PHP 8.0+
- U aplikaciji: trgovac → Kanali → kanal tipa webshop (npr. WEB); API pristup → token s opsezima
catalog:write,prices:write,compliance:read. - Instalirajte dodatak (ZIP iz repozitorija u
wp-content/plugins/). - WooCommerce → Postavke → Usklađenost cijena: token, ID trgovca, šifra kanala → „Pošalji sve proizvode i cijene”.
Shopify
Custom app, Node 18+, bez App Storea
- U Shopify adminu: Develop apps → Create an app, opseg
read_products, App proxy/apps/uskladjenost. - Webhookovi products/create, update, delete na vaš host aplikacije.
node bin/server.js(webhookovi + proxy) i jednomnode bin/sync-all.js; Liquid snippet ispisuje sidrenu cijenu u temi.
PrestaShop
PrestaShop 8 (i 1.7.6+), PHP 7.4+
- Isti token i kanal kao za WooCommerce.
- Modul u mapu
modules/uskladjenostcijena(git clone ili ZIP kroz Učitaj modul). - Moduli → Usklađenost cijena → Konfiguriraj: token, ID trgovca, šifra kanala → „Pošalji sve proizvode i cijene”. Hook
displayProductPriceBlockispisuje sidrenu cijenu.
Vaša platforma nije na popisu (Magento, OpenCart, vlastiti webshop)? Uvoz CSV/XLSX datoteke s pregledom razlika prije upisa radi bez ikakvog koda, a API dolje pokriva sve što dodaci rade.
API i SDK
HTTPS, JSON, bearer token (pc_live_… ili pc_test_…) koji izdajete u aplikaciji pod API pristup. Svaki token ima opsege; svaki endpoint kaže koji treba. Iznosi idu u centima, vraćaju se kao decimalni tekst. Svaki upis cijene je idempotentan (Idempotency-Key), pa ponovljeni poziv nikad ne udvostruči povijest.
Što API radi
| Poziv | Što radi | Opseg |
|---|---|---|
| PUT /api/v1/items/{id} | artikl po vašoj šifri, dobije offer_id | catalog:write |
| GET /api/v1/items | katalog s cijenama, po stranicama | catalog:read |
| POST /api/v1/prices/by-external/{id} | cijena po vašoj šifri, bez offer_id-a | prices:write |
| GET /api/v1/offers/{id}/price-events | povijest cijena | prices:read |
| GET /api/v1/compliance/by-external/{id} | što ispisati uz cijenu (sidro, tekst) | compliance:read |
| GET /api/v1/publication-scopes | javni cjenici, rokovi, arhiva | publications:read |
| POST /api/v1/imports | CSV/XLSX s probnom provjerom i razlikama | imports:write |
| POST /api/v1/webhooks | obavijesti potpisane HMAC-SHA256 | webhooks:manage |
SDK: isti API u tri jezika
Svaki SDK pokriva cijeli API i provjeru potpisa webhook isporuka. Otvoreni kod, MIT.
composer require infomedia/uskladjenost-cijena-php
$api = new \UskladjenostCijena\Client($token);
$api->items()->upsert('SKU-1', ['merchant_id' => $m, 'kind' => 'product', 'name' => 'Deterdžent 3 kg']);
$api->prices()->recordByExternal('SKU-1', ['regular_price_minor' => 1250], ['channel_code' => 'WEB']);
echo $api->compliance()->byExternal('SKU-1')['data']['anchor_display']['label'];
pip install uskladjenost-cijena
api = Client(token)
api.items.upsert("SKU-1", merchant_id=m, kind="product", name="Deterdžent 3 kg")
api.prices.record_by_external("SKU-1", regular_price_minor=1250, channel_code="WEB")
print(api.compliance.by_external("SKU-1")["data"]["anchor_display"]["label"])
JavaScript / TypeScript
GitHub: uskladjenost-cijena-jsnpm install uskladjenost-cijena
const api = new Client(token);
await api.items.upsert('SKU-1', { merchant_id, kind: 'product', name: 'Deterdžent 3 kg' });
await api.prices.recordByExternal('SKU-1', { regular_price_minor: 1250 }, { channel_code: 'WEB' });
const { data } = await api.compliance.byExternal('SKU-1');
Webhookovi: svaka isporuka nosi X-PC-Signature: v1=HMAC-SHA256(secret, timestamp + "." + body); SDK-ovi imaju gotovu provjeru. Neuspjele isporuke ponavljamo nakon 1 min, 5 min, 30 min, 2 h i 12 h.
Svi repozitoriji na jednom mjestu
Sav kod integracija je javan, pod licencom MIT, na GitHubu. Prijave grešaka i prijedlozi idu kroz Issues u pripadnom repozitoriju.
- PHP SDK (Composer)https://github.com/ddragas/uskladjenost-cijena-php
- Python SDK (pip)https://github.com/ddragas/uskladjenost-cijena-python
- JavaScript / TypeScript SDK (npm)https://github.com/ddragas/uskladjenost-cijena-js
- WooCommerce dodatakhttps://github.com/ddragas/uskladjenost-cijena-woocommerce
- Shopify aplikacijahttps://github.com/ddragas/uskladjenost-cijena-shopify
- PrestaShop modulhttps://github.com/ddragas/uskladjenost-cijena-prestashop