Odoo Helper.
Назад до блогу
Інтеграції

Odoo API: як підключити будь-яку зовнішню систему

JSON-RPC та REST API Odoo: архітектура, авторизація, типові сценарії та помилки.

Odoo API: як підключити будь-яку зовнішню систему

Odoo — відкрита система з потужним API. Це означає, що будь-яка зовнішня система — власна розробка, галузевий сервіс, корпоративний портал, мобільний додаток — може обмінюватися даними з Odoo. Не потрібно чекати, поки з'явиться готовий модуль: через API можна реалізувати будь-яку інтеграцію.

У цій статті — як влаштований Odoo API, які є варіанти підключення, типові сценарії та що потрібно знати перед початком розробки.


Як влаштований Odoo API

JSON-RPC. Основний протокол Odoo API — JSON-RPC 2.0. Через нього можна виконувати будь-які операції з даними: читати, створювати, оновлювати, видаляти записи в будь-якій моделі Odoo. Це найуніверсальніший спосіб інтеграції.

REST API (Odoo 16+). Починаючи з Odoo 16, з'явився нативний REST API з підтримкою стандартних HTTP-методів (GET, POST, PUT, DELETE). Він простіший у використанні для розробників, знайомих з REST, і не потребує знання специфіки JSON-RPC.

XML-RPC. Старіший протокол, підтримується для зворотної сумісності. Деякі готові бібліотеки для Python, PHP, Ruby використовують XML-RPC для підключення до Odoo.

Webhook (outgoing). Odoo може надсилати сповіщення в зовнішні системи при певних подіях: створення запису, зміна статусу, підтвердження замовлення. Налаштовується через «Автоматизовані дії» в Odoo.


Авторизація та безпека

API Key. Починаючи з Odoo 14, підтримуються API-ключі для авторизації. Ключ генерується в профілі користувача і використовується замість пароля. Це безпечніше, ніж передавати пароль у кожному запиті.

Права доступу. API-запити виконуються від імені конкретного користувача Odoo. Цей користувач має ті самі права, що й у системі. Для інтеграцій рекомендується створити окремого технічного користувача з мінімально необхідними правами.

HTTPS. Усі API-запити мають передаватися через HTTPS. Передача даних по HTTP — критична вразливість, яка дозволяє перехопити токени та дані.

Rate limiting. Odoo не має вбудованого rate limiting «з коробки», але при великому обсязі запитів (тисячі на хвилину) можуть виникати проблеми з продуктивністю. Потрібно проєктувати інтеграцію з урахуванням пакетних операцій.


Типові сценарії інтеграції через API

Власна CRM або портал

Компанія має власну CRM або клієнтський портал. Через Odoo API вона синхронізує клієнтів, замовлення та статуси між системами. Менеджери працюють у звичному інтерфейсі, а дані автоматично потрапляють в Odoo для обліку та фінансів.

Мобільний додаток

Мобільний додаток для торгових представників або складу. Представник оформляє замовлення в мобільному додатку — воно через API потрапляє в Odoo. Комірник сканує штрих-код у додатку — залишок оновлюється в Odoo в реальному часі.

Галузевий сервіс

Спеціалізована система для конкретної галузі (наприклад, система управління перевезеннями для логістики або система управління виробництвом для заводу) інтегрується з Odoo через API для синхронізації замовлень, рахунків та фінансових даних.

BI та аналітика

Система бізнес-аналітики (Power BI, Tableau, Metabase) підключається до Odoo через API або напряму до бази даних PostgreSQL для побудови звітів та дашбордів.

Автоматизація процесів (n8n, Make)

Платформи автоматизації (n8n, Make/Integromat) підключаються до Odoo через API і будують автоматизовані сценарії без написання коду: «при новому замовленні в Odoo — надіслати повідомлення в Slack та створити задачу в Trello».


Що можна зробити через API

Через Odoo API доступні практично всі операції:

  • Читати та створювати контакти, компанії, клієнтів.
  • Читати та створювати замовлення на продаж і закупівлю.
  • Оновлювати залишки товарів.
  • Читати та створювати рахунки-фактури та платежі.
  • Читати та оновлювати завдання та проєкти.
  • Читати та оновлювати записи в будь-якій моделі Odoo.
  • Виконувати бізнес-методи (підтвердити замовлення, відправити email, змінити статус).

Фактично, все, що можна зробити через інтерфейс Odoo, можна зробити через API.


Бібліотеки для роботи з Odoo API

Python: odoorpc, odoo-client-lib — популярні бібліотеки для роботи з Odoo API на Python.

JavaScript/Node.js: odoo-await, odoo-xmlrpc — бібліотеки для Node.js.

PHP: ripcord — бібліотека для XML-RPC, яка часто використовується з Odoo.

Будь-яка мова: Оскільки Odoo API — стандартний JSON-RPC або REST, можна використовувати будь-яку мову програмування з підтримкою HTTP-запитів.


Типові помилки при розробці інтеграції

Відсутність обробки помилок. API може повернути помилку (неправильні дані, відсутній запис, проблема з правами). Інтеграція має коректно обробляти помилки і не «падати» при першій проблемі.

Синхронні виклики в реальному часі. Якщо кожна дія користувача в зовнішній системі викликає синхронний API-запит до Odoo — при повільному Odoo або мережевих проблемах зовнішня система «зависає». Краще використовувати асинхронну чергу.

Відсутність ідемпотентності. Якщо один і той самий запит може виконатися двічі (наприклад, при повторній відправці webhook) — в Odoo можуть з'явитися дублі. Потрібна перевірка унікальності перед створенням запису.

Жорстке кодування ID. Не варто жорстко кодувати ID записів Odoo (ID продукту, ID складу, ID журналу) — вони можуть відрізнятися між тестовим і продуктивним середовищем. Краще шукати записи за унікальним зовнішнім ідентифікатором або кодом.


Як почати розробку інтеграції

  1. Визначити, які дані потрібно синхронізувати та в якому напрямку.
  2. Вибрати протокол: JSON-RPC, REST API або webhook.
  3. Створити технічного користувача в Odoo з мінімально необхідними правами.
  4. Згенерувати API-ключ.
  5. Розробити та протестувати інтеграцію в тестовому середовищі Odoo.
  6. Налаштувати моніторинг та логування помилок.
  7. Запустити на продуктивному середовищі.

Хочете підключити зовнішню систему до Odoo через API? Замовте консультацію: розберемо вашу задачу, запропонуємо архітектуру інтеграції та оцінимо терміни розробки.


Читайте також:

Маєте питання щодо впровадження Odoo?

Отримайте безкоштовну консультацію та оцінку вашого проєкту.

Замовити безкоштовний аудит Odoo

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

Натискаючи кнопку, ви погоджуєтесь з обробкою персональних даних.