Introdução
No Odoo, os modelos definem como os dados são estruturados e armazenados na base de dados. Cada pedaço de dados empresariais com o qual você trabalha vive em um modelo.
Compreender os modelos do Odoo é essencial tanto para desenvolvedores quanto para consultores funcionais. Os modelos são a base da arquitetura de dados do Odoo. Eles definem os campos do Odoo, relacionamentos e lógica de negócios.
Este artigo foca no modelo de website. Ele alimenta a configuração do site no Odoo. Quer você esteja construindo configurações de múltiplos sites, personalizando a marca ou integrando com sistemas externos, você trabalhará com este modelo.
O que é o modelo de website
O modelo de website representa uma configuração de website no Odoo. Este modelo no Odoo armazena tudo o que define como um site se parece e se comporta: domínio, idiomas, branding, links sociais e estrutura de menu.
Faz parte do aplicativo Website e é utilizado por todos os websites Odoo. Em configurações de múltiplos websites, você tem múltiplos registros de website. Cada um pode ter seu próprio domínio, empresa, idiomas e tema.
Outros modelos no Odoo referenciam o modelo de website através do campo website_id. Muitos modelos Odoo têm um campo website_id para restringir o conteúdo a um site específico. É assim que a herança de modelos Odoo e o modelo de API no Odoo trabalham juntos.
Campos-chave no modelo
Aqui estão os campos mais importantes do Odoo no modelo de website. Compreender estes ajudará você a trabalhar de forma eficaz com a configuração do site.
1. nome
Tipo: Char. Obrigatório. Este campo armazena o nome do website. Ele é exibido no seletor do backend e nas telas de configuração. É o identificador principal para o site.
2. sequência
Tipo: Inteiro. Padrão 10. Controla a ordem de exibição quando múltiplos websites existem. Valores mais baixos aparecem primeiro.
3. domínio
Tipo: Char. O domínio do website (por exemplo, https://www.mydomain.com). O Odoo adiciona https se estiver faltando. Deve ser único. Usado para roteamento e SEO.
4. company_id
Tipo: Many2one (res.company). Obrigatório. Liga o website a uma empresa Odoo. Em configurações de múltiplas empresas, cada website mostra apenas dados relacionados à empresa.
5. language_ids
Tipo: Many2many (res.lang). As línguas disponíveis neste website. Os visitantes podem alternar entre elas. Por padrão, todas as línguas instaladas.
6. language_count
Tipo: Inteiro. Computado. O número de línguas. Útil para exibição e filtragem.
7. default_lang_id
Tipo: Many2one (res.lang). Obrigatório. A língua padrão quando os visitantes chegam pela primeira vez. Deve estar em language_ids.
8. auto_redirect_lang
Tipo: Booleano. Padrão Verdadeiro. Quando ativado, os visitantes são redirecionados para a língua do navegador se estiver disponível.
9. cookies_bar
Tipo: Booleano. Quando Verdadeiro, uma barra de cookies é exibida. Útil para conformidade com o GDPR. Odoo pode criar uma página de política de cookies automaticamente.
10. logo
Tipo: Binário. O logotipo do website. Exibido no cabeçalho e em outros locais. Por padrão, exibe o logotipo do Odoo se não estiver definido.
11. favicon
Tipo: Binário. O favicon mostrado na aba do navegador. Odoo redimensiona-o para 256x256.
12. social_twitter
Tipo: Char. URL da conta do Twitter/X. Padrão da empresa. Usado no rodapé e compartilhamento social.
13. social_facebook
Tipo: Char. URL da conta do Facebook. Mesmo padrão que os outros campos sociais.
14. social_linkedin
Tipo: Char. URL da conta do LinkedIn.
15. social_instagram
Tipo: Char. URL da conta do Instagram.
16. social_youtube
Tipo: Char. URL da conta do YouTube.
17. social_github
Tipo: Char. URL da conta do GitHub.
18. social_tiktok
Tipo: Char. URL da conta do TikTok.
19. social_default_image
Tipo: Binário. Imagem padrão para compartilhamento social. Substitui o logotipo quando definido. Usado para Open Graph e cartões do Twitter.
20. google_analytics_key
Tipo: Char. Chave do Google Analytics. Para rastreamento. Odoo injeta o script quando configurado.
21. google_maps_api_key
Tipo: Char. Chave da API do Google Maps. Para mapas e recursos de localização.
22. user_id
Tipo: Many2one (res.users). Obrigatório. O usuário público para este site. Usado para acesso ao portal e visitantes anônimos. Padrões da empresa.
23. cdn_activated
Tipo: Booleano. Quando verdadeiro, os ativos estáticos são servidos a partir de um CDN. Melhora o desempenho.
24. cdn_url
Tipo: Char. A URL base do CDN. Usada quando cdn_activated é verdadeiro.
25. cdn_filters
Tipo: Texto. Padrões Regex para URLs a serem reescritas. Padrões padrão para caminhos estáticos.
26. menu_id
Tipo: Many2one (website.menu). Computado. O menu principal. Aponta para o item de menu raiz deste site.
27. homepage_url
Tipo: Char. O caminho da página inicial (por exemplo, /contactus ou /shop). Deve começar com uma barra.
28. custom_code_head
Tipo: Html. Código personalizado injetado no cabeçalho. Para análises, scripts ou meta tags.
29. custom_code_footer
Tipo: Html. Código personalizado injetado no rodapé. Útil para widgets de chat ou rastreamento.
30. robots_txt
Tipo: Html. Conteúdo personalizado do robots.txt. Para SEO e controle de rastreadores.
31. theme_id
Tipo: Many2one (ir.module.module). O tema instalado.
32. auth_signup_uninvited
Tipo: Seleção. b2b (Por convite) ou b2c (Inscrição gratuita). Controla se os visitantes podem criar contas sem um convite.
33. create_date
Tipo: Datetime. Quando o registro foi criado. Gerido automaticamente pelo Odoo.
34. write_date
Tipo: Datetime. Quando o registro foi modificado pela última vez. Também gerido automaticamente.
Como este modelo é utilizado em fluxos de trabalho empresariais
1. Multi-Site e Localização
Empresas com várias marcas ou regiões criam um registro de site por site. Cada um tem seu próprio domínio, idiomas e conteúdo. O campo website_id em páginas, blogs e produtos delimita os dados para o site correto.
2. Branding e Identidade
O logotipo, favicon e links sociais são configurados por site. As equipes de marketing atualizam isso ao rebrandear. O campo social_default_image melhora a aparência dos links quando compartilhados.
3. Idioma e SEO
language_ids e default_lang_id controlam quais idiomas estão disponíveis. auto_redirect_lang melhora a experiência do usuário para visitantes internacionais. A configuração adequada ajuda com SEO e hreflang.
4. Desempenho e CDN
Quando o tráfego cresce, cdn_activated e cdn_url descarregam ativos estáticos para uma CDN. cdn_filters definem quais URLs são reescritas.
5. Conformidade e Análise
cookies_bar ativa o banner de consentimento de cookies. google_analytics_key e custom_code_head injetam rastreamento. robots_txt controla o acesso dos crawlers.
Como os desenvolvedores estendem este modelo
Os desenvolvedores estendem o modelo de site usando vários padrões. A herança de modelo do Odoo é o principal mecanismo.
Herança de Modelo
Use _inherit = 'website' para estender o modelo. Adicione novos campos Odoo, sobreponha métodos ou adicione restrições. O modelo herdado no Odoo mantém suas alterações em um módulo separado para atualizações fáceis.
Adicionando Campos
Defina novos campos Odoo em seu modelo herdado. Use o tipo de campo correto: Char, Many2one, Boolean, Integer, Text, Selection. Considere campos dependentes do site para lógica de múltiplos sites.
Extensões Python
Sobreponha create, write ou unlink para adicionar lógica. Use super() para chamar o original. Tenha cuidado com user_id e company_id ao criar sites programaticamente.
Odoo Studio
O Odoo Studio permite que você adicione campos sem código. Bom para personalizações rápidas. Para lógica complexa ou configuração orientada a API, módulos personalizados são mais fáceis de manter.
Melhores práticas
- Defina o domínio para cada site em produção. Isso ajuda no roteamento e SEO.
- Mantenha default_lang_id dentro de language_ids. O Odoo valida isso na mudança.
- Use custom_code_head e custom_code_footer para scripts de terceiros. Evite modificar templates principais.
- Ao construir integrações de API, use a API XML-RPC ou JSON-RPC. O modelo de site está totalmente exposto. Mapeie website_id corretamente ao sincronizar conteúdo.
- Para campos personalizados, use o prefixo
x_ou um prefixo de módulo para evitar conflitos com versões futuras do Odoo.
Erros comuns
- Criando domínios duplicados. O campo de domínio tem uma restrição de unicidade.
- Esquecendo de definir user_id ao criar websites via API. É obrigatório.
- Definindo homepage_url sem uma barra inicial. Odoo valida e gera um erro.
- Ativando cdn_activated sem um cdn_url válido. Os ativos podem falhar ao carregar.
- Substituindo métodos principais sem chamar super(). Isso pode quebrar outros módulos ou futuras atualizações.
Conclusão
O modelo de website é central para a configuração do site no Odoo. Ele armazena domínio, idiomas, branding e comportamento. Compreender seus campos no Odoo e como outros modelos o referenciam ajudará você a configurar, personalizar e integrar websites Odoo de forma eficaz.
Seja você um consultor funcional mapeando necessidades de múltiplos sites ou um desenvolvedor construindo módulos personalizados, um sólido entendimento do modelo de website economizará tempo e evitará erros.
Precisa de ajuda com a sua implementação do Odoo?
A Dasolo ajuda empresas a implementar, personalizar e otimizar Odoo. Nós nos especializamos em integrações de API e desenvolvimento Odoo. Nossa equipe tem profunda experiência com a arquitetura de dados do Odoo e modelos como o website.
Se você precisar de ajuda com sua implementação do Odoo, configuração de múltiplos websites ou integrações, estamos aqui para ajudar. Agende uma demonstração para discutir seu projeto.