Ir al contenido

Modelo Website: Cómo Funciona la Arquitectura de Configuración de Odoo

Guía exhaustiva sobre el modelo de sitio web en Odoo para desarrolladores y consultores funcionales
11 de marzo de 2026 por
Modelo Website: Cómo Funciona la Arquitectura de Configuración de Odoo
Dasolo
| Sin comentarios aún

Introducción


En Odoo, los modelos actúan como plantillas para guardar datos: determinan qué información existe, cómo se almacena y cómo se relaciona. Todo dato de negocio que manejas —productos, páginas, usuarios— vive en un modelo concreto.


Tanto desarrolladores como consultores funcionales deben dominar los modelos de Odoo. Son la base de la arquitectura: definen campos, relaciones y la lógica que gobierna la plataforma.


Aquí nos centraremos en el modelo de sitio web. Es el encargado de toda la configuración de un sitio en Odoo; si gestionas varios dominios, ajustas la identidad de marca o conectas el sitio con servicios externos, vas a trabajar con este modelo.

¿Qué es el modelo de sitio web?


El modelo de sitio web representa la configuración de una web dentro de Odoo. En él se guardan los parámetros que determinan la apariencia y comportamiento de un sitio: dominio, idiomas disponibles, elementos de identidad, enlaces sociales y la estructura del menú.


Forma parte de la app Website y cada web en Odoo tiene su propio registro. En instalaciones con múltiples sitios se crean varias entradas: cada una puede tener dominio, compañía, idiomas y tema independientes.


Otros modelos hacen referencia al sitio mediante el campo website_id. Muchos registros —páginas, blogs, productos— incluyen website_id para asociar su contenido a un sitio concreto; así Odoo segmenta datos por sitio y permite lógica multiweb.

Campos clave del modelo


A continuación tienes los campos más relevantes del modelo website. Comprenderlos facilita la configuración y el desarrollo alrededor del sitio.


1. name

Tipo: Char. Obligatorio. Guarda el nombre del sitio; aparece en el selector del backend y en pantallas de configuración. Funciona como identificador principal para los administradores.


2. sequence

Tipo: Integer. Valor por defecto 10. Define el orden de visualización cuando hay varias webs: los números más bajos se muestran antes.


3. domain

Tipo: Char. Dominio del sitio (por ejemplo https://www.midominio.com). Odoo añade el protocolo si falta y exige unicidad. Se usa para enrutamiento y aspectos SEO.


4. company_id

Tipo: Many2one (res.company). Obligatorio. Vincula el sitio a una compañía de Odoo; en entornos multiempresa cada web mostrará sólo la información relacionada con su compañía.


5. language_ids

Tipo: Many2many (res.lang). Idiomas disponibles en ese sitio; los visitantes pueden cambiar entre ellos. Por defecto incluye todos los idiomas instalados.


6. language_count

Tipo: Integer. Computado. Número de idiomas habilitados; útil para interfaces y filtros.


7. default_lang_id

Tipo: Many2one (res.lang). Obligatorio. Idioma por defecto al llegar un visitante; debe estar incluido en language_ids.


8. auto_redirect_lang

Tipo: Boolean. Por defecto True. Si está activado, redirige a los visitantes al idioma del navegador cuando esté disponible.


9. cookies_bar

Tipo: Boolean. Si es True se muestra un aviso de cookies, útil para cumplir la normativa de protección de datos; Odoo puede generar una página de política de cookies automáticamente.


10. logo

Tipo: Binary. Logo del sitio. Se muestra en la cabecera y otros lugares; si no se define, Odoo usa su logo por defecto.


11. favicon

Tipo: Binary. Favicon que aparece en la pestaña del navegador. Odoo lo ajusta a 256x256.


12. social_twitter

Tipo: Char. URL de la cuenta de Twitter/X. Suele heredarse desde la compañía y se emplea en pie de página y compartición social.


13. social_facebook

Tipo: Char. URL de Facebook. Sigue la misma lógica que los demás campos sociales.


14. social_linkedin

Tipo: Char. URL de LinkedIn.


15. social_instagram

Tipo: Char. URL de Instagram.


16. social_youtube

Tipo: Char. URL de YouTube.


17. social_github

Tipo: Char. URL de GitHub.


18. social_tiktok

Tipo: Char. URL de TikTok.


19. social_default_image

Tipo: Binary. Imagen por defecto para compartir en redes sociales; sustituye al logo cuando está definida y se usa en Open Graph y tarjetas de Twitter.


20. google_analytics_key

Tipo: Char. Clave de Google Analytics para seguimiento; Odoo inserta el script cuando se configura.


21. google_maps_api_key

Tipo: Char. Clave de la API de Google Maps, necesaria para mapas y funciones de localización.


22. user_id

Tipo: Many2one (res.users). Obligatorio. Usuario público asociado al sitio; se usa para el acceso portal y visitantes anónimos y suele heredarse de la compañía.


23. cdn_activated

Tipo: Boolean. Si es True, los recursos estáticos se sirven desde un CDN, mejorando rendimiento y tiempos de carga.


24. cdn_url

Tipo: Char. URL base del CDN; se utiliza cuando cdn_activated está activo.


25. cdn_filters

Tipo: Text. Expresiones regulares para definir qué rutas se reescriben a través del CDN; por defecto apunta a rutas estáticas.


26. menu_id

Tipo: Many2one (website.menu). Computado. Apunta al menú raíz del sitio y define la entrada principal de navegación.


27. homepage_url

Tipo: Char. Ruta de la página de inicio (por ejemplo /contacto o /tienda). Debe comenzar con una barra.


28. custom_code_head

Tipo: Html. Código personalizado inyectado en la etiqueta head; útil para analytics, meta tags o scripts necesarios.


29. custom_code_footer

Tipo: Html. Código personalizado para el pie de página; ideal para chat widgets o trackers.


30. robots_txt

Tipo: Html. Contenido del archivo robots.txt personalizado, para controlar el acceso de rastreadores y mejorar SEO.


31. theme_id

Tipo: Many2one (ir.module.module). Tema instalado para el sitio.


32. auth_signup_uninvited

Tipo: Selection. Valores: b2b (solo por invitación) o b2c (registro libre). Controla si los visitantes pueden crear cuentas sin invitación.


33. create_date

Tipo: Datetime. Fecha de creación del registro; Odoo la gestiona automáticamente.


34. write_date

Tipo: Datetime. Fecha de la última modificación; también gestionada por Odoo.

Cómo se integra este modelo en los flujos de trabajo empresariales


1. Multi-sitio y localización

Empresas con marcas o regiones distintas crean un registro por cada web. Cada sitio mantiene su propio dominio, idiomas y contenido. Los campos website_id en páginas, blogs o productos garantizan que el contenido se muestre solo en el sitio correspondiente.


2. Identidad y branding

Logo, favicon y enlaces sociales se configuran por sitio: los equipos de marketing actualizan estos elementos en procesos de rebranding. Además, la imagen por defecto para redes mejora la apariencia al compartir enlaces.


3. Idioma y SEO

language_ids y default_lang_id controlan los idiomas disponibles; auto_redirect_lang mejora la experiencia del visitante internacional. Una configuración correcta favorece el SEO y la implementación de hreflang.


4. Rendimiento y CDN

Al crecer el tráfico, activar el CDN (cdn_activated) y configurar cdn_url alivia el servidor al servir activos estáticos desde la red de distribución. Los cdn_filters permiten seleccionar qué rutas reescribir.


5. Cumplimiento y analítica

El banner de cookies (cookies_bar) ayuda en el cumplimiento normativo; google_analytics_key y custom_code_head permiten insertar seguimiento; robots_txt controla qué rastreadores acceden al sitio.

Cómo amplían los desarrolladores este modelo


Los desarrolladores amplían el modelo website con varios patrones. La herencia de modelos es la vía principal para introducir campos y lógica adicional.


Herencia de modelos

Utiliza _inherit = 'website' para ampliar el modelo base. Añade campos, redefine métodos o agrega restricciones. Mantener los cambios en un módulo separado facilita las actualizaciones.


Añadir campos

Declara nuevos campos en tu modelo heredado usando los tipos adecuados: Char, Many2one, Boolean, Integer, Text, Selection. Piensa en campos dependientes del sitio para gestionar lógica multiweb.


Extensiones en Python

Sobrescribe create, write o unlink para introducir lógica personalizada; llama a super() para conservar comportamiento base. Al crear sitios vía código, presta atención a user_id y company_id.


Odoo Studio

Odoo Studio permite añadir campos sin programar y es útil para cambios rápidos. Para lógica compleja o configuraciones gestionadas por API, los módulos personalizados ofrecen mayor trazabilidad y mantenibilidad.

Buenas prácticas


  • En producción, configura el dominio para cada sitio: mejora el enrutamiento y el SEO.
  • Asegúrate de que default_lang_id esté incluido en language_ids: Odoo valida esta relación al guardar cambios.
  • Usa custom_code_head y custom_code_footer para scripts de terceros, evitando tocar plantillas núcleo siempre que sea posible.
  • Para integraciones API, usa XML-RPC o JSON-RPC: el modelo website está expuesto y debes mapear correctamente website_id al sincronizar contenido.
  • Para campos personalizados, usa prefijos como x_ o el prefijo de tu módulo para evitar colisiones con futuras versiones de Odoo.

Errores frecuentes


  • Crear dominios duplicados. El campo domain tiene una restricción de unicidad y provocará errores si se repite.
  • Olvidar user_id al crear sitios por API. Es un campo obligatorio y su ausencia impide la creación.
  • Definir homepage_url sin la barra inicial. Odoo valida la ruta y lanzará un error si falta el prefijo '/'.
  • Activar cdn_activated sin una cdn_url válida. Los activos estáticos pueden dejar de cargarse correctamente.
  • Sobrescribir métodos centrales sin llamar a super(). Esto puede romper la compatibilidad con otros módulos o complicar actualizaciones futuras.

Conclusión


El modelo website es el núcleo de la configuración de sitios en Odoo: almacena dominio, idiomas, identidad y comportamiento. Comprender sus campos y cómo se interrelacionan otros modelos te permitirá configurar, personalizar e integrar sitios Odoo con menos errores.


Tanto si diseñas la estrategia funcional para varios sitios como si desarrollas módulos a medida, dominar el modelo website te ahorrará tiempo y reducirá riesgos.

¿Necesitas ayuda con tu implementación de Odoo?


Dasolo ayuda a empresas a implementar, personalizar y optimizar Odoo. Somos expertos en integraciones API y desarrollo sobre la arquitectura de datos de Odoo, incluyendo modelos como website.


Si necesitas apoyo con tu implementación de Odoo, configuración multiwebsite o integraciones, podemos ayudarte. Solicita una demo para hablar sobre tu proyecto.

Modelo Website: Cómo Funciona la Arquitectura de Configuración de Odoo
Dasolo 11 de marzo de 2026
Compartir esta publicación
Iniciar sesión para dejar un comentario