Nordlet proti Odoo za graditelje platform
Primerjava za razvijalce, ki izbirajo med vgrajenim računovodskim API-jem in odprtokodnim paketom ERP, pripravljena na podlagi dokumentacije posameznega izdelka.
Odoo in Nordlet se na seznamih ekip za razvoj platform pogosto znajdeta skupaj, vendar ne gre za isto vrsto izdelka. Odoo je obsežen nabor poslovnih aplikacij z vgrajenim računovodstvom, ki ga lahko gostite sami in poljubno spreminjate. Nordlet je računovodsko zaledje brez ambicij zunaj računovodstva, zasnovano za klicanje iz izdelkov tretjih oseb.
Izbira se običajno zreducira na dve vprašanju: koliko svojega poslovanja želite imeti v enem sistemu in kdo ga bo upravljal. Vse spodnje navedbe o Odooju izvirajo iz Odoojeve lastne dokumentacije in cenikov, ki so navedeni tam, kjer je to pomembno.
Kaj je posamezni izdelek
Odoo je odprtokodni nabor, ki obsega računovodstvo, zaloge, proizvodnjo, prodajo, CRM, kadrovske zadeve, spletna mesta in drugo, na voljo pa je kot Odoo Online, na Odoo.sh ali v lastnem gostovanju. Njegove prednosti so širina, razširljivost in možnost lastnega zagona. Računovodska pravila, specifična za posamezne države, izhajajo iz lokalizacijskih modulov, skupnost okoli njega pa je obsežna.
Nordlet je računovodski API v oblaku. Ponuja nespremenljivo glavno knjigo (double-entry ledger) z dvostavnim knjiženjem, izdajanje računov, nabavne evidence, bančne izpiske in usklajevanje, zaloge, osnovna sredstva, plače, poročanje in obravnavo davkov v EU prek enega vmesnika REST – trenutno več kot 400 končnih točk (endpoints) v 29 modulih, ustvarjenih iz ene specifikacije OpenAPI. Na voljo je tudi aplikacija, ki deluje na istih končnih točkah, kot jih uporabljajo zunanji klicatelji.
Vprašanje API-ja, ki odloča o večini ocen
Tu se izdelki za graditelje platform najbolj razlikujejo.
Odoojev zunanji API deluje na ravni modelov. Overite se in nato kličete metode ORM nad podatkovnimi modeli, kot so account.move za temeljne dokumente in račune, res.partner za stike in account.account za kontni načrt prek protokolov XML-RPC ali JSON-RPC. To je zmogljivo: dosežete lahko vse, kar sistem lahko modelira. Hkrati to pomeni, da je odgovornost za pravilno uporabo modelov na vas, vaša integracija pa je tesno povezana z Odoojevim notranjim podatkovnim modelom in ne s stabilno domensko pogodbo (domain contract).
Dve dejstvi iz Odoojevega lastnega gradiva spremenita računico:
- Odoojeva dokumentacija navaja, da je dostop do zunanjega API-ja na voljo v cenovnem razredu Custom in ne v paketih One App Free ali Standard. Dostop do API-ja je torej poslovna odločitev glede cen, ne le tehnična. Trenutni paketi in cene so na voljo na Odoojevi strani s cenami.
- Odoo je napovedal, da so končne točke
/xmlrpc,/xmlrpc/2in/jsonrpcpredvidene za ukinitev – v Odoo 22 in Odoo Online 21.1 – pri čemer jih bo nadomestil novejši API JSON-2. Integracija, napisana za trenutne končne točke RPC, bo v prihodnosti zahtevala migracijo.
Nordletov API deluje na domenski ravni. Operacije so oblike POST /v1/{module}/{resource}/{action} s telesom JSON, kar pomeni, da kličete sales/invoices/issue namesto neposrednega spreminjanja modela dnevnika, računovodske posledice pa so v pristojnosti samega API-ja. Ključi nosijo obsege (scopes), kot je sales:write. Ponovni poskusi (retries) so zaščiteni s glavo Idempotency-Key: isti ključ z istim bremenom (payload) vrne shranjeni odziv, medtem ko je isti ključ s spremenjenim bremenom zavrnjen z napako idempotency_key_reuse, namesto da bi bil tiho sprejet. Dogodki webhook so zapisani v transakcijsko odložišče (outbox) znotraj iste baze podatkov kot sprememba, zato preklican dokument nikoli ne sproži dogodka, dostave pa so podpisane s podpisom HMAC, ki ga lahko preverite.
Primerjava funkcij
Polja z oznako »ni javno potrjeno« pomenijo, da zmožnosti nismo mogli preveriti na ravni, ki jo razvijalec potrebuje pred sprejetjem odločitve. To ne pomeni trditve, da funkcija ne obstaja.
| Zmožnost | Nordlet | Odoo |
|---|---|---|
| Oblika izdelka | Računovodski API, gostovan v oblaku | Celovit poslovni paket; gostovan ali v lastni režiji |
| Primarni vmesnik | API REST s tipiziranim kompletom SDK za TypeScript | Spletna aplikacija; zunanji API na ravni modelov |
| Protokol API | JSON prek HTTPS, slog RPC POST za vsako dejanje | XML-RPC in JSON-RPC z nadomestnim API-jem JSON-2 |
| Razpoložljivost API-ja | V vsakem paketu, vsi moduli | Paket Custom glede na Odoojevo dokumentacijo |
| Glavna knjiga z dvostavnim knjiženjem | Da, ravnovesje uveljavlja sprožilec baze podatkov ob potrditvi | Da, znotraj računovodskega modula |
| Zaklepanje obdobij | Da; knjiženja z datumom v zaklenjenem obdobju so zavrnjena s kodo 409 |
Datumi zaklepanja so podprti v računovodskem modulu |
| Ključi za idempotentnost | Da, dokumentirana semantika, vključno s ponovitvijo in trkom | Ni javno potrjeno za zunanji API |
| Spletni kljuki (webhooks) | Da, podpisani, s ponovnimi poskusi, iz transakcijskega odložišča | Avtomatizirana dejanja in spletni kljuki obstajajo; garancije dostave niso javno potrjene |
| Revizijska sled | Vsaka sprememba z izvajalcem, dejanjem, entiteto, razliko; omogoča poizvedbe | Klepet (chatter) in zapiski v dnevniku; obseg se razlikuje glede na model |
| DDV v EU | Stopnje za države članice EU-27, preverjanje VIES, izračun OSS/IOSS s popravki | Lokalizacijski moduli za posamezne države; globina se razlikuje glede na državo |
| E-fakturiranje | EN 16931 UBL za Peppol BIS 3.0; nacionalne obliki za IT, PL, RO | Lokalizacijski moduli pokrivajo več nacionalnih oblik |
| Zaloge, proizvodnja | Zaloge FIFO, kosi avtomatizacije, sestava in razstavljanje, usmerjanja, delovna mesta, proizvodni nalogi z beleženjem po operacijah, preverjanja kakovosti, vzdrževanje | Obsežno, ena osrednjih prednosti |
| CRM, spletno mesto, trženje | Samo povpraševanja partnerjev, skupine in statusi; brez urejevalnika spletnih mest ali orodij za trženje | Da, osrednja prednost |
| Lastno gostovanje (self-hosting) | Ne; podpora BYOC je na voljo v paketu Custom | Da |
| Dostopnost izvorne kode | Lastniška koda | Odprtokodno jedro s plačljivimi različicami |
| Več podjetij (multi-company) | Neomejeno število podjetij pod enim računom, dostop na podlagi vlog | Podprto več podjetij |
Cenovni modeli
Modelov ni mogoče primerjati neposredno, ker zaračunavajo različne stvari.
Odoo zaračunava na uporabnika na mesec, pri čemer je brezplačni paket omejen na eno samo aplikacijo, dostop do zunanjega API-ja pa je na voljo v paketu Custom. Za platformo je nerodno to, da je število »uporabnikov« slaba merila za obremenitev, ko pa računovodstvo ustvarja vaša programska oprema in ne vaše osebje. Lastno gostovanje odpravlja stroške naročnine, hkrati pa prinaša stroške infrastrukture in vzdrževanja.
Nordlet zaračunava glede na število zahtevkov. Objavljeni paketi znašajo 10 EUR na mesec za 3.000 zahtevkov, 50 EUR za 30.000 in 300 EUR za 200.000, pri čemer se dodatni zahtevki zaračunavajo posamično, paket po meri (custom) pa je na voljo na zahtevo. Vsak paket vključuje vse module in celoten API; število uporabnikov, podjetij in testnih okolij (sandbox) je neomejeno. Zahtevek je vsako dejanje, izvedeno prek API-ja ali aplikacije.
Praktična posledica: tržnica s štirimi zaposlenimi in 50.000 mesečnimi računovodskimi dejanji plača 50.000 dejanj v modelu obračuna po porabi ter štiri uporabnike v modelu na uporabnika – pri čemer se številka v slednjem primeru ne spremeni, ko se obseg podvoji, kar deluje v obe smeri. Izračunajte lastne številke.
Kje je Odoo boljša izbira
- V enem sistemu z eno bazo podatkov želite združiti računovodstvo, zaloge, proizvodnjo, CRM in spletno mesto.
- Sistem morate sami gostiti zaradi varnosti podatkov, stroškov ali notranjih pravil.
- Želite spreminjati izvorno kodo in imate v hiši ustrezne zmogljivosti za vzdrževanje teh sprememb skozi nadgradnje.
- Vaše računovodstvo predstavlja interno poslovno administracijo in ne funkcije izdelka, ki ga prodajate.
- Nahajate se v državi, kjer je Odoojev lokalizacijski modul močan in se aktivno vzdržuje.
Odoojeva širina je resnična in noben računovodski API je ne nadomesti.
Kje pride v poštev Nordlet
- Računovodske dogodke ustvarja vaša programska oprema in ne vaše osebje.
- Knjige morate voditi za veliko podjetij pod enim računom, ne da bi morali plačevati naročnino za vsak subjekt posebej.
- Potrebujete uveljavljene in nespremenljive invariantne lastnosti, na katere se lahko platforma zanese: usklajena knjiženja, zaporedne številke brez vrzeli, zaklenjena obdobja, nespremenljivo zgodovino in idempotentno zapisovanje.
- Integrirati se želite s stabilno domensko pogodbo namesto z notranjim podatkovnim modelom.
- Vaše obveznosti glede DDV v EU pokrivajo več držav in te logike ne želite vzdrževati sami.
Omejitve, povedane naravnost: Nordlet je v zgodnji dostopnosti in vključuje prve načrtovalske partnerje; temelji na gostovanju v oblaku in ne na lastnem gostovanju; partnerski zapisi vključujejo povpraševanja, skupine in statuse namesto prodajnega lijaka; nima urejevalnika spletnih mest ali trženjskih orodij; obračun plač je na voljo izključno za Litvo; domači davčni obračuni so danes na voljo za tri države – Litvo (FR0600), Nemčijo (UStVA) in Poljsko (JPK_V7M) –, medtem ko se DDV OSS in IOSS izračunata, vendar se ne oddajata v vašem imenu.
Kaj bi preverili pred odločitvijo
- Potrdite paket Odoo, ki ga dejansko potrebujete. Če dostop do zunanjega API-ja zahteva paket Custom, izračunajte ceno tega paketa glede na število vaših uporabnikov in ne glede na vstopni paket.
- Povprašajte o časovnem načrtu migracije RPC za vsako integracijo Odoo, ki jo nameravate obdržati po napovedani ukinitvi trenutnih končnih točk.
- Preizkusite ponovne poskuse na obeh sistemih. Pošljite isto zahtevo dvakrat in preštejte nastale vnose.
- Preizkusite zaklepanje. Zaprite obdobje in nato poskusite vanj knjižiti podatke.
- Preverite svoje specifične države. Za Odoo preverite, kateri lokalizacijski modul je na voljo in kako aktivno se vzdržuje; za Nordlet preverite, katere izhode za DDV te države trenutno podpirajo.
- Izračunajte skupne stroške v obdobju treh let, vključno z gostovanjem in trudom z nadgradnjami, če sistem gostite sami, oziroma z rastjo obsega zahtevkov, če plačujete po porabi.
FAQ
Ali je Odoo brezplačen?
Odoo ponuja brezplačni paket, omejen na eno aplikacijo, njegova skupnostna različica pa je odprtokodna. Za integracijo platforme so ustrezni stroški običajno povezani z gostovanjem, nadgradnjami, vzdrževanjem lokalizacije in plačljivim paketom, ki je potreben za dostop do zunanjega API-ja, in ne sama licenca.
Ali se lahko Odoo uporablja kot vgrajeno računovodsko zaledje za spletno tržnico?
Z njim se je mogoče integrirati in nekatere ekipe to počnejo. Upoštevati je treba, da zunanji API deluje na ravni podatkovnih modelov, da je dostop do API-ja vezan na določen cenovni razred, da so trenutni končni točki RPC predvideni za zamenjavo ter da prevzemate odgovornost za pravilno uporabo računovodskih modelov. Te vidike preverite glede na lastne zahteve in ne predvidevajte vnaprej.
Ali Nordlet ponuja vse, kar ponuja Odoo?
Ne. Nordlet pokriva računovodstvo in sorodne operacije – izdajanje računov, glavno knjigo, bančništvo, zaloge, sredstva, proizvodnjo, plače, poročanje in davke v EU. Proizvodnja zajema kose avtomatizacije, usmerjanja, delovna mesta, proizvodne naloge z beleženjem po operacijah, preverjanja kakovosti in vzdrževanje opreme, vendar brez načrtovanja povpraševanja in zmogljivosti, ki ga ponuja Odoo. Partnerski zapisi vključujejo povpraševanja, skupine in statuse namesto prodajnega lijaka, prav tako pa ni urejevalnika spletnih mest ali trženjskih orodij.
Katera rešitev je boljša za DDV v EU?
Odvisno od države. Nordlet vključuje stopnje DDV v EU za posamezne države, preverjanje VIES, izračun obračunov OSS in IOSS s popravki prejšnjih obdobij, evidence iSAF ter standard EN 16931 UBL, pri čemer je Litva najglobje pokrita država. Odoojeva pokritost izhaja iz lokalizacijskih modulov, katerih globina in vzdrževanje se razlikujeta glede na državo, zato je pošten odgovor za posamezno državo ta, da preverite ustrezen modul za tisto državo.
Ali lahko Nordlet gostim sam?
Na standardnih paketih ne. Paket Custom vključuje podporo za lastni oblak (bring-your-own-cloud), o čemer se je treba posebej dogovoriti, če je lastno gostovanje pogoj.