Ir al contenido

Odoo API

El modulo Odoo API permite conectarse a endpoints de Odoo u Open Bravo para leer datos mediante peticiones GET con autenticación básica. Soporta paginación automática siguiendo los enlaces links.next de la respuesta, reintentos ante errores ECONNRESET con backoff exponencial, y variables dinámicas en la URL. Es ideal para extraer catalogos de productos, listas de precios, inventarios y cualquier dato accesible via API REST desde Odoo u Open Bravo. El modulo normaliza múltiples formatos de respuesta (arrays, objetos con data, payloads anidados) para proporcionar siempre un array unificado.

ParámetroTipoRequeridoDescripción
credentials_idcredentialsSiCredenciales de acceso a Odoo / Open Bravo
urltextSiURL del endpoint (soporta variables {{variable}})
pageSizenumberNoNúmero de registros por página (por defecto: 100)
delayMsnumberNoTiempo de espera entre peticiones en milisegundos (por defecto: 500)

La credencial debe contener los campos:

  • username: Nombre de usuario para autenticación básica
  • password: Contrasena para autenticación básica

El modulo genera un header Authorization: Basic <base64> con estas credenciales para cada petición.

{
"nextModule": "siguiente_modulo",
"data": {
"data": [
{ "id": 1, "name": "Producto A" },
{ "id": 2, "name": "Producto B" }
],
"links": { "next": null }
}
}
{
"credentials_id": "cred_odoo_01",
"url": "https://mi-odoo.com/api/products",
"pageSize": 100,
"continu_next_link": true,
"totalIterations": 0,
"delayMs": 500
}

Cualquier endpoint REST compatible con Odoo / Open Bravo. La URL se construye con parámetros de paginación _page y _pageSize.

  • Soporta variables dinámicas {{variable}} en la URL
  • La paginación automática se activa con continu_next_link: true y sigue los links.next de cada respuesta
  • totalIterations: 0 significa sin limite de iteraciones
  • Incluye reintentos automáticos (hasta 3) con backoff exponencial para errores ECONNRESET
  • El parámetro continueOnError: true permite que el workflow continue aunque ocurra un error
  • El modulo normaliza múltiples formatos de respuesta API para devolver siempre un array unificado en data.data