odoo

Introducción

Odoo es un ERP modular y open-source escrito en Python, con un ORM propio, vistas XML, widgets JavaScript y una arquitectura que permite extender cualquier aplicación mediante módulos. Ofrece aplicaciones empresariales integradas: contabilidad, ventas, inventario, marketing, proyectos, e-commerce, fabricación, RRHH, helpdesk, y más.


Documentación Oficial

Guías externas


Arquitectura de Odoo

  • Framework propio en Python.
  • ORM basado en modelos (models.Model).
  • Vistas XML: form, tree, kanban, calendar, search.
  • Widgets y componentes web (JS).
  • Plantillas QWeb para informes y web.
  • API JSON-RPC.
  • PostgreSQL como backend obligatorio.
  • Sistema modular 100% extensible.

Desarrollo en Odoo

Crear módulos

  • Estructura:
    • __manifest__.py
    • __init__.py
    • modelos (models/)
    • vistas XML (views/)
    • datos (data/)
  • Tipos de módulos:
    • Modelos y campos
    • Wizards
    • Reportes QWeb
    • Controladores web
    • Web assets (JS/CSS)
    • Seguridad (ACL, reglas)

API de Odoo

  • @api.model
  • @api.depends
  • @api.onchange
  • @api.constrains
  • self.env para ORM y entorno
  • context para metadatos
  • Métodos ORM:
    • create()
    • write()
    • search()
    • search_read()
    • unlink()

Errores frecuentes

  • XML mal formateado.
  • Permisos mal definidos en ACL.
  • Falta de dependencias en __manifest__.py.
  • Campos compute sin store=True.
  • Overrides sin super().

Módulos destacados

Core empresarial

  • CRM, Ventas, Compras, Inventario, Contabilidad
  • Marketing, Proyectos, eCommerce
  • Helpdesk, MRP, RRHH

Especiales


Despliegue y Administración

Docker

On-Premise

Odoo.sh

  • CI/CD integrado
  • Backups
  • Gestión de entornos
  • Despliegue optimizado

Integraciones

  • API JSON-RPC
  • Webhooks
  • Pasarelas de pago
  • E-commerce
  • Conectores OCA (Amazon, eBay, WooCommerce)
  • Automatizaciones (Studio, acciones de servidor)

Procesos empresariales integrados

  • Ventas → Facturación → Contabilidad
  • Compras → Inventario → Logística
  • CRM → Marketing → Seguimiento
  • MRP → BOM → Producción
  • RRHH → Asistencias → Nóminas
  • Proyectos → Costes → Control
  • Helpdesk → SLA → Resolución

Videos


Buenas Prácticas

  • Usar repos OCA como referencia.
  • Separar módulos personalizados del core.
  • Evitar consultas ORM dentro de loops.
  • Escribir tests (unittest + Odoo test framework).
  • Controlar permisos desde el inicio.
  • Optimizar PostgreSQL en producción.
  • Usar workers, reverse proxy y cachés.
  • Aprovechar herramientas de Odoo.sh si es posible.

Recursos