Nordlet

← Блог

Nordlet срещу Odoo за разработчици на платформи

Сравнение за разработчици, които избират между API за вградено счетоводство и софтуерен пакет за отворен код (open-source) ERP, базирано на официалната документация на всеки продукт.

Nordlet Team · · 9 мин четене

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 се изчисляват, но не се подават от ваше име.

Какво бихме валидирали преди ангажиране

  1. Потвърдете плана на Odoo, който наистина ви е необходим. Ако достъпът до външен API изисква плана Custom, изчислете цената на този план спрямо броя на вашите потребители, а не спрямо началния план.
  2. Попитайте за графика за миграция на RPC за всяка интеграция с Odoo, която планирате да запазите след обявеното премахване на текущите ендпойнти.
  3. Тествайте повторните опити (retries) и на двете места. Изпратете една и съща заявка два пъти и пребройте получените записи.
  4. Тествайте заключването. Затворете период, след което опитайте да публикувате запис в него.
  5. Проверете вашите конкретни държави. За Odoo – кой модул за локализация и колко активно се поддържа; за Nordlet – какви ДДС отчети съществуват за тези държави в момента.
  6. Направете модел на общите разходи за три години, включително хостване и усилия за надграждане, ако хоствате сами, и растеж на обема на заявките, ако използвате таксуване на база потребление.

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), което е темата за разговор, ако самостоятелното хостване е изискване.

Допълнително четене