Guía de integración de API de Odoo: conecte Odoo a cualquier sistema

Guía técnica para la integración de API de Odoo: protocolos XML-RPC y JSON-RPC, autenticación, operaciones CRUD, mapeo de campos, manejo de errores, patrones de webhooks y ejemplos de integración del mundo real.

E

ECOSIRE Research and Development Team

Equipo ECOSIRE

5 de marzo de 20265 min de lectura1.1k Palabras

Guía de integración de API de Odoo: conecte Odoo a cualquier sistema

Odoo rara vez opera de forma aislada. Las empresas lo necesitan conectado a plataformas de comercio electrónico, procesadores de pagos, transportistas, herramientas de marketing y aplicaciones personalizadas. La API externa de Odoo proporciona dos protocolos (XML-RPC y JSON-RPC) que permiten que cualquier sistema lea, cree, actualice y elimine registros en Odoo mediante programación.

Autenticación

Autenticación de clave API

Genere una clave API en Odoo: navegue hasta su perfil de usuario, luego Seguridad de cuenta, luego Claves API. Cree una clave con una etiqueta descriptiva. Utilice esta clave en lugar de su contraseña para la autenticación API; puede revocarse de forma independiente sin cambiar sus credenciales de inicio de sesión.

Parámetros de conexión

Cada llamada API requiere: la URL del servidor Odoo, el nombre de la base de datos, su nombre de usuario (correo electrónico de inicio de sesión) y la clave API. Guárdelos de forma segura: nunca codifique las credenciales en el código fuente.

Protocolo XML-RPC

Configuración de conexión

XML-RPC utiliza dos puntos finales: /xmlrpc/2/common para autenticación y /xmlrpc/2/object para operaciones de datos. Primero autentíquese para obtener una identificación de usuario y luego use esa identificación para llamadas posteriores.

Operaciones CRUD

Buscar y leer: Consulta registros con filtros de dominio (similar a las cláusulas WHERE de SQL). Los dominios utilizan tuplas: [('state', '=', 'sale'), ('amount_total', '>', 1000)] encuentra pedidos de ventas confirmados superiores a $1000.

Crear: pasar un diccionario de valores de campo. La API devuelve el nuevo ID de registro. Se deben incluir los campos obligatorios o la llamada falla con un error de validación.

Escribir: actualice los registros existentes pasando los ID de los registros y un diccionario de valores modificados. Incluya únicamente los campos que desee modificar.

Desvincular: Eliminar registros por ID. Úselo con precaución: algunos registros no se pueden eliminar si tienen registros dependientes.

Protocolo JSON-RPC

¿Por qué JSON-RPC?

Generalmente se prefiere JSON-RPC para las integraciones modernas: utiliza JSON (más fácil de usar para los desarrolladores que XML), funciona mejor con aplicaciones JavaScript/TypeScript y ofrece un rendimiento ligeramente mejor para cargas útiles grandes.

Formato de solicitud

Las llamadas JSON-RPC van a un único punto final: /jsonrpc. Cada solicitud incluye el nombre del servicio, el método y los argumentos en un sobre estándar JSON-RPC 2.0.

Patrones de integración comunes

Sincronización de pedidos de comercio electrónico

Sincronice pedidos de Shopify o WooCommerce con Odoo:

  1. Escuche los webhooks de pedidos desde la plataforma de comercio electrónico.
  2. Asigne datos de clientes a registros de socios de Odoo (cree o combine los existentes)
  3. Cree una orden de venta con líneas de pedido asignadas a productos Odoo.
  4. Confirme el pedido para activar los flujos de trabajo de cumplimiento.
  5. Sincronice la información de seguimiento con la plataforma de comercio electrónico

Integración del procesador de pagos

Conecte Stripe, PayPal u otros procesadores:

  1. Reciba webhooks de confirmación de pago
  2. Haga coincidir los pagos con las facturas de Odoo por número de referencia
  3. Registrar el pago en Odoo Accounting
  4. Conciliar con extractos bancarios automáticamente

Sincronización de CRM

Mantenga Odoo CRM sincronizado con herramientas de marketing externas:

  1. Los nuevos clientes potenciales de las plataformas de marketing crean clientes potenciales en Odoo.
  2. Las actualizaciones de puntuación de clientes potenciales fluyen de forma bidireccional
  3. Las oportunidades ganadas desencadenan campañas de seguimiento en la herramienta de marketing.
  4. La información de contacto permanece sincronizada en todos los sistemas.

Manejo de errores

Errores comunes

  • Acceso denegado: Credenciales no válidas o permisos insuficientes
  • Error de validación: faltan campos obligatorios o valores no válidos
  • Registro no encontrado: hace referencia a una identificación que no existe
  • Actualización simultánea: otro usuario modificó el registro simultáneamente

Mejores prácticas

  1. Implementar lógica de reintento con retroceso exponencial para fallas transitorias
  2. Valide los datos antes de enviarlos para detectar errores con antelación
  3. Registrar todas las llamadas API para fines de depuración y auditoría
  4. Administrar límites de tarifas: operaciones por lotes en lugar de llamadas individuales
  5. Utilice operaciones idempotentes para reintentar de forma segura llamadas fallidas

Optimización del rendimiento

  • Lecturas por lotes: use search_read en lugar de llamadas separadas search + read
  • Limitar campos: solicite solo los campos que necesita, no todos los campos del modelo
  • Paginación: use limit y offset para conjuntos de resultados grandes
  • Almacenamiento en caché: almacena en caché los datos que cambian lentamente (catálogos de productos, tipos de cambio) localmente

Patrones de webhook

Odoo no tiene webhooks salientes nativos en todas las versiones. Enfoques comunes:

  • Acciones automatizadas: acciones del servidor que se activan cuando se realizan cambios en los registros y llaman a URL externas.
  • Controladores personalizados: cree un módulo de Odoo que exponga puntos finales de webhook para sistemas externos
  • Encuesta: Los sistemas externos sondean Odoo a intervalos para detectar cambios (más simple pero menos en tiempo real)

Consideraciones de seguridad

  • Utilice claves API en lugar de contraseñas
  • Restringir el acceso a la API por dirección IP a nivel de red
  • Utilice HTTPS para todas las comunicaciones API
  • Implementar derechos de acceso adecuados: los usuarios de API deben tener los permisos mínimos necesarios
  • Rote las claves API periódicamente y revoque las claves comprometidas inmediatamente

Nuestro servicio de integración de Odoo crea integraciones de nivel de producción con manejo de errores, monitoreo y seguridad adecuados.

Preguntas frecuentes

¿Qué protocolo debo utilizar: XML-RPC o JSON-RPC?

JSON-RPC para nuevos proyectos. Es más amigable para los desarrolladores, funciona mejor con herramientas modernas y es la dirección en la que se dirige Odoo. XML-RPC para sistemas o lenguajes heredados con mejor compatibilidad con la biblioteca XML-RPC.

¿Existe una API REST?

Odoo 17+ incluye una API REST junto con los puntos finales RPC. Sigue las convenciones REST estándar con cargas útiles JSON y, en general, es más fácil trabajar con él para aplicaciones web.

¿Cómo manejo las grandes migraciones de datos?

Para cargas de datos iniciales, utilice la función de importación CSV o escriba un script de migración que cree registros en lotes (100-500 registros por lote) con manejo de errores para cada lote.

¿Puedo ampliar la API con puntos finales personalizados?

Sí. Cree módulos Odoo personalizados con clases de controlador que expongan puntos finales HTTP adicionales para operaciones especializadas no cubiertas por la API estándar.

E

Escrito por

ECOSIRE Research and Development Team

Construyendo productos digitales de nivel empresarial en ECOSIRE. Compartiendo perspectivas sobre integraciones Odoo, automatización de eCommerce y soluciones empresariales impulsadas por IA.

Chatea en whatsapp