#Arquitectura — Integración Deltav → Odoo 17
Diagramas de secuencia en PlantUML del flujo completo: autenticación, contactos, productos, BoMs y pagos.
#Visión general del sistema
#1. Autenticación — Obtención de JWT
#3. Productos — Template + Variantes
#4. Lista de Materiales — BoM con dependencias
#5. Pagos — Cobro + Conciliación
#6. Orden de carga obligatorio
| # | Entidad | Depende de | Motivo |
|---|
| 1 | Contactos | — | Sin dependencias |
| 2 | Productos | Contactos | Suppliers, taxes |
| 3 | BoMs | Productos | Producto + componentes deben existir |
| 4 | Pagos | Contactos + Facturas | Partner, journal e invoices |
#Tabla de Mapeo — Mapping DB
┌─────────────┬──────────┬──────────────┬──────────────────────┐
│ ext_ref │ odoo_id │ model │ updated_at │
├─────────────┼──────────┼──────────────┼──────────────────────┤
│ EXT-001 │ 42 │ res.partner │ 2026-07-02T17:00:00Z │
│ PROD-001 │ 15 │ product.tpl │ 2026-07-02T17:01:00Z │
│ PROD-001-30 │ 30 │ product.prod │ 2026-07-02T17:01:00Z │
│ PROD-001-31 │ 31 │ product.prod │ 2026-07-02T17:01:00Z │
│ BOM-001 │ 8 │ mrp.bom │ 2026-07-02T17:02:00Z │
│ PAY-001 │ 156 │ acct.payment │ 2026-07-02T17:03:00Z │
└─────────────┴──────────┴──────────────┴──────────────────────┘
Unicidad: (model, ext_ref) — cada external_ref es único por tipo de entidad.
#Propiedades del Middleware
| Propiedad | Descripción |
|---|
| Idempotencia | POST con mismo external_ref = upsert (crea o actualiza) |
| Resolución de IDs | Cada request consulta Mapping DB: ext_ref → odoo_id |
| Merge parcial | Solo los campos enviados se modifican en Odoo |
| Idempotency-Key | Header opcional para prevenir duplicados en reintentos |
| Rate Limit | 100 req/min por API Key — 429 Too Many Requests |
| Timeout | REST: 30s — JSON-RPC: 60s — 504 Gateway Timeout |
#7. Notificaciones Salientes — integrador_odoo2delta
#Flujo de notificación de venta
#Flujo de notificación de compra
#8. Diagrama de Capas del Sistema