MoySklad
Odoo
amoCRM
Tizimlashtirish
Marketing
AI agentlar
BUline
MoySklad
Odoo
amoCRM
Систематизация
Маркетинг
Маркетинг: обзор
Стратегия и контент
Стратегия и планКонтент и SMM
Рекламные каналы
Google AdsYandex DirectРеклама в TelegramInstagram и FacebookМаркетплейсы
Органический рост
SEO
Измерение и аналитика
Аналитика и KPI
AI-агенты
BUline
MoySklad
Odoo
amoCRM
Systematization
Marketing
AI agents
BUline
Odoo
Главная/Odoo/Интеграции
Odooвнедряет BUline
Odoo · Услуги · Интеграции

Подключаем Odoo к налоговым, банковским системам и системам обмена сообщениями в единый процесс

Когда счёт-фактура оформляется в одной системе, оплата — в другой, склад — в третьей, сотрудники переносят данные вручную. Интеграция превращает этот перенос в процесс. Каждое подключение оценивается отдельно: мы не обещаем, что «готовый коннектор есть».

JSON-2 APIWebhookОбмен файламиБезопасностьМониторинг
Направления

Пять направлений: с какими системами работает Odoo

У каждого направления своя страница. На ней описаны требования Узбекистана, что есть в стандарте Odoo и какая работа добавляется.

Электронные документы и налоги

Электронный счёт-фактура и операторы, электронная цифровая подпись, код ИКПУ (МХИК), онлайн-касса, электронная накладная. Именно здесь больше всего местных требований. Подробнее →

Платежи и банк

Click, Payme и другие платёжные сервисы, банковская выписка, привязка платежа к счёту-фактуре, фискальный чек. Подробнее →

Каналы сообщений

Telegram, WhatsApp, SMS, email и соцсети: уведомления клиентам, внутренние сообщения, обращения. Подробнее →

Маркетплейсы и доставка

Местные маркетплейсы, синхронизация остатков и заказов, службы доставки и курьеры. Подробнее →

Внешние системы и оборудование

Обмен данными и перенос из amoCRM, MoySklad, 1C, Excel, кассовый аппарат, сканер, весы, биометрический учёт посещаемости. Подробнее →

Способы подключения

Шесть способов подключиться к Odoo

Способ определяет, как быстро будет готово подключение, кто будет его сопровождать и на каком хостинге оно будет работать. Выбор мы делаем на диагностике, исходя из требований.

СпособЧто он делаетКогда подходитОграничение
Файл: импорт и экспорт (CSV, XLSX)Odoo загружает из файла записи любого бизнес-объекта. Если есть столбец «Внешний ID», повторная загрузка не создаёт дубликат, а обновляет существующую записьРазовый перенос; пакетный обмен раз в день или раз в неделюНе в реальном времени. Большой файл может упереться в лимит времени: документация рекомендует разбивать его на небольшие части
JSON-2 APIВнешняя программа вызывает метод модели Odoo: читает запись, создаёт её, подтверждает заказВнешняя система должна писать в Odoo или читать из него; режим, близкий к реальному времениНачиная с Odoo 19. Зависит от типа подписки. Есть правила для ключей, прав и транзакций
Webhook: Odoo отправляет сообщениеАвтоматизированное правило при событии отправляет POST-запрос с выбранными полями. Триггер типа «Внешний» принимает событие внешней системыВнешней системе нужно сразу узнавать, что изменилось в OdooПодпись исходящего сообщения в документации не описана. Адрес входящего webhook секретный (меняется через Rotate Secret). Неверно настроенный webhook может навредить базе
Готовый модуль из Apps StoreКоннектор, написанный сторонним разработчикомМодуль полностью соответствует вашему требованию, и автор его регулярно обновляетНа Odoo Online не устанавливается. Зависит от версии. Адаптация к новой версии может запаздывать
Пользовательский модуль, безопасный при обновленияхКод, работающий внутри Odoo Enterprise: модель, метод, запланированное действиеГотового решения нет или оно не подходит; хостинг — Odoo.sh или собственный серверНа Online не работает. Под каждую новую версию нужна адаптация
Промежуточный сервис (middleware)Отдельная небольшая программа или платформа интеграции между Odoo и внешней системой: меняет формат, ведёт очередь, повторно отправляет при ошибкеСложное подключение на Odoo Online без специального модуля; связь нескольких системНужны отдельный сервер и мониторинг; кто-то обязательно должен его сопровождать. Это рекомендация BUline, а не документ Odoo
Odoo API

JSON-2 API: ключ, права, транзакция и ограничения

Начиная с Odoo 19.0 это официальный способ для внешней программы. Далее — по документации Odoo 20. Подробнее: основы JSON-2.

ЭлементПравило
АдресPOST-запрос: /json/2/model/method. Model — техническое имя таблицы Odoo, method — действие (поиск, чтение, создание, подтверждение). Параметры передаются в теле JSON, только по имени
КлючСоздаётся в настройках пользователя: запрашиваются описание и срок действия, ключ показывается на экране только один раз. Срок не превышает трёх месяцев; ключ, работающий длительное время, меняют не реже чем раз в три месяца
ПраваРаботает с правами владельца ключа. Для постоянного подключения документация рекомендует завести отдельного пользователя-«бота». Если оставить его пароль пустым, вход по логину и паролю отключается
БазаЕсли на одном сервере несколько баз, в запрос добавляется заголовок X-Odoo-Database
ТранзакцияКаждый вызов — отдельная транзакция: при успехе сохраняется, при ошибке отменяется. Несколько вызовов нельзя объединить в одну транзакцию, поэтому связанные действия собираются в один метод
Ответ и ошибкаПри успехе — 200. При ошибке — 4xx или 5xx и объект ошибки: name, message, arguments, context, debug. Неверный ключ даёт 401
ДокументСписок моделей, полей и методов базы находится на странице /doc этой базы. В документации этот раздел пока помечен как «пишется»
ПодпискаСогласно документации, внешний API доступен только на типе подписки «Custom», на более низких типах его нет. Точные условия — на odoo.com и в вашем договоре: проверяем в начале проекта
Частота вызововПолитика допустимого использования Odoo считает приемлемым примерно один вызов в секунду для непостоянной нагрузки, без параллельных вызовов. Для больших объёмов на Odoo.sh указан отдельный режим
Устаревший интерфейс

XML-RPC и JSON-RPC: что уже отключено и что будет отключено

В первую очередь мы выясняем, есть ли подключения старого типа. Часто их не видит никто на экране: например, ночной скрипт резервного копирования. Сроки — по документации Odoo 20. Порядок перехода →

УслугаСтатусСрок
Сервис базы данных (db)УдалёнOdoo 20 (в документации: осень 2026 года) и Online 19.1
Общий (common) и объектный (object) сервисыУстарели, удаление запланированоOdoo 22 (в документации: осень 2028 года) и Online 21.1 (в документации: зима 2027 года)
JSON-2Актуальный способС Odoo 19.0
Честные границы

Что есть в стандартном Odoo и что добавляем мы

Большая часть подключений «из коробки» не работает. Особенно это касается государственных систем Узбекистана и местных платёжных сервисов. Данные приведены по документации Odoo 20; если в вашей версии есть отличия, проверим их на диагностике.

ЗадачаВ стандартном OdooДополнительная работа (BUline)
Импорт и экспорт из файлаЕсть: CSV и XLSX; повторная загрузка с внешним ID обновляет записьКарта столбцов, правила очистки, проверка повторяющихся записей
Внешний APIЕсть: JSON-2 (с Odoo 19); правила для ключей, прав и транзакций. Зависит от типа подпискиПользователь-бот, права, последовательность вызовов, обработка ошибок
Исходящее сообщение из Odoo (webhook)Есть: действие «Send Webhook Notification» в автоматизированном правилеПринимающая сторона, проверка подписи, защита от повторного сообщения: в документации не описаны
Государственный электронный счёт-фактураНет: в документации по узбекской локализации электронный счёт-фактура не упомянут; Узбекистана нет в списке страниц Odoo по электронным счетам-фактурамПодключение к оператору — отдельный проект. Подробнее →
Местные платёжные сервисыНет: среди 21 платёжного провайдера в документации Odoo 20 нет ни Click, ни PaymeПротестировать готовый модуль или написать подключение по документации провайдера. Подробнее →
Прямая синхронизация с банкомДокументация перечисляет провайдеров (Salt Edge: «весь мир»), банки Узбекистана не названы; проверяется на диагностике. Импорт из файла есть (CSV, XLSX, OFX, QIF, CAMT.053). Синхронизация требует подписки EnterpriseПриведение банковской выписки к формату Odoo, правила сверки
Повтор при ошибкеЧастично: сервер Odoo сам повторяет транзакцию, которой помешал конфликт, всего до пяти попыток (в исходном коде)Очередь, защита от повторов, журнал и оповещения при обмене с внешней системой строятся на стороне вашего подключения
Готовые коннекторыНе в самой Odoo: модули из Apps Store, зависящие от автораВыбор, проверка кода, тестирование, план обновления. Чек-лист проверки →
Хостинг

Как тип хостинга ограничивает интеграцию

Этот вопрос мы решаем в начале проекта, потому что смена хостинга позже может потребовать перестройки подключения. Типы хостинга →

Odoo Online

  • Сервер и резервное копирование ведёт Odoo
  • Несовместим со специальными модулями и модулями из Apps Store; работают настройки, не требующие написания кода
  • Интеграция строится вне Odoo: внешняя программа заходит через JSON-2 или Odoo отправляет webhook
  • База на основной версии обязательно обновляется раз в два года

Odoo.sh

  • Платформой управляет Odoo, кодом — вы: ветка, сборка, staging
  • Устанавливаются специальные и сторонние модули
  • При обновлении каждый модуль должен быть адаптирован к новой версии, иначе обновление базы ждёт
  • Политика использования упоминает для вызовов большого объёма отдельный режим на Odoo.sh

Собственный сервер

  • Модули, резервное копирование, безопасность и обновление — на вашей ответственности
  • Самый свободный способ: возможно любое специальное подключение
  • Подходит, если есть жёсткое требование к месту хранения данных
  • Кто будет сопровождать сервер, письменно согласуем в начале проекта
Метод BUline

Проект интеграции: пять этапов

Этапы соответствуют общему методу BUline. Срок письменно согласовывается после диагностики. Порядок внедрения →

01Требования и оценкаДиагностика, 1–2 недели

Какая система, какие данные, в каком направлении и как быстро обмениваются. Открывается документация провайдера, проверяются сторона Odoo (стандарт, Studio или модуль) и тип хостинга. Результат: пункт об интеграции в карте бизнес-требований (BRD).

02Карта данных и архитектураАрхитектура, 1–3 недели

Таблица по полям: какое поле откуда приходит, в каком формате, какая система главная (master). Выбирается способ: файл, API, webhook, модуль или промежуточный сервис. Фиксируются пути ошибок, права и владелец ключа.

03Разработка и проверка в тестовой базеВнедрение, 8–16 недель

Подключение разрабатывается на копии Odoo. Тестовая база создаётся с отключёнными внешними действиями. Используется тестовый режим провайдера. Проверяются граничные случаи: повторное сообщение, обрыв связи, неверные данные.

04ЗапускВ рамках внедрения

Сначала на одном потоке или в одном филиале с реальными данными (пилот), затем на остальных. Ключи для рабочей базы выдаются отдельно. Приёмочные испытания проходят вместе с клиентом.

05Мониторинг и сопровождение30 дней + постоянно

После запуска — 30 дней усиленной поддержки, затем согласованное постоянное сопровождение. Работают журнал, оповещения и календарь сроков действия ключей. При обновлении Odoo или провайдера подключение тестируется заново.

Безопасность

Ключ, данные и подпись: что мы защищаем

С ключом подключения нужно обращаться как с паролем: у кого он окажется, тот сможет работать от имени пользователя. Хранение ключей →

Ключ и права

  • На каждое подключение — отдельный пользователь-бот и отдельный ключ; в описание ключа вносится название подключения
  • Права только на нужные модели и действия: ключ не может больше, чем его владелец
  • Новый ключ сначала создаётся, а старый отзывается после того, как все службы перешли на новый
  • Ключ не записывается в код, электронное письмо и общий чат. Права →

Сеть и данные

  • Поле debug в объекте ошибки наружу не передаётся, а записывается во внутренний журнал (правило BUline)
  • Тестовая база нейтрализуется: письма, платежи и заказы на доставку не уходят наружу
  • Статья 27¹ закона о персональных данных требует хранить данные биометрические, генетические и пользователей телекоммуникационных операторов на территории Узбекистана. Подробнее →

Сторона внешнего сервиса

  • Ключ электронной подписи не передаётся между сотрудниками: закон требует от владельца принять все меры для сохранности закрытого ключа, а в юридическом лице отвечает руководитель
  • Данные карты не хранятся на вашем сервере в открытом виде: документация Payme строго это запрещает, а Odoo при токенизации создаёт платёжный токен (payment token)
  • Адреса приёма (платежей и сообщений) защищены и работают только с проверкой, описанной в документации провайдера
Повтор при ошибке

Что делаем при ошибке: таблица ситуаций

Отсутствие ответа не означает, что запрос не выполнен. Стандарт HTTP (RFC 9110) не рекомендует автоматически повторять неидемпотентный запрос, если неизвестна его идемпотентность или то, что исходный запрос не был применён. Вызов JSON-2 — это POST: перед повторной отправкой нужна проверка. Идемпотентность →

СтатусЧто это значитЧто делаем мы
401: ключ недействителенКлюч неверный или срок его действия истёкПовторять не будем. Отправляем оповещение, ключ заменяется
Другие 4xx: объект ошибкиОшибка данных или прав; повторная отправка результата не изменитПоля name и message записываем в журнал, запись помещаем в список «с ошибкой», ответственный сотрудник её видит
500, обрыв сети, нет ответаЗапрос мог быть выполнен, а мог и не быть выполненСначала по внешнему ID проверяем, есть ли запись, затем повторно отправляем с нарастающей паузой
Два процесса изменили одну записьСервер Odoo сам повторяет действие, всего до пяти попыток (в исходном коде)Интеграция тоже готова к такой ошибке: после короткой паузы повторяет попытку
Сообщение webhook не пришло или пришло дваждыОтправитель может отправить повторно или не отправить вовсеКаждое сообщение обрабатывается только один раз по его идентификатору. Раз в сутки сверяем две системы через API
Внешний сервис временно не работалСервер провайдера не отвечаетЗаписи хранятся в очереди и отправляются по порядку после восстановления сервиса; по истечении заданного срока сигнал уходит человеку
Мониторинг

Как мы узнаём, что подключение работает

Самая опасная неисправность — тихая: подключение останавливается, никто не замечает, а через несколько дней расчёты не сходятся. Поэтому мониторинг мы строим вместе с подключением, а не оставляем на потом. В документации Odoo по обновлению тоже есть пункт о проверке подключений к внешним программам в тестовой базе.

  • Таблица журнала: для каждого вызова — время, направление, идентификатор документа и статус
  • Список записей с ошибками внутри Odoo: ответственный сотрудник просматривает и исправляет их
  • Оповещение ответственному сотруднику через Telegram или email
  • Календарь сроков действия ключей: дата замены назначается до трёхмесячного предела
  • Ежедневная сверка: количество и суммы документов в Odoo и во внешней системе проверяются через API
  • Подключение заново тестируется при тестовом обновлении Odoo и при изменениях у провайдера
—
—
—
Честные границы

Что мы оцениваем и подключаем, а что не обещаем

Обещание по интеграции опирается на документацию провайдера, подписку Odoo и тип хостинга. Пока мы их не изучили, мы не говорим «подключится».

Оцениваем и подключаем

  • Подключения через Odoo JSON-2 и webhook
  • Обмен файлами и правила импорта
  • Подключения, у которых есть открытая документация провайдера
  • Модуль из Apps Store: выбор, проверка кода, тестирование

Каждый раз оценивается отдельно

  • Государственные системы: требуются оператор, кассовое средство, документ и договор
  • Местные платёжные сервисы: нужны договор и тестовая среда
  • Оборудование: зависит от модели и драйвера
  • Маркетплейс: открытость API подтверждается у провайдера

Не обещаем

  • Утверждение «готовый коннектор есть»
  • Возможность, которой нет в документации провайдера
  • Решение, которому на Odoo Online нужен специальный модуль
  • API, который не разрешает тип подписки
Подготовка

Что подготовить перед началом

Этот список ускоряет диагностику. Начать можно и без полного комплекта.

Системы

  • Список подключаемых систем и владелец каждой
  • Действующие подключения, в том числе старые скрипты XML-RPC

Данные

  • Какие поля обмениваются и какая система главная
  • Коды: ИКПУ (МХИК), штрихкод, внутренний артикул

Договор и разрешение

  • Договор с провайдером (оператор, банк, платёжный сервис) и тестовая среда
  • Владелец ключей электронной подписи
  • Наличие внешнего API в вашем типе подписки
Вопросы и ответы

Частые вопросы

Можно ли подключить к Odoo любую программу?

Технически большинство можно подключить через JSON-2 или файл. Но возможность зависит от трёх вещей: есть ли у внешней системы открытый интерфейс, предоставляет ли ваша подписка Odoo внешний API и какой у вас тип хостинга. На диагностике каждое подключение оценивается отдельно.

Можно ли делать интеграцию на Odoo Online?

Да, но без специального модуля внутри Odoo. Внешняя программа заходит через JSON-2 или Odoo отправляет webhook; в сложном случае строится промежуточный сервис. Специальные модули и модули из Apps Store с Online несовместимы. Odoo Online →

Что будет с нашими подключениями на старом XML-RPC?

Сервис базы данных удалён в Odoo 20, а остальные два сервиса планируется удалить в Odoo 22 и Online 21.1. Мы составим их список и спланируем перевод на JSON-2 вместе с обновлением версии.

Усложняет ли интеграция обновление базы?

Пока специальные и сторонние модули не адаптированы к новой версии, база не обновляется. Если внешняя система заходит через JSON-2, зависимость меньше, но при каждом обновлении подключение обязательно нужно проверять в тестовой базе.

Webhook или API: что выбрать?

Если внешней системе нужно сразу узнавать об изменении в Odoo — webhook. Если внешней системе нужно читать из Odoo или писать в неё — API. Часто используются оба вместе: webhook подаёт сигнал, API проверяет состояние. Webhook →

Нужен ли BUline доступ к нашим ключам?

Ключ создаётся от имени пользователя-бота в вашей базе Odoo и ограничивается по сроку. По окончании работ он заменяется. NDA подписывается по вашему запросу, охват и результаты фиксируются в письменном договоре.

Сколько стоит услуга и сколько времени она занимает?

Лицензия Odoo зависит от числа пользователей и приложений (условия на odoo.com); внешний API открыт только на некоторых типах подписки. Объём услуг BUline зависит от числа и сложности подключений, пользователей, филиалов, приложений, кастомизации, объёма данных и обучения. Точная стоимость и сроки сообщаются в письменном предложении после бесплатной диагностики.

Бесплатная диагностика

Вместе определим, с каких приложений Odoo начать

На диагностике разберём ваши процессы и скажем, где достаточно стандартного Odoo, а где нужна настройка, — со списком приложений, версией и этапами.

Бесплатная диагностика