Hace poco me tocó mover un módulo de pestañas en la página de producto de Odoo 18. Lo que parecía una tarea simple terminó siendo una pequeña odisea. Desde el personalizador visual no se podía mover ese bloque, y al intentar modificar la vista XML directamente en el módulo, los cambios no surtieron efecto. Para colmo, al actualizar el addon, todo lo que había editado se perdió.
Investigando, encontré varias guías que explicaban cómo hacer este tipo de modificaciones. Pero la mayoría estaban pensadas para versiones anteriores de Odoo, y a partir de la 18 (Community y Enterprise), muchas cosas cambiaron. La documentación oficial no cubre estos casos en profundidad, y los foros están llenos de soluciones que ya no aplican. Frustrante, sí. Pero también una buena excusa para aprender algo nuevo.
Después de probar varias alternativas, decidí crear un módulo técnico que me permitiera hacer este tipo de ajustes sin depender del editor visual ni arriesgarme a perder cambios en futuras actualizaciones. Ya que estaba, pensé que también sería útil incluir soporte para CSS, JavaScript y vistas QWeb. Así nació Frontend CSS/JS Loader, un addon que comparto por si a alguien más le sirve.
No agrega funciones nuevas al sitio. Su propósito es darte una estructura limpia para manejar personalizaciones de frontend como parte del código fuente del proyecto. Todo se integra al sistema de compilación y caché de Odoo, sin romper nada ni dejar código suelto en el editor.
web.assets_frontend.frontend_css_js_loader/ ├─ __manifest__.py ├─ static/ │ └─ src/ │ ├─ css/style.css │ └─ js/website.js └─ views/ └─ custom_templates.xml (opcional)
En style.css escribís tus estilos personalizados. En website.js agregás scripts de comportamiento. Y si necesitás ajustar alguna vista QWeb, lo hacés en custom_templates.xml, sin tocar archivos del core.
style.css, website.js y custom_templates.xml.-u frontend_css_js_loader).👉 Si estás personalizando el frontend de Odoo 18, no uses el editor visual.
👉 Creá un addon con tus archivos CSS, JS y vistas QWeb.
👉 Integrá todo al flujo técnico del proyecto para mantener control, rendimiento y seguridad.
Este módulo nació de una necesidad concreta, y lo comparto por si a alguien más le sirve. Está disponible en GitHub, y si querés adaptarlo, mejorarlo o dejar comentarios, sos más que bienvenido.
🔗 GitHub: Frontend CSS/JS Loader for Odoo 18
📩 ¿Querés extender la estructura o integrarla a tu tema? Podemos ayudarte.
Soy Sasha Herscovich, y me dedico al diseño, desarrollo y soporte técnico de tiendas online en WordPress y Odoo. Trabajo todos los días resolviendo problemas reales, y cada tanto me gusta compartir lo que me toca enfrentar, por si a alguien más le sirve.
En este blog vas a encontrar ideas, soluciones y fragmentos de código que uso en proyectos reales. Algunas cosas están pensadas para quienes quieren autogestionar su sitio, otras para desarrolladores o diseñadores que buscan mejorar lo que hacen, ahorrar tiempo o simplemente entender cómo resolver algo puntual.
No vendo fórmulas mágicas ni soluciones universales. Solo comparto lo que me funciona, lo que pruebo y lo que aprendo en el camino. Si te sirve, bienvenido. Y si querés comentar, mejorar o adaptar algo, me encantaría que lo hagas.