Nordlet protiv Odoo-a za graditelje platformi
Usporedba za razvojne inženjere koji biraju između API-ja za ugrađeno knjigovodstvo i open-source ERP paketa, temeljena na dokumentaciji svakog pojedinog proizvoda.
Odoo i Nordlet timovi koji grade platforme često uzimaju u uži izbor, no to nisu iste vrste proizvoda. Odoo je široki poslovni aplikacijski paket koji unutar sebe sadrži knjigovodstvo, a možete ga sami hostati i prilagođavati. Nordlet je knjigovodstvena pozadina (backend) bez ambicija izvan knjigovodstva, dizajnirana za pozivanje iz tuđeg proizvoda.
Izbor se obično svodi na dva pitanja: koliko svog poslovanja želite imati u jednom sustavu i tko će ga pokretati. Sve u nastavku o Odoo-u dolazi iz Odoo-ove vlastite dokumentacije i cjenika, s poveznicama tamo gdje je to važno.
Što je pojedini proizvod
Odoo je open-source paket koji obuhvaća knjigovodstvo, skladište, proizvodnju, prodaju, CRM, ljudske resurse, web stranice i još mnogo toga, a dostupan je kao Odoo Online, na platformi Odoo.sh ili za samostalno hostanje (self-hosted). Njegove su prednosti širina, mogućnost proširivanja i mogućnost samostalnog pokretanja. Ponašanje knjigovodstva specifično za pojedinu zemlju dolazi iz lokalizacijskih modula, a zajednica oko njega je velika.
Nordlet je računalni API za knjigovodstvo. Pruža nepromjenjivu (immutable) glavnu knjigu s dvojnim knjigovodstvom, fakturiranje, evidenciju nabave, bankovne izvode i usklađivanje, skladište, dugotrajnu imovinu, obračun plaća, izvještavanje i obradu poreza unutar EU putem jednog REST sučelja - trenutačno više od 400 krajnjih točaka (endpoints) kroz 29 modula, generiranih iz jedne OpenAPI specifikacije. Postoji aplikacija i ona radi na istim krajnjim točkama koje dobivaju vanjski pozivatelji.
Pitanje API-ja, koje odlučuje o većini procjena
Ovdje se proizvodi najoštrije razilaze za graditelje platformi.
Odoo-ov vanjski API je na razini modela. Autentificirate se i zatim pozivate ORM metode na podatkovnim modelima kao što su account.move za temeljnice i fakture, res.partner za kontakte i account.account za kontni plan, putem XML-RPC ili JSON-RPC protokola. Ovo je moćno: sve što sustav može modelirati, možete dosegnuti. To također znači da je odgovornost za pravilno korištenje modela na vama, a vaša je integracija vezana uz Odoo-ov unutarnji podatkovni model, umjesto uz stabilan ugovor domene (domain contract).
Dvije činjenice iz Odoo-ovog vlastitog materijala mijenjaju računicu:
- Odoo-ova dokumentacija navodi da je pristup vanjskom API-ju dostupan na tarifnom razredu Custom, a ne na paketima One App Free ili Standard. Pristup API-ju stoga je poslovna odluka o cijeni, a ne samo tehnička odluka. Trenutačni paketi i cijene nalaze se na Odoo-ovoj stranici s cijenama.
- Odoo je najavio da su krajnje točke
/xmlrpc,/xmlrpc/2i/jsonrpcpredviđene za uklanjanje - u verziji Odoo 22 i Odoo Online 21.1 - uz noviji JSON-2 API kao zamjenu. Integracija napisana za trenutne RPC krajnje točke u budućnosti zahtijeva migraciju.
Nordlet-ov API je na razini domene. Operacije su oblika POST /v1/{module}/{resource}/{action} s JSON tijelom zahtjeva, tako da pozivate sales/invoices/issue umjesto da izravno manipulišete modelom dnevnika, a knjigovodstvene posljedice su odgovornost samog API-ja. Ključevi nose opsege (scopes) poput sales:write. Ponovni pokušaji (retries) zaštićeni su zaglavljem Idempotency-Key: isti ključ s istim sadržajem (payload) vraća spremljeni odgovor, dok se isti ključ s promijenjenim sadržajem odbija s pogreškom idempotency_key_reuse umjesto da bude tiho prihvaćen. Događaji webhooka zapisuju se u transakcijski outbox unutar iste baze podataka kao i promjena, tako da opozvani dokument nikada ne odašilje događaj, a isporuke su potpisane HMAC potpisom koji možete provjeriti.
Usporedba značajki
Ćelije označene s „nije javno potvrđeno“ znače da nismo mogli potvrditi mogućnost na razini koja bi bila potrebna razvojnom inženjeru prije donošenja odluke. To nisu tvrdnje da značajka ne postoji.
| Mogućnost | Nordlet | Odoo |
|---|---|---|
| Oblik proizvoda | Knjigovodstveni API, u oblaku | Cijeli poslovni paket; u oblaku ili na vlastitom poslužitelju |
| Primarno sučelje | REST API s tipiziranim TypeScript SDK-om | Web aplikacija; vanjski API na razini modela |
| API protokol | JSON preko HTTPS-a, POST u stilu RPC-a po akciji | XML-RPC i JSON-RPC, uz JSON-2 API koji ih zamjenjuje |
| Dostupnost API-ja | Svaki paket, svi moduli | Custom paket prema Odoo-ovoj dokumentaciji |
| Glavna knjiga s dvojnim knjigovodstvom | Da, saldo se osigurava okidačem (trigger) baze podataka pri predaji | Da, unutar knjigovodstvenog modula |
| Zaključavanje razdoblja | Da; knjiženja datirana unutar zaključanog razdoblja odbijaju se s kodom 409 |
Datumi zaključavanja podržani u knjigovodstvenom modulu |
| Idempotentni ključevi | Da, dokumentirana semantika uključujući ponovnu reprodukciju i koliziju | Nije javno potvrđeno za vanjski API |
| Webhookovi | Da, potpisani, ponovljeni, iz transakcijskog outboxa | Automatske radnje i webhookovi postoje; jamstva isporuke nisu javno potvrđena |
| Zapis revizije (audit trail) | Svaka promjena s akterom, akcijom, entitetom, razlikom (diff); mogućnost pretraživanja | Bilješke u chatu i zapisnici; opseg ovisi o modelu |
| EU PDV (VAT) | Stope po državama za EU-27, VIES provjera, OSS/IOSS izračun s ispravcima | Lokalizacijski moduli po državama; dubina ovisi o državi |
| E-fakturiranje | EN 16931 UBL za Peppol BIS 3.0; nacionalni formati za IT, PL, RO | Lokalizacijski moduli pokrivaju nekoliko nacionalnih formata |
| Skladište, proizvodnja | FIFO zalihe, sastavnice (BOM), sastavljanje i rastavljanje, rute, radni centri, radni nalozi s evidencijom po operaciji, kontrole kvalitete, održavanje | Opsežno, temeljna snaga |
| CRM, web stranica, marketing | Upiti partnera, grupe i statusi; nema alata za izradu web stranica ni marketinških alata | Da, temeljna snaga |
| Samostalno hostanje (Self-hosting) | Ne; podrška za vlastiti oblak (BYOC) navedena na Custom paketu | Da |
| Dostupnost izvornog koda | Vlasnički (Proprietary) | Open source jezgra, s plaćenim izdanjima |
| Više kompanija (Multi-company) | Neograničen broj kompanija pod jednim računom, pristup temeljen na ulogama | Podržano više kompanija |
modeli naplate
Nisu usporedivi stavka po stavku jer naplaćuju različite stvari.
Odoo naplaćuje po korisniku mjesečno, s besplatnim paketom ograničenim na jednu aplikaciju i pristupom vanjskom API-ju na Custom paketu. Za platformu je nezgodno to što su „korisnici“ loša mjera za opterećenje kada vaš softver, a ne vaše osoblje, generira knjigovodstvo. Samostalno hostanje uklanja trošak pretplate, ali dodaje trošak infrastrukture i održavanja.
Nordlet naplaćuje po zahtjevu. Objavljeni paketi iznose 10 eura mjesečno s 3.000 zahtjeva, 50 eura s 30.000 i 300 eura s 200.000, pri čemu se dodatni zahtjevi naplaćuju po zahtjevu, a prilagođeni (custom) paket je dostupan na upit. Svaki paket uključuje svaki modul i cijeli API; korisnici, kompanije i testne kompanije (sandbox) su neograničeni. Zahtjev je bilo koja radnja izvršena putem API-ja ili aplikacije.
Praktična posljedica: internetska trgovina (marketplace) s četiri zaposlena i 50.000 mjesečnih knjigovodstvenih radnji plaća 50.000 radnji prema modelu naplate po potrošnji, odnosno četiri korisnika prema modelu po korisniku - s tim da se brojka po korisniku ne mijenja kada se obujam udvostruči, što ima dvostruki učinak. Izračunajte vlastite brojke.
Gdje je Odoo bolji izbor
- Želite knjigovodstvo, skladište, proizvodnju, CRM i web stranicu u jednom sustavu s jednom bazom podataka.
- Morate sami hostati sustav iz razloga suvereniteta podataka (data residency), troškova ili politika.
- Želite mijenjati izvorni kod i imate vlastite kapacitete za održavanje tih izmjena kroz nadogradnje.
- Vaše je knjigovodstvo unutarnja poslovna administracija, a ne značajka proizvoda koji prodajete.
- Nalazite se u zemlji u kojoj je Odoo lokalizacijski modul snažan i aktivno se održava.
Odoo-ova širina je stvarna i nijedan knjigovodstveni API ne može je zamijeniti.
Gdje Nordlet odgovara
- Vaš softver, a ne vaše osoblje, kreira knjigovodstvene događaje.
- Potrebne su vam knjige za mnogo kompanija pod jednim računom bez pretplate po svakom entitetu.
- Trebate nametnute invarijante na koje se vaša platforma može osloniti: uravnotežena knjiženja, numeriranje bez rupa, zaključana razdoblja, nepromjenjiva povijest, idempotentno pisanje.
- Želite se integrirati sa stabilnim ugovorom domene umjesto s unutarnjim podatkovnim modelom.
- Vaše obveze u vezi s EU PDV-om obuhvaćaju nekoliko zemalja i radije ne biste sami održavali tu logiku.
Ograničenja, recimo to jasno: Nordlet je u ranoj dostupnosti (early access) i privlači partnere za dizajn; hostira se umjesto da se samostalno hostira; partnerski zapisi nose upite, grupe i statuse umjesto prodajnog lijevka (sales pipeline); nema alata za izradu web stranica ni marketinških funkcija; obračun plaća odnosi se samo na Litvu; a domaći setovi izvješća danas su dostupni za tri zemlje - Litvu (FR0600), Njemačku (UStVA) i Poljsku (JPK_V7M) - pri čemu se OSS i IOSS izračunavaju, ali se ne predaju u vaše ime.
Što bismo provjerili prije donošenja odluke
- Potvrdite Odoo paket koji vam stvarno treba. Ako pristup vanjskom API-ju zahtijeva Custom paket, izračunajte cijenu tog paketa za svoj broj korisnika, a ne početnog paketa.
- Raspitajte se o vremenskom okviru migracije RPC-a za bilo koju Odoo integraciju koju planirate zadržati nakon najavljenog uklanjanja trenutačnih krajnjih točaka.
- Testirajte ponovne pokušaje (retries) na oba sustava. Pošaljite isti zahtjev dva puta i prebrojite nastale unose.
- Testirajte zaključavanje. Zatvorite razdoblje, a zatim pokušajte proknjižiti unutar njega.
- Provjerite svoje specifične zemlje. Za Odoo: koji lokalizacijski modul postoji i koliko se aktivno održava; za Nordlet: koji PDV izlazi postoje za te zemlje danas.
- Izračunajte ukupne troškove tijekom tri godine, uključujući hostiranje i trud oko nadogradnje ako sami hostate, te rast volumena zahtjeva ako se naplaćuje po potrošnji.
FAQ
Je li Odoo besplatan?
Odoo izdaje besplatni paket ograničen na jednu aplikaciju, a community izdanje je otvoreno (open source). Za integraciju platforme relevantni troškovi obično su hostiranje, nadogradnje, održavanje lokalizacije i plaćeni paket potreban za pristup vanjskom API-ju, a ne sama licenca.
Može li se Odoo koristiti kao ugrađena knjigovodstvena pozadina za internetsku trgovinu (marketplace)?
Može se integrirati i neki timovi čine upravo to. Važno je uzeti u obzir da vanjski API radi na razini podatkovnih modela, da je pristup API-ju povezan s određenim tarifnim razredom, da su trenutačne RPC krajnje točke predviđene za zamjenu te da vi preuzimate odgovornost za pravilno korištenje knjigovodstvenih modela. Provjerite te stavke u odnosu na vlastite zahtjeve umjesto da unaprijed pretpostavljate ishod.
Radi li Nordlet sve što radi Odoo?
Ne. Nordlet se bavi knjigovodstvom i srodnim operacijama - izdavanjem računa, glavnom knjigom, bankom, skladištem, imovinom, proizvodnjom, plaćama, izvještavanjem i EU porezima. Proizvodnja obuhvaća sastavnice (BOM), rute, radne centre, radne naloge s evidencijom po operaciji, kontrole kvalitete i održavanje opreme, bez planiranja potražnje i kapaciteta koje Odoo nudi. Partnerski zapisi nose upite, grupe i statuse umjesto prodajnog lijevka, a nema alata za izradu web stranica ni marketinških alata.
Koji je sustav bolji za EU PDV?
Ovisi o zemlji. Nordlet isporučuje stope EU PDV-a po zemljama, VIES provjeru, izračun OSS i IOSS obrazaca s ispravcima prethodnih razdoblja, i.SAF registre i EN 16931 UBL, pri čemu je Litva najdublje razrađen paket. Odoo-ova pokrivenost dolazi iz lokalizacijskih modula čija dubina i održavanje variraju ovisno o državi, stoga je iskren odgovor za bilo koju specifičnu zemlju provjera modula za tu zemlju.
Mogu li samostalno hostati Nordlet?
Ne na standardnim paketima. Custom paket navodi podršku za vlastiti oblak (bring-your-own-cloud), o čemu se može razgovarati ako je samostalno hostanje uvjet.