#Arquitectura — Integración Odoo Producción

Diagramas de secuencia y arquitectura del sistema de integración con Odoo para los casos A (demanda por venta) y B (producción directa).

#Visión general del sistema

Sistema ExternoAPI de IntegraciónOdooSalesMRPStockMaestrosPlanificador / MESSistema ComercialAutenticaciónValidación + IdempotenciaResolución de MaestrosServicio de Aplicaciónsale.ordermrp.productionmrp.workordermrp.bomstock.moveReservasproduct.productres.partnerPOST /case-a/sales-ordersPOST /case-b/manufacturing-ordersPOST /master-data/*Crear + confirmar ventaCrear + confirmar + planificarUpsert productos + BOMsUpsert clientesReabastecimiento MRPWork ordersConsumo / producción

#Caso A — Demanda por venta

Sistema ExternoAPI Integraci.nOdoo SalesOdoo MRPOdoo StockSistema ExternoSistema ExternoAPI IntegraciónAPI IntegraciónOdoo SalesOdoo SalesOdoo MRPOdoo MRPOdoo StockOdoo StockPOST /api/v1/case-a/sales-orders{external_order_id, customer, lines}validar idempotenciavalidar maestros requeridos(productos, cliente, almacén)crear sale.order+ sale.order.lineconfirmar orden de ventadisparar reabastecimientoprocurar demanda de fabricacióngenerar mrp.productionsegún reglas de abastecimientointentar reservade componentes201 Accepted{odoo_id, estado: "triggered"}

#Caso B — Producción directa

Sistema ExternoAPI Integraci.nOdoo MRPOdoo Work OrdersOdoo StockAPI ConsultaSistema Externo(Planificador)Sistema Externo(Planificador)API IntegraciónAPI IntegraciónOdoo MRPOdoo MRPOdoo Work OrdersOdoo Work OrdersOdoo StockOdoo StockAPI ConsultaAPI ConsultaPOST /api/v1/case-b/manufacturing-orders{external_mo_id, product, bom, quantity}validar idempotenciavalidar maestros requeridos(producto, BOM, almacén)crear mrp.productionconfirmar orden de fabricaciónplanificar operaciones(generar work orders)intentar reservade componentes201 Accepted{odoo_id, state: "confirmed"}Flujo posteriorGET /api/v1/status/production-orders/{id}consultar estadomrp.productionconsultar progresowork ordersconsultar reservas+ movimientos200 OK{state, produced_qty,reserved_components}

#Capas del sistema

API PúblicaEndpoints RESTAutenticación BearerValidación + IdempotenciaObservabilidadServicio de AplicaciónOrquestación Caso AOrquestación Caso BSincronización de maestrosAdaptador OdooMapeo de contratosResolución external_idJSON-RPCOdooVentas, MRP, StockMaestrosSistema destino

#Tabla de capas

CapaResponsabilidadObservación
API públicaEndpoints, autenticación, validación, idempotencia, respuestasInterfaz recomendada para terceros
Servicio de aplicaciónOrquestación del caso A, caso B y sincronización de maestrosNo expone detalles internos de Odoo
Adaptador OdooMapeo de contratos a modelos y métodos del ERPPuede usar JSON-RPC o RPC legacy
OdooEjecución funcional de ventas, MRP, stock y maestrosSistema destino

#Flujo de sincronización de maestros

Sistema ExternoAPI Integraci.nAdaptador OdooOdooSistema ExternoSistema ExternoAPI IntegraciónAPI IntegraciónAdaptador OdooAdaptador OdooOdooOdooMaestros primariosPOST /master-data/products/upsert{external_id, sku, name, type, uom}resolver/crear product.template+ product.productupsert productoodoo_idmapeado ok200 {status: "upserted"}POST /master-data/boms/upsert{external_id, product, components[]}resolver/crear mrp.bom+ mrp.bom.lineupsert BOM + líneasbom_idmapeado ok200 {status: "upserted"}Los maestros primarios DEBEN existirantes de enviar demanda o producción.Si faltan, la API responde 404 MASTER_NOT_FOUND.

📄 Fuente: Informe de Integración Odoo Producción v14