Saltar al contenido

Odoo Studio V18: Personaliza tus aplicaciones sin programar

1) ¿Qué es Odoo Studio y para qué sirve?

📘 ARTÍCULO TÉCNICO

Odoo Studio es la herramienta low-code de Odoo que permite personalizar y crear aplicaciones, vistas, campos y automatizaciones sin escribir un módulo desde cero. Con Studio puedes añadir campos (char, date, relational, etc.), cambiar vistas (form, list, kanban…), crear menús, editar PDFs y configurar automatizaciones como acciones programadas o webhooks.

2) Acceso y primeros pasos (cómo abrir Studio)

Pasos para empezar:

  1. Instala la app ‘Studio’ desde Aplicaciones si aún no está instalada.
  2. En la barra superior, activa el icono de Studio (herramientas).
  3. Selecciona el modelo o vista que quieres personalizar o crea una nueva aplicación desde cero.
  4. Se abrirá el lienzo con la barra lateral de herramientas donde arrastrarás campos, bloques y automatizaciones.

3) Vista general de la interfaz (qué hay en la barra lateral)

La barra lateral de Studio suele contener:

  • Fields / Campos: lista de tipos de campos arrastrables.
  • Views / Vistas: cambiar o crear vistas (form, list, kanban, calendar, graph, pivot, gantt).
  • Automation / Automatizaciones: reglas automáticas, server actions, webhooks.
  • PDF Reports / Informes: editor de plantillas QWeb para PDFs.
  • Menus / Menú: Reorganizar y crear entradas de menú.
  • Access Rights / Reglas de acceso y export/import de personalización.

4) Campos y widgets — cada tipo, cómo y para qué

Resumen: Arrastra el campo al formulario (o usa Add > Field) y edita sus propiedades.

Propiedades comunes: Label, Nombre técnico (developer mode), Help Tooltip, Widget, Placeholder, Default value, Required, Read-only, Visibility (grupos).

Tipos básicos:

  • Char (texto corto): etiqueta, longitud, placeholder. Uso: códigos, referencias.
  • Text (textarea): texto multilínea.
  • Integer/Float/Monetary: números; Monetary usa campo currency_id asociado.
  • HTML: editor WYSIWYG para contenidos ricos.
  • Date / Datetime: fecha / fecha + hora; widgets como Date Range disponibles.

Booleanos/Selección:

  • Boolean: checkbox, toggle, button.
  • Selection: valores predefinidos; widgets: badge, radio, statusbar.

Binarios y multimedia:

  • Binary / File: archivos, imágenes (widget image), firma (widget sign). Útil para adjuntar documentación.

Relacionales (importante entender):

  • Many2one (muchos a uno): referencia a un registro de otro modelo. Configura el ‘comodel’ y dominio para filtrar.
  • One2many (uno a muchos): colección derivada; requiere un campo inverso (Many2one) en el modelo relacionado.
  • Many2many (muchos a muchos): Relación bidireccional; útil para tags y categorías múltiples.

Notas técnicas:

Many2one crea la columna FK (Foreign Key) en la base de datos. One2many no crea columna propia, sino que usa la FK del otro modelo. Para lógica más compleja o validaciones únicas, se suele usar Server Actions o desarrollar un módulo Python.

5) Widgets y visualización avanzada (por campo)

  • Status Bar (para campos Selection): ideal para pipelines y Kanban.
  • Date Range: presenta fecha inicio/fin en una única sección (requiere dos campos subyacentes).
  • Monetary: Añade currency_id oculto y activa funcionalidades en gráficos/pivots.
  • Image: Vista previa en cabecera del formulario si se ubica allí.
  • Checkbox → Toggle / Button: controles más visuales para booleanos.

6) Bloques y layout (cómo construir formularios limpios)

Elementos disponibles:

  • Group: Agrupa campos horizontal/vertical.
  • Notebook / Page / Tab: Pestañas para organizar información.
  • Separator: Separadores visuales.
  • Label: Texto estático explicativo.
  • Lines / One2many: Zonas para añadir líneas (ej. facturas/órdenes).
  • StatusBar: Barra de estado vinculada a un campo selection.
  • Smart Buttons / Action Buttons: Botones que ejecutan acciones o abren vistas relacionadas.

7) Vistas que puedes editar con Studio

Studio permite editar y crear las siguientes vistas:

  • Form view (formulario de edición de registros).
  • List/Tree view (listados/tablas).
  • Kanban (tarjetas en pipeline).
  • Calendar (eventos/fechas).
  • Graph/Pivot (gráficos y pivotes para análisis).
  • Gantt (proyectos/planificación).
  • Search view (filtros guardados, medidas).

8) Automatizaciones (Automated Actions / Server Actions)

Triggers disponibles: On Creation, On Update, On Deletion, On Change, On Schedule (programado), On Webhook (entrada externa).

Acciones posibles: Execute Python code (Server Action), Create/Update records, Send Email, Send Webhook, Add followers, Create next activity, Chain multiple actions.

Cómo crear una regla (paso a paso):

  1. Studio → Automation → New.
  2. Nombre y modelo objetivo.
  3. Elegir trigger (ej. On Update) y condiciones (dominio o expresión).
  4. Definir acciones (ej. Send Email o Execute Server Action).
  5. Guardar y probar en una BD de test antes de producción.

Server Actions: Permiten ejecutar código Python en el servidor. Útil para lógicas complejas, pero revisar limitaciones en entornos hospedados (Odoo Online/Odoo.sh).

9) Webhooks — recibir y enviar datos en tiempo real.

Cómo crear/usar webhooks:

  1. Studio → Webhooks → New.
  2. Nombre y modelo objetivo.
  3. Odoo genera una URL secreta; habilita Log Calls para depuración.
  4. Define payload y la Server Action que se ejecutará al recibir la llamada.
  5. Prueba en entorno de desarrollo antes de producción.

10) Informes PDF (QWeb) — cómo editarlos en Studio

Studio permite editar las plantillas QWeb de reportes (factura, cotización, albarán):

  • Abrir Reports en Studio y seleccionar el reporte a editar.
  • Usar el editor visual para cambios simples o el editor XML para ajustes avanzados (requiere conocimientos de QWeb/HTML).
  • Probar siempre la vista previa para verificar el resultado en PDF.

11) Crear modelos y aplicaciones / Exportar personalizaciones

Con Studio puedes crear un nuevo modelo (tabla) y una aplicación completa: vistas, campos y menú inicial.

Al usar features como Tags, Pipeline o Lines, Studio crea modelos relacionados automáticamente. Puedes exportar la personalización como un módulo (studio_customization) para importarlo en otra BD.

12) Seguridad y visibilidad (Access Rights / Record Rules£).

En Studio puedes controlar la visibilidad de campos por grupos (Allow visibility to groups / Forbid visibility).

Cambios relevantes en ACL o Record Rules deben probarse cuidadosamente: errores pueden dejar funciones inaccesibles. Para ajustes avanzados, revisa Settings → Technical → Security.

13) Limitaciones y buenas prácticas

Limitaciones a considerar:

  • No sustituye el desarrollo cuando la lógica es muy compleja (transacciones, librerías externas, tests unitarios).
  • Evitar Server Actions con código demasiado largo (difícil de mantener).
  • Probar siempre en copia de la BD antes de aplicar cambios en producción.
  • Exportar y versionar el ZIP de studio_customization con regularidad.

14) Ejemplos prácticos (paso a paso)

Ejemplo A — Añadir campo ‘Número de serie’ (Char) al formulario de Producto.

Pasos:

  1. Productos → Activar Studio.
  2. En Form view arrastra ‘Char’ y colócalo en la sección deseada.
  3. Label = ‘Número de serie’. Marca ‘Required’ si es obligatorio. Añade Help Tooltip.
  4. Guardar y probar creando un producto.

Alcance / límites: Studio crea el campo en la base de datos; si necesitas que el valor sea único, debes crear una validación extra mediante Server Action o módulo Python.

Ejemplo B — Automatización: enviar email al pasar a estado ‘confirmed’

Pasos:

  1. En el modelo objetivo, Studio → Automation → New.
  2. Trigger: On update. Condition: state == ‘confirmed’.
  3. Action: Send Email → elegir plantilla o escribir contenido dinámico.
  4. Guardar y probar creando el cambio de estado.

Alcance: útil para notificaciones; para lógicas complejas de envío masivo, combinar con colas y trabajos programados.

Ejemplo C — Webhook para sincronizar un campo desde otra BD

Pasos:

  1. DB destino: Studio → Webhooks → New. Selecciona modelo objetivo y copia la URL generada.
  2. Habilita Log Calls para depuración.
  3. En DB origen: crear regla que ‘Send Webhook Notification’ a la URL destino con payload JSON.
  4. Probar con Postman o cambios en origen; revisar logs en destino.

Alcance: potente para integraciones simples; para sincronizaciones complejas conviene usar módulos o middleware que manejen colas y reintentos.

15) Checklist antes de publicar en producción

  • Probar en BD duplicada.
  • Revisar y documentar Server Actions.
  • Validar reglas de acceso (ACL/Record Rules).
  • Exportar studio_customization y guardar versión.
  • Hacer pruebas de integración (webhooks/outbounds).

Recursos oficiales y lectura recomendada

  • Documentación oficial de Odoo Studio (Fields, Views, Automation, Reports).
  • Tutoriales de Odoo para QWeb y Server Actions.

📌 En resumen

Odoo Studio v18 permite que el negocio tome control de las personalizaciones: crear campos, vistas, automatizaciones y aplicaciones sin depender siempre de desarrolladores. Sin embargo, hay límites: para lógica compleja y componentes críticos, sigue siendo recomendable un módulo desarrollado a medida y buenas prácticas de pruebas y versionado.

¿Te gustaría implementar Odoo en tu empresa?

12 años de experiencia · +60 implementaciones exitosas · Partner Gold de Odoo en México

Hablemos por WhatsApp