Nordlet срещу Odoo за разработчици на платформи
Сравнение за разработчици, които избират между API за вградено счетоводство и софтуерен пакет за отворен код (open-source) ERP, базирано на официалната документация на всеки продукт.
Odoo и Nordlet често присъстват заедно в кратките списъци на продуктовите екипи, но те представляват различен тип продукти. Odoo е широкообхватен пакет бизнес приложения със счетоводство в него, който можете да хоствате сами и да модифицирате. Nordlet е счетоводен бекенд без амбиции извън счетоводството, проектиран да бъде извикан от чужд продукт.
Изборът обикновено се свежда до два въпроса: каква част от бизнеса си искате да обедините в една система и кой ще я поддържа. Всичко по-долу за Odoo произтича от официалната документация и страниците с цени на самите Odoo, като на съответните места са добавени връзки.
Какво представлява всеки продукт
Odoo е софтуерен пакет с отворен код, който покрива счетоводство, складово стопанство, производство, продажби, CRM, човешки ресурси, уебсайтове и други, наличен като Odoo Online, в Odoo.sh или за самостоятелно хостване (self-hosted). Неговите силни страни са мащабът, възможността за разширение и опцията да го стартирате сами. Счетоводното поведение, специфично за съответната държава, идва от модули за локализация, а общността около него е голяма.
Nordlet е облачен счетоводен API. Той предоставя неизменна счетоводна книга с двойно записване (double-entry ledger), фактуриране, отчет на покупки, банкови изписки и сливане (reconciliation), складово стопанство, дълготрайни активи, трудови възнаграждения (payroll), справки и обработка на данъци в ЕС чрез един REST интерфейс – към момента над 400 ендпойнта в 29 модула, генерирани от една OpenAPI спецификация. Съществува и потребителски интерфейс (приложение), който работи със същите ендпойнти, достъпни за външни извикващи системи.
Въпросът с API, който решава повечето оценки
Тук продуктите се разминават най-остро за създателите на платформи.
Външният API на Odoo е на моделно ниво. Вие се автентикирате и след това извиквате ORM методи върху данни като account.move за журнални записи и фактури, res.partner за контрагенти и account.account за сметкоплана, чрез XML-RPC или JSON-RPC. Това е мощно: всичко, което системата може да моделира, е достъпно за вас. Това също така означава, че отговорността за правилното използване на моделите остава за вас, а интеграцията ви е обвързана с вътрешния модел на данни на Odoo, вместо с договор за стабилен домейн (domain contract).
Два факта от собствените материали на Odoo променят изчисленията:
- Документацията на Odoo посочва, че достъпът до външен API е наличен в ценовия план Custom и липсва в плановете One App Free или Standard. Следователно достъпът до API е решение за ценообразуване, а не само техническо. Актуалните планове и цени са на страницата с цени на Odoo.
- Odoo обяви, че ендпойнтите
/xmlrpc,/xmlrpc/2и/jsonrpcса предвидени за премахване – в Odoo 22 и Odoo Online 21.1 – като по-новият JSON-2 API ще ги заеме. Интеграция, написана спрямо текущите RPC ендпойнти, ще изисква бъдеща миграция.
API на Nordlet е на домейн ниво. Операциите се изпълняват като POST /v1/{module}/{resource}/{action} с JSON тяло, така че извиквате sales/invoices/issue, вместо да манипулирате директно модел на журнал, а счетоводните последици са отговорност на самия API. Ключовете носят области на действие (scopes) като sales:write. Повторните опити (retries) са защитени с хедър Idempotency-Key: същият ключ със същия полезен товар (payload) възпроизвежда записания отговор, а същият ключ с променен полезен товар се отхвърля с грешка idempotency_key_reuse, вместо да се приема безшумно. Уебхук събитията (webhook events) се записват в транзакционна опашка (outbox) в рамките на същата база данни като промяната, така че отмененият документ никога не генерира събитие, а доставените съобщения се подписват с HMAC подпис, който проверявате.
Сравнение на функционалностите
Клетките с надпис „няма публично потвърждение“ означават, че не успяхме да проверим възможността на нивото, което даден разработчик би изисквал преди ангажиране. Те не твърдят, че функцията липсва.
| Възможност | Nordlet | Odoo |
|---|---|---|
| Форма на продукта | Счетоводен API, хостван | Пълен бизнес пакет; хостван или със собствено хостване |
| Основен интерфейс | REST API с типизиран TypeScript SDK | Уеб приложение; външен API на моделно ниво |
| API протокол | JSON през HTTPS, POST по заявка в RPC стил | XML-RPC и JSON-RPC, с JSON-2 API като заместник |
| Наличност на API | Всеки план, всички модули | Custom план съгласно документацията на Odoo |
| Счетоводна книга с двойно записване | Да, балансът се гарантира от тригер на базата данни при commit | Да, в рамките на счетоводния модул |
| Заключване на период | Да; записи с дата в заключен период се отхвърлят с 409 |
Поддръжка на дати за заключване в счетоводния модул |
| Идемпотентни ключове | Да, документирана семантика, включително възпроизвеждане и сблъсък | Няма публично потвърждение за външния API |
| Уебхукове | Да, подписани, с повторни опити, от транзакционна опашка | Съществуват автоматизирани действия и уебхукове; гаранциите за доставка нямат публично потвърждение |
| Одитен запис | Всяка промяна с актьор, действие, обект, промяна (diff); с възможност за заявки | Чатър и бележки в дневника; обхватът варира според модела |
| ДДС в ЕС | Ставки за всяка от 27-те държави в ЕС, VIES валидация, изчисление по OSS/IOSS с корекции | Модули за локализация по държави; дълбочината варира според държавата |
| Електронно фактуриране | EN 16931 UBL за Peppol BIS 3.0; национални формати за IT, PL, RO | Модулите за локализация покриват няколко национални формата |
| Складово стопанство, производство | FIFO запаси, спецификации на материалите (bills of materials), сглобяване и разглобяване, маршрути, работни центрове, производствени поръчки със запис за всяка операция, проверки на качеството, поддръжка | Обширни възможности, основна силна страна |
| CRM, уебсайт, маркетинг | Запитвания от партньори, групи и статуси; без конструктор на уебсайтове или маркетинг инструменти | Да, основна силна страна |
| Самостоятелно хостване (Self-hosting) | Не; поддръжката за собствено облачно решение (BYOC) е посочена в Custom плана | Да |
| Наличност на изходния код | Проприетарен | Ядро с отворен код, с платени издания |
| Множество компании | Неограничен брой компании под един акаунт, достъп на база ролеви модели | Поддръжка на множество компании |
Ценови модели
Те не могат да се сравняват ред по ред, тъй като таксуват различни неща.
Odoo таксува на потребител на месец, с безплатен план, ограничен до едно приложение, и достъп до външен API в плана Custom. За една платформа неудобството е, че „потребителите“ са лоша мярка за натоварване, когато вашият софтуер, а не вашият персонал, генерира счетоводството. Самостоятелното хостване премахва абонаментната цена, но добавя разходи за инфраструктура и поддръжка.
Nordlet таксува на заявка. Публикуваните планове са 10 евро на месец за 3 000 заявки, 50 евро за 30 000 и 300 евро за 200 000, като допълнителните заявки се фактурират на заявка, а Custom планът е по заявка. Всеки план включва всеки модул и пълния API; потребителите, компаниите и тестовите компании (sandbox) са неограничени. Заявка е всяко действие, изпълнено през API или през приложението.
Практическото следствие: пазар с четирима служители и 50 000 месечни счетоводни действия плаща за 50 000 действия при модел на база измерване (metered) и за четирима потребители при модел на потребител – като цифрата за потребител не помръдва, когато обемът се удвои, което реже и в двете посоки. Направете си сметката за вашите собствени числа.
Къде Odoo е по-добрият избор
- Искате счетоводство, склад, производство, CRM и уебсайт в една система с една база данни.
- Трябва да хоствате сами поради местоположение на данните (data residency), разходи или правила.
- Искате да модифицирате изходния код и разполагате с вътрешен капацитет да поддържате тези модификации през ъпгрейдите.
- Вашето счетоводство е вътрешна бизнес администрация, а не функция на продукта, който продавате.
- Намирате се в държава, където модулът за локализация на Odoo е силен и се поддържа активно.
Мащабът на Odoo е реален и никой счетоводен API не го замества.
Къде Nordlet е подходящ
- Вашият софтуер, а не вашият персонал, създава счетоводните събития.
- Нуждаете се от счетоводни книги за много компании под един акаунт без абонамент за всяка организация.
- Нуждаете се от наложени инварианти, на които платформата ви може да разчита: балансирани записи, номериране без пропуски, заключени периоди, неизменна история, идемпотентни записи.
- Искате да се интегрирате към договор за стабилен домейн, вместо към вътрешен модел на данни.
- Вашите задължения за ДДС в ЕС обхващат няколко държави и предпочитате да не поддържате тази логика сами.
Ограниченията, казани в прав текст: Nordlet е в ранен достъп (early access) и привлечените партньори участват в дизайна; той е хостван, а не със собствено хостване; записите за партньори съдържат запитвания, групи и статуси, а не фуния за продажби, и няма конструктор на уебсайтове или маркетингови функционалности; трудовите възнаграждения са само за Литва; а вътрешните пакети за отчети се предлагат за три държави днес – Литва (FR0600), Германия (UStVA) и Полша (JPK_V7M) – като OSS и IOSS се изчисляват, но не се подават от ваше име.
Какво бихме валидирали преди ангажиране
- Потвърдете плана на Odoo, който наистина ви е необходим. Ако достъпът до външен API изисква плана Custom, изчислете цената на този план спрямо броя на вашите потребители, а не спрямо началния план.
- Попитайте за графика за миграция на RPC за всяка интеграция с Odoo, която планирате да запазите след обявеното премахване на текущите ендпойнти.
- Тествайте повторните опити (retries) и на двете места. Изпратете една и съща заявка два пъти и пребройте получените записи.
- Тествайте заключването. Затворете период, след което опитайте да публикувате запис в него.
- Проверете вашите конкретни държави. За Odoo – кой модул за локализация и колко активно се поддържа; за Nordlet – какви ДДС отчети съществуват за тези държави в момента.
- Направете модел на общите разходи за три години, включително хостване и усилия за надграждане, ако хоствате сами, и растеж на обема на заявките, ако използвате таксуване на база потребление.
FAQ
Безплатна ли е Odoo?
Odoo публикува безплатен план, ограничен до едно приложение, а общностната версия (community edition) е с отворен код. За интеграция на платформа съответните разходи обикновено са хостване, надграждания, поддръжка на локализацията и платената версия, изисквана за достъп до външен API, а не самият лиценз.
Може ли Odoo да се използва като вграден счетоводен бекенд за пазар (marketplace)?
Може да се интегрира и някои екипи правят точно това. Съображенията са, че външният API работи на ниво модел на данни, че достъпът до API е обвързан с определен ценови план, че текущите RPC ендпойнти предстои да бъдат заменени и че вие поемате отговорността за правилното използване на счетоводните модели. Валидирайте ги спрямо собствените си изисквания, вместо да предполагате предварително.
Прави ли Nordlet всичко, което прави Odoo?
Не. Nordlet е счетоводство и свързани с него операции – фактуриране, счетоводна книга, банка, склад, активи, производство, трудови възнаграждения, справки, данъци в ЕС. Производството покрива спецификации на материалите (bills of materials), маршрути, работни центрове, производствени поръчки със запис за всяка операция, проверки на качеството и поддръжка на оборудването, без планирането на търсенето и капацитета, което Odoo предлага. Партньорските записи съдържат запитвания, групи и статуси, вместо фуния за продажби, и няма конструктор на уебсайтове или маркетинг инструменти.
Кое е по-добре за ДДС в ЕС?
Зависи от държавата. Nordlet предлага ставки за ДДС в ЕС по държави, VIES валидация, изчисление на OSS и IOSS декларации с корекции за предходни периоди, i.SAF регистри и EN 16931 UBL, като Литва е с най-задълбочен пакет за страната. Покритието на Odoo идва от модули за локализация, чиято дълбочина и поддръжка варират според държавата, така че честният отговор за всяка конкретна държава е да проверите модула за съответната страна.
Мога ли да хоствам Nordlet самостоятелно?
Не в стандартните планове. Планът Custom включва поддръжка за използване на собствен облак (bring-your-own-cloud), което е темата за разговор, ако самостоятелното хостване е изискване.