Nordlet kontra Odoo dla twórców platform
Porównanie dla deweloperów wybierających między interfejsem API dedykowanym do wbudowanej księgowości a pakietem ERP o otwartym kodzie źródłowym, oparte na oficjalnej dokumentacji obu produktów.
Odoo i Nordlet są często zestawiane obok siebie przez zespoły tworzące platformy, jednak nie są to produkty tego samego rodzaju. Odoo to szeroki pakiet aplikacji biznesowych z modułem księgowym, który można samodzielnie hostować i modyfikować. Nordlet to zaplecze księgowo-finansowe bez ambicji wykraczających poza księgowość, zaprojektowane z myślą o wywoływaniu z poziomu zewnętrznego produktu.
Wybór zazwyczaj sprowadza się do dwóch pytań: jak dużą część biznesu chcesz zamknąć w jednym systemie oraz kto będzie tym systemem zarządzał. Wszystkie poniższe informacje na temat Odoo pochodzą z oficjalnej dokumentacji oraz cenników tego systemu i zostały ujęte w odpowiednich odnośnikach.
Czym są oba produkty
Odoo to pakiet o otwartym kodzie źródłowym obejmujący księgowość, gospodarkę magazynową, produkcję, sprzedaż, CRM, zasoby ludzkie, strony internetowe i inne obszary, dostępny jako usługa Odoo Online, na platformie Odoo.sh lub w wersji instalowanej we własnym zakresie (self-hosted). Jego mocnymi stronami są wszechstronność, rozszerzalność oraz możliwość samodzielnego uruchomienia. Specyfika księgowości dla poszczególnych krajów wynika z modułów lokalizacyjnych, a społeczność wokół projektu jest bardzo liczna.
Nordlet to chmurowe API księgowe. Zapewnia niezmienną księgę rachunkową opartą na podwójnym zapisie (double-entry ledger), fakturowanie, ewidencję zakupów, integrację z wyciągami bankowymi i ich uzgadnianie (reconciliation), gospodarkę magazynową, środki trwałe, płace, sprawozdawczość oraz obsługę podatków w UE za pośrednictwem jednego interfejsu REST – obecnie ponad 400 punktów końcowych w 29 modułach, generowanych z jednej specyfikacji OpenAPI. System posiada również aplikację użytkownika, która działa w oparciu o te same punkty końcowe, z których korzystają zewnętrzni klienci.
Kwestia API, która rozstrzyga większość analiz
W tym miejscu drogi obu produktów rozchodzą się najbardziej drastycznie z perspektywy twórców platform.
Zewnętrzne API Odoo działa na poziomie modeli. Uwierzytelniasz się, a następnie wywołujesz metody ORM dla modeli danych, takich jak account.move dla wpisów w dzienniku i faktur, res.partner dla kontrahentów czy account.account dla planu kont, korzystając z protokołu XML-RPC lub JSON-RPC. To potężne rozwiązanie: możesz sięgnąć po wszystko, co system potrafi zamodelować. Oznacza to jednak również, że odpowiedzialność za poprawne wykorzystanie modeli spoczywa na Tobie, a Twoja integracja jest ściśle powiązana z wewnętrznym modelem danych Odoo, a nie ze stabilnym kontraktem domenowym.
Dwa fakty zaczerpnięte z materiałów Odoo zmieniają tę kalkulację:
- Dokumentacja Odoo wskazuje, że dostęp do zewnętrznego API jest oferowany w planie cenowym Custom, a nie w planach One App Free lub Standard. Dostęp do API jest zatem decyzją biznesowo-cennikową, a nie wyłącznie techniczną. Aktualne plany i ceny można znaleźć na stronie cennika Odoo.
- Odoo ogłosiło, że punkty końcowe
/xmlrpc,/xmlrpc/2oraz/jsonrpcsą przewidziane do usunięcia – począwszy od wersji Odoo 22 i Odoo Online 21.1 – a ich następcą ma być nowsze API JSON-2. Integracja napisana dla obecnych punktów końcowych RPC będzie w przyszłości wymagała migracji.
API Nordleta działa na poziomie domenowym. Operacje mają postać POST /v1/{module}/{resource}/{action} z ciałem żądania w formacie JSON, dzięki czemu wywołujesz np. sales/invoices/issue zamiast bezpośrednio manipulować modelem dziennika, a za skutki księgowe odpowiada samo API. Klucze dostępu posiadają uprawnienia (scopes), takie jak sales:write. Ponowienia żądań (retries) są chronione nagłówkiem Idempotency-Key: to samo zapytanie z tym samym ładunkiem zwraca zapisaną odpowiedź, natomiast to samo zapytanie ze zmienionym ładunkiem zostaje odrzucone z błędem idempotency_key_reuse zamiast zostać cicho zaakceptowane. Zdarzenia webhook są zapisywane w transakcyjnej tabeli wyjściowej (transactional outbox) w ramach tej samej transakcji bazodanowej co zmiana, co oznacza, że wycofany dokument nigdy nie wyemituje zdarzenia, a doręczenia są zabezpieczone sygnaturą HMAC do weryfikacji.
Porównanie funkcji
Komórki oznaczone jako „brak potwierdzenia publicznego” oznaczają, że nie mogliśmy zweryfikować danej możliwości w stopniu, jakiego deweloper potrzebuje przed podjęciem decyzji. Nie są to twierdzenia, że dana funkcja nie istnieje.
| Możliwość | Nordlet | Odoo |
|---|---|---|
| Forma produktu | Hostowane API księgowe | Pełny pakiet biznesowy; wersja hostowana lub instalowana we własnym zakresie |
| Główny interfejs | API REST ze statycznie typowanym pakietem SDK dla TypeScript | Aplikacja webowa; zewnętrzny API na poziomie modeli |
| Protokół API | JSON over HTTPS, POST w stylu RPC dla każdej akcji | XML-RPC oraz JSON-RPC, z planowanym zastąpieniem przez API JSON-2 |
| Dostępność API | W każdym planie, wszystkie moduły | Plan Custom zgodnie z dokumentacją Odoo |
| Księga podwójnego zapisu | Tak, bilansowanie wymuszane przez wyzwalacz bazodanowy w momencie zatwierdzenia | Tak, wewnątrz modułu księgowego |
| Blokowanie okresów | Tak; wpisy opatrzone datą z zablokowanego okresu są odrzucane z kodem 409 |
Obsługa dat blokady w module księgowym |
| Klucze idempotencji | Tak, udokumentowana semantyka obejmująca odtwarzanie odpowiedzi i wykrywanie kolizji | Brak publicznego potwierdzenia dla zewnętrznego API |
| Webhooki | Tak, podpisane kryptograficznie, ponawiane, oparte na transakcyjnej tabeli wyjściowej | Działają akcje automatyczne i webhooki; brak publicznych gwarancji doręczenia |
| Rejestr audytu (Audit record) | Każda zmiana zawiera informację o aktorze, akcji, encji i różnicach (diff); dane podlegają zapytaniom | Notatki w module społecznościowym (Chatter) i dzienniku; zakres zależy od modelu |
| VAT w UE | Stawki krajowe dla UE-27, walidacja VIES, obliczanie OSS/IOSS wraz z korektami | Moduły lokalizacyjne dla poszczególnych krajów; stopień zaawansowania zależy od państwa |
| E-fakturowanie | EN 16931 UBL dla Peppol BIS 3.0; formaty krajowe dla IT, PL, RO | Moduły lokalizacyjne obejmują wybrane formaty krajowe |
| Gospodarka magazynowa, produkcja | Zapasy FIFO, listy materiałowe (BOM), montaż i demontaż, marszruty, gniazda produkcyjne, zlecenia produkcyjne z rejestracją operacji, kontrole jakości, utrzymanie ruchu | Rozbudowane, stanowi główną zaletę systemu |
| CRM, strony www, marketing | Zapytania od partnerów, grupy i statusy; brak kreatora stron www i narzędzi marketingowych | Tak, stanowi główną zaletę systemu |
| Hosting we własnym zakresie (Self-hosting) | Nie; obsługa własnej chmury (BYOC) dostępna w planie Custom | Tak |
| Dostępność kodu źródłowego | Własnościowy (Proprietary) | Rdzeń o otwartym kodzie źródłowym, wersje płatne |
| Obsługa wielu spółek (Multi-company) | Nieograniczona liczba spółek w ramach jednego konta, dostęp oparty na rolach | Obsługa wielu spółek |
Modele cenowe
Produkty te nie są porównywalne wprost, ponieważ opłaty pobierane są za zupełnie inne elementy.
Odoo rozlicza się w modelu za użytkownika miesięcznie, oferując darmowy plan ograniczony do jednej aplikacji oraz dostęp do zewnętrznego API w planie Custom. W przypadku platformy problem polega na tym, że liczba „użytkowników” jest kiepskim wskaźnikiem obciążenia w sytuacji, gdy to oprogramowanie – a nie pracownicy – generuje wpisy księgowe. Samodzielne hostowanie eliminuje koszty subskrypcji, ale generuje koszty infrastruktury i utrzymania.
Nordlet rozlicza się w modelu za liczbę żądań. Opublikowane plany wynoszą 10 euro miesięcznie za 3 000 żądań, 50 euro za 30 000 oraz 300 euro za 200 000, przy czym dodatkowe zapytania są rozliczani za każde wywołanie, a plan niestandardowy (custom) dostępny jest na życzenie. Każdy plan obejmuje wszystkie moduły oraz pełny dostęp do API; liczba użytkowników, firm oraz firm w środowisku testowym (sandbox) jest nieograniczona. Żądaniem jest każda akcja wykonana za pośrednictwem API lub aplikacji.
Konsekwencja w praktyce: giełda lub marketplace z czterema pracownikami i 50 000 miesięcznych operacji księgowych płaci za 50 000 operacji w modelu rozliczania za zużycie, natomiast w modelu za użytkownika płaci za czterech pracowników – przy czym ta druga opłata nie zmienia się, gdy wolumen operacji rośnie dwukrotnie. Warto przeliczyć własne liczby.
Gdzie Odoo jest lepszym wyborem
- Chcesz mieć księgowość, magazyn, produkcję, CRM i stronę internetową w jednym systemie opartym na jednej bazie danych.
- Musisz samodzielnie hostować system ze względów bezpieczeństwa danych, kosztów lub wewnętrznych polityk.
- Chcesz modyfikować kod źródłowy i masz wewnętrzne zasoby do utrzymywania tych modyfikacji podczas aktualizacji systemowych.
- Twoja księgowość to wewnętrzna administracja biznesowa, a nie funkcja sprzedawanego przez Ciebie produktu.
- Działasz w kraju, dla którego moduł lokalizacyjny Odoo jest rozbudowany i aktywnie utrzymywany.
Wszechstronność Odoo jest niezaprzeczalna i żadne API księgowe jej nie zastąpi.
Gdzie sprawdza się Nordlet
- To Twoje oprogramowanie, a nie pracownicy, generuje zdarzenia księgowe.
- Potrzebujesz ksiąg dla wielu spółek w ramach jednego konta bez konieczności opłacania subskrypcji od każdej encji.
- Wymagasz niezmienników systemowych, na których może polegać Twoja platforma: zbilansowanych zapisów, ciągłości numeracji, zablokowanych okresów, niezmiennej historii i idempotencyjnych zapisów.
- Chcesz integrować się ze stabilnym kontraktem domenowym zamiast z wewnętrznym modelem danych.
- Twoje obowiązki w zakresie unijnego VAT-u obejmują wiele krajów i wolisz nie utrzymywać tej logiki samodzielnie.
Ograniczenia wyrażone wprost: Nordlet znajduje się w fazie wczesnego dostępu (early access) i współpracuje z partnerami projektowymi; jest rozwiązaniem hostowanym, a nie instalowanym lokalnie; kartoteki partnerów zawierają zapytania, grupy i statusy zamiast leja sprzedaży, brak tu kreatora stron internetowych i narzędzi marketingowych; płace obsługują wyłącznie rynek litewski; a deklaracje podatkowe dla rynku krajowego są obecnie dostarczane dla trzech państw – Litwy (FR0600), Niemiec (UStVA) i Polski (JPK_V7M) – przy czym deklaracje OSS i IOSS są obliczane, ale nie są wysyłane w Twoim imieniu.
Co warto zweryfikować przed podjęciem decyzji
- Potwierdź, którego planu Odoo faktycznie potrzebujesz. Jeśli dostęp do zewnętrznego API wymaga planu Custom, oszacuj jego koszt dla liczby Twoich użytkowników, a nie dla planu początkowego.
- Zapytaj o harmonogram migracji RPC dla każdej integracji z Odoo, którą planujesz utrzymać po zapowiedzianym usunięciu obecnych punktów końcowych.
- Przetestuj powtarzanie żądań (retries) w obu systemach. Wyślij to samo żądanie dwa razy i policz wynikowe wpisy.
- Przetestuj blokadę okresu. Zamknij okres, a następnie spróbuj zaksięgować w nim dokument.
- Sprawdź obsługę swoich konkretnych krajów. W przypadku Odoo – który moduł lokalizacyjny i jak aktywnie jest utrzymywany; w przypadku Nordleta – jakie raporty VAT dla tych krajów są obecnie dostępne.
- Przelicz całkowity koszt w horyzoncie trzech lat, uwzględniając koszty hostingu i wysiłek związany z aktualizacjami w przypadku samodzielnego utrzymania oraz wzrost wolumenu zapytań w modelu licznikowym.
FAQ
Czy Odoo jest darmowe?
Odoo udostępnia darmowy plan ograniczony do jednej aplikacji, a wersja społecznościowa (community edition) ma otwarty kod źródłowy. W przypadku integracji na poziomie platformy istotnymi kosztami są zazwyczaj hosting, aktualizacje, utrzymanie lokalizacji oraz płatny plan wymagany do uzyskania dostępu do zewnętrznego API, a nie sama licencja.
Czy Odoo może służyć jako wbudowane zaplecze księgowe dla marketplace'u?
Można je zintegrować w ten sposób i niektóre zespoły dokładnie tak robią. Należy jednak wziąć pod uwagę, że zewnętrzne API działa na poziomie modeli danych, dostęp do API jest powiązany z konkretnym planem cenowym, obecne punkty końcowe RPC mają zostać zastąpione nowymi, a Ty przejmujesz odpowiedzialność za poprawne korzystanie z modeli księgowych. Zweryfikuj te aspekty pod kątem własnych wymagań zamiast przyjmować je z góry.
Czy Nordlet potrafi to samo co Odoo?
Nie. Nordlet to księgowość i obszary pokrewne – fakturowanie, księga główna, bankowość, magazyn, środki trwałe, produkcja, płace, sprawozdawczość i podatki UE. Moduł produkcyjny obejmuje listy materiałowe, marszruty, gniazda robocze, zlecenia produkcyjne z rejestracją operacji, kontrole jakości oraz utrzymanie sprzętu, lecz nie posiada funkcji planowania zapotrzebowania i zdolności produkcyjnych (MRP), które oferuje Odoo. Kartoteki partnerów obsługują zapytania, grupy i statusy zamiast pełnego leja sprzedaży, a w systemie nie ma kreatora stron ani narzędzi marketingowych.
Które rozwiązanie jest lepsze pod kątem unijnego VAT-u?
To zależy od kraju. Nordlet dostarcza stawki VAT dla UE-27, walidację VIES, obliczanie deklaracji OSS i IOSS wraz z korektami okresów poprzednich, rejestry i.SAF oraz format EN 16931 UBL, przy czym najgłębiej rozwinięty jest pakiet dla Litwy. Pokrycie w Odoo wynika z modułów lokalizacyjnych, których stopień zaawansowania i zakres utrzymania różnią się w zależności od państwa, dlatego uczciwą odpowiedzią dla każdego konkretnego kraju jest sprawdzenie stanu dedykowanego mu modułu.
Czy mogę samodzielnie hostować Nordleta?
Nie w ramach standardowych planów. Plan Custom uwzględnia obsługę wdrożeń we własnej chmurze klienta (BYOC), co stanowi punkt wyjścia do rozmowy, jeśli self-hosting jest twardym wymaganiem.