Nordlet

← Блог

Nordlet проти Odoo для розробників платформ

Порівняння для розробників, які обирають між вбудованим API обліку та пакетом програм з відкритим кодом на основі офіційної документації кожного продукту.

Nordlet Team · · 8 хв читання

Odoo та Nordlet часто розглядають одночасно команди платформ, проте це абсолютно різні типи продуктів. Odoo — це широкий пакет бізнес-додатків із вбудованим обліком, який можна розгорнути самостійно та модифікувати. Nordlet — це обліковий бекенд без жодних амбіцій поза межами бухгалтерії, створений для викликів із чужого продукту.

Вибір зазвичай зводиться до двох питань: яку частину вашого бізнесу ви хочете об'єднати в єдину систему та хто нею керуватиме. Уся інформація про Odoo нижче базується на офіційній документації та сторінках ціноутворення Odoo із відповідними посиланнями.

Що собою представляє кожен продукт

Odoo — це пакет з відкритим кодом, що охоплює бухгалтерію, складський облік, виробництво, продаж, CRM, управління персоналом, вебсайти тощо, доступний у вигляді Odoo Online, на Odoo.sh або для самостійного хостингу. Його сильними сторонами є масштабність, розширюваність і можливість самостійного запуску. Особливості обліку конкретних країн реалізовано через модулі локалізації, а навколо продукту сформувалася велика спільнота.

Nordlet — це хмарний API обліку. Він надає незмінну (immutable) бухгалтерську книгу подвійного запису, выставлення рахунків, обліку закупівель, банківських виписок і звірки (reconciliation), складського обліку, основних засобів, заробітної плати, звітності та обробки податків ЄС через єдиний REST-інтерфейс — наразі це понад 400 ендпоїнтів у 29 модулях, згенерованих з єдиної специфікації OpenAPI. Існує і готовий застосунок, який працює на тих самих ендпоїнтах, що й доступні для зовнішніх викликів.

Питання API, яке вирішує більшість оцінок

Саме тут продукти найбільше розходяться для розробників платформ.

Зовнішній API Odoo працює на рівні моделей. Ви автентифікуєтеся, а потім викликаєте методи ORM для моделей даних, таких як account.move для записів журналу та рахунків, res.partner для контактів та account.account для плану рахунків, через XML-RPC або JSON-RPC. Це потужно: усе, що система може змоделювати, доступне для виклику. Водночас це означає, що відповідальність за правильне використання моделей лежить на вас, а ваша інтеграція прив'язана до внутрішньої моделі даних Odoo, а не до стабільного доменного контракту.

Два факти з офіційних матеріалів Odoo змінюють розрахунки:

  • Документація Odoo зазначає, що доступ до зовнішнього API надається на тарифному плані Custom і недоступний на планах One App Free або Standard. Таким чином, доступ до API є питанням ціноутворення, а не лише технічним аспектом. Актуальні плани та ціни наведено на сторінці цін Odoo.
  • Odoo оголосила, що ендпоїнти /xmlrpc, /xmlrpc/2 та /jsonrpc планується вивести з експлуатації (у версіях Odoo 22 та Odoo Online 21.1) із заміною на новіший API JSON-2. Інтеграція, написана для поточних RPC-ендпоїнтів, у майбутньому потребуватиме міграції.

API Nordlet працює на доменному рівні. Операції виконуються як POST /v1/{module}/{resource}/{action} із тілом у форматі JSON, тому ви викликаєте sales/invoices/issue замість безпосереднього маніпулювання моделлю журналу, а за бухгалтерські наслідки відповідає сам API. Ключі мають такі сфери дії (scopes), як sales:write. Повторні спроби (retries) захищені заголовком Idempotency-Key: той самий ключ із тим самим корисним навантаженням відтворює збережену відповідь, а той самий ключ зі зміненим навантаженням відхиляється з помилкою idempotency_key_reuse замість мовчазного прийняття. Події вебхуків записуються в транзакційну скриньку вихідних повідомлень (transactional outbox) у межах тієї самої транзакції бази даних, тому відкачена подія документа ніколи не генерує подію, а доставлення підписується за допомогою HMAC-підпису, який ви можете перевірити.

Порівняння функцій

Клітинки з позначкою "не підтверджено публічно" означають, що ми не змогли перевірити цю функцію на тому рівні, який необхідний розробнику перед прийняттям рішення. Це не твердження про її відсутність.

Можливість Nordlet Odoo
Формат продукту Обліковий API, у хмарі Повний бізнес-пакет; у хмарі або локально (self-hosted)
Основний інтерфейс REST API з типизованим TypeScript SDK Вебзастосунок; зовнішній API на рівні моделей
Протокол API JSON через HTTPS, у стилі RPC (POST на кожну дію) XML-RPC та JSON-RPC з переходом на JSON-2 API
Доступність API Усі плани, усі модулі Кастомний план (Custom) згідно з документацією Odoo
Книга подвійного запису Так, баланс контролюється тригером бази даних під час фіксації Так, у межах модуля бухгалтерії
Блокування періодів Так; проведення, датовані закритим періодом, відхиляються з помилкою 409 Дати блокування підтримуються в модулі бухгалтерії
Ключі ідемпотентності Так, задокументована семантика включає повтор і колізії Не підтверджено публічно для зовнішнього API
Вебхуки Так, з підписом, повторними спробами та з транзакційної скриньки Автоматичні дії та вебхуки існують; гарантії доставки не підтверджено публічно
Журнал аудиту (audit record) Кожна зміна містить ініціатора, дію, сутність, різницю (diff); доступний для запитів Записи у стрічці (chatter) та логах; область дії залежить від моделі
ПДВ ЄС Ставки для кожної з 27 країн ЄС, перевірка VIES, розрахунок OSS/IOSS із коригуваннями Модулі локалізації для кожних країн; глибина залежить від країни
Електронне выставлення рахунків EN 16931 UBL для Peppol BIS 3.0; національні формати для IT, PL, RO Модулі локалізації покривають кілька національних форматів
Склад, виробництво FIFO-облік запасів, специфікації (BOM), збирання та розбирання, маршрути, робочі центри, виробничі замовлення з обліком за операціями, контроль якості, обслуговування Широкі можливості, ключова перевага
CRM, вебсайт, маркетинг Лише запити партнерів, групи та статуси; немає конструктора сайту чи маркетингових інструментів Так, ключова перевага
Самостійний хостинг (Self-hosting) Ні; підтримка BYOC зазначена на тарифному плані Custom Так
Доступність вихідного коду Пропрієтарний Ядро з відкритим кодом, платні редакції
Мультикомпанійність Необмежена кількість компаній під одним обліковим записом, доступ на основі ролей Мультикомпанійність підтримується

Моделі ціноутворення

Їх неможливо порівняти рядок до рядка, оскільки тарифікація стосується різних речей.

Odoo стягує плату за користувача на місяць, при цьому безплатний тариф обмежений одним додатком, а доступ до зовнішнього API надається на плані Custom. Для платформи незручність полягає в тому, що кількість «користувачів» є поганим показником навантаження, коли облік генерує ваше програмне забезпечення, а не співробітники. Самостійний хостинг усуває витрати на підписку, але додає витрати на інфраструктуру та обслуговування.

Nordlet тарифікує за кількістю запитів. Опубліковані плани становлять €10 на місяць за 3 000 запитів, €50 за 30 000 і €300 за 200 000, при цьому додаткові запити оплачуються за запит, а кастомний тариф доступний за запитом. Кожен план включає всі модулі та повний API; кількість користувачів, компаній та пісочниць є необмеженою. Запитом вважається будь-яка дія, виконана через API або додаток.

Практичний наслідок: маркетплейс із чотирма співробітниками та 50 000 щомісячних облікових операцій платить за 50 000 операцій за моделлю з оплатою за використання та за чотирьох користувачів за моделлю за користувача, причому показник для користувачів не змінюється в разі подвоєння обсягів, що має обидва боки медалі. Змоделюйте власні показники.

Де Odoo є кращим вибором

  • Ви хочете мати бухгалтерію, склад, виробництво, CRM та вебсайт у єдиній системі з однією базою даних.
  • Вам необхідно розгорнути систему самостійно з міркувань локалізації даних, вартості чи політики безпеки.
  • Ви хочете модифікувати вихідний код і маєте внутрішні ресурси для підтримки цих модифікацій під час оновлень.
  • Ваш облік є внутрішнім адміністративним процесом компанії, а не функцією продукту, який ви продаєте.
  • Ви працюєте в країні, де модуль локалізації Odoo є потужним і активно підтримується.

Масштабність Odoo є реальністю, і жоден обліковий API не здатний її повністю замінити.

Де доречний Nordlet

  • Облікові події створюються вашим програмним забезпеченням, а не співробітниками.
  • Вам потрібні книги обліку для багатьох компаній під одним обліковим записом без необхідності оформлювати підписку для кожної одиниці.
  • Вам потрібні гарантовані інваріанти, на які може покладатися ваша платформа: збалансовані проведення, безперервна нумерація, закриті періоди, незмінна історія, ідемпотентні записи.
  • Ви хочете інтегруватися зі стабільним доменним контрактом, а не з внутрішньою моделлю даних.
  • Ваші обов'язки зі сплати ПДВ в ЄС охоплюють кілька країн, і ви б вважали за краще не підтримувати цю логіку самостійно.

Обмеження, якщо говорити відверто: Nordlet перебуває на стадії раннього доступу та залучення проєктів для тестування (onboarding design partners); він є хмарним рішенням, а не для самостійного хостингу; картки партнерів містять запити, групи та статуси замість воронки продажів, а також відсутній конструктор вебсайтів і маркетинговий функціонал; розрахунок заробітної плати доступний лише для Литви; а готові пакети внутрішньої звітності наразі створені для трьох країн — Литви (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 як вбудований обліковий бекенд для маркетплейсу?

Це можливо реалізувати шляхом інтеграції, і деякі команди роблять саме так. Варто зважати на те, що зовнішній API працює на рівні моделей даних, доступ до API прив'язаний до певного тарифного плану, поточні RPC-ендпоїнти планують замінити, а відповідальність за правильне використання облікових моделей лежить на вас. Зіставте ці фактори з власними вимогами, перш ніж робити припущення.

Чи робить Nordlet усе те ж саме, що й Odoo?

Ні. Nordlet — це бухгалтерський облік і суміжні операції: выставлення рахунків, головна книга, банк, склад, основні засоби, виробництво, зарплата, звітність, податки ЄС. Виробництво охоплює специфікації (BOM), маршрути, робочі центри, виробничі замовлення з обліком за операціями, контроль якості та обслуговування обладнання, але без функцій планування попиту та потужностей, які пропонує Odoo. Картки партнерів містять запити, групи та статуси замість воронки продажів, а також немає конструктора вебсайтів і маркетингових інструментів.

Що краще підходить для ПДВ в ЄС?

Це залежить від країни. Nordlet пропонує ставки ПДВ ЄС для кожної країни, перевірку VIES, розрахунок декларацій OSS та IOSS з коригуваннями за попередні періоди, регістри iSAF та EN 16931 UBL, причому найглибше опрацьованим є пакет для Литви. Можливості Odoo базуються на модулях локалізації, глибина та підтримка яких відрізняються залежно від країни, тому чесною відповіддю для будь-якої конкретної країни буде перевірка відповідного модуля цієї країни.

Чи можу я самостійно хостити Nordlet?

Ні на стандартних планах. Тарифний план Custom передбачає підтримку розгортання на власних хмарних потужностях (bring-your-own-cloud), що є темою для окремого обговорення, якщо самостійний хостинг є обов'язковою вимогою.

Додаткова література