#Introducción — Integración Deltav → Odoo 17

Objetivo, alcance y casos de uso de la integración entre Deltav y Odoo 17.

#Objetivo

Conectar el sistema externo Deltav con Odoo 17 mediante tres componentes que trabajan en conjunto:

  1. Un middleware REST que traduce llamadas a JSON-RPC interno de Odoo.
  2. Un módulo Odoo deltav_connector con modelos, vistas y controladores HTTP.
  3. Un módulo Odoo integrador_odoo2delta que notifica automáticamente al sistema externo cuando se crean o confirman documentos de venta y compra.

Esto permite sincronización bidireccional de entidades de negocio clave sin intervención manual.


#Componentes del Proyecto

#Middleware REST (FastAPI)

API REST que expone endpoints para que el sistema externo envíe datos a Odoo. Autentica por API Key + JWT, resuelve external_ref → odoo_id vía Mapping DB, y garantiza idempotencia en todas las operaciones de escritura.

#Módulo deltav_connector

Módulo nativo de Odoo 17 que extiende el ERP con:

#Módulo integrador_odoo2delta

Módulo nativo de Odoo 17 que extiende los módulos de Ventas y Compras para notificar automáticamente al sistema externo:

Módulo Odoo extendidoEventoAcción
sale.ordercreate / action_confirmHTTP POST a API externa con payload de venta
purchase.ordercreate / button_confirmHTTP POST a API externa con payload de compra

Incluye configuración de URL de API externa, reintentos, logging y manejo de errores HTTP.

Flujo: Odoo → evento (create/confirm) → hook → HTTP POST → API del sistema externo (DeltaV)


#Alcance

IncluidoFuera de alcance
Autenticación por API Key + JWTSingle Sign-On (SSO)
Upsert de contactos (res.partner)Gestión de oportunidades CRM
Upsert de productos con variantes (product.template + product.product)Pricing avanzado o reglas de precio
Upsert de listas de materiales (mrp.bom + mrp.bom.line)Planificación de producción (MRP scheduler)
Creación y conciliación de pagos (account.payment)Facturación electrónica o fiscal
Mapeo external_id → odoo_id vía Mapping DBMigración masiva de datos históricos
Idempotencia por external_ref en POSTWebhooks entrantes hacia Odoo
Rate limit de 100 req/min por API KeyMulti-tenancy
Notificaciones salientes de ventas y compras al sistema externoSincronización de otros modelos (inventario, contabilidad, etc.)
Reintentos automáticos con backoff exponencial en notificaciones salientesProcesamiento de respuestas de negocio del sistema externo
Módulo deltav_connector — modelos, vistas, sync, seguridadModificaciones a otros módulos de Odoo
Módulo integrador_odoo2delta — hooks en sale.order y purchase.orderNotificaciones de otros documentos (facturas, albaranes, etc.)

#Casos de uso

#1. Sincronización de contactos

El sistema externo envía un contacto (empresa o individuo). El middleware lo crea o actualiza en Odoo por external_ref y devuelve el odoo_id mapeado.

Flujo: POST /v1/contacts → lookup mapping → upsert res.partner → respuesta con ID

#2. Alta de productos con variantes

El sistema externo define un producto con atributos (color, talle, etc.). El middleware crea product.template, genera las variantes (product.product) y mapea cada una.

Flujo: POST /v1/products → crear template → generar variantes → mapear template + variantes

#3. Definición de lista de materiales (BoM)

El sistema externo envía una BoM con sus componentes. El middleware resuelve las dependencias (productos deben existir) y crea mrp.bom + mrp.bom.line.

Flujo: POST /v1/boms → resolver producto y componentes → crear BoM → mapear

#4. Registro de pagos

El sistema externo informa un pago asociado a facturas de Odoo. El middleware crea account.payment, concilia contra las facturas indicadas y confirma la operación.

Flujo: POST /v1/payments → resolver partner + facturas → crear pago → action_post() → respuesta

#5. Notificación de ventas al sistema externo

Cuando se crea o confirma un sale.order en Odoo, el módulo integrador_odoo2delta envía automáticamente un HTTP POST a la API del sistema externo con los datos de la orden.

Flujo: sale.order confirmado → hook integrador_odoo2delta → HTTP POST → API DeltaV → confirmación

#6. Notificación de compras al sistema externo

Cuando se crea o confirma un purchase.order en Odoo, el módulo integrador_odoo2delta envía automáticamente un HTTP POST a la API del sistema externo con los datos de la orden de compra.

Flujo: purchase.order confirmado → hook integrador_odoo2delta → HTTP POST → API DeltaV → confirmación


📄 Ver también: Arquitectura · API Doc