Skip to Content

Odoo 19 Exploration

Exploring Odoo 19: A Debuggable Dev Environment, a Storefront Theme and OWL Components
25 September 2026 by

Client: International Salon Supplies (evaluation)

Role: Developer

Period: Feb 2026 – Aug 2026

Status: Exploration / in progress

Tech stack: Odoo 19, Python, PostgreSQL, QWeb, OWL 2, JavaScript, SCSS, Docker, debugpy, VS Code

Hands-on evaluation of Odoo 19 as a future platform: a Docker development environment with breakpoint debugging from VS Code, a custom website theme for the ISS storefront with a 'Monthly Specials' snippet, and backend work covering models, constraints and OWL 2 components.

Why Odoo

The ISSWA 2.0 sync engine was designed with an ERP_MODE switch (REX | ODOO) from the start. Evaluating Odoo properly meant building real things in it, not just reading feature lists.

1. A dev environment you can actually debug

  • Docker Compose with a custom Odoo 19 image and PostgreSQL 15. Enterprise sources are mounted read-only, and custom addons are mounted for live editing.
  • debugpy starts with the server (without blocking for a client), with --dev=xml for live view reloading.
  • VS Code / Cursor launch configurations attach the debugger, with path mappings for community, enterprise and custom addons, and tasks that start and stop the containers automatically.
  • An Odoo language-server config gives proper autocomplete across the framework.

Being able to set a breakpoint inside an ORM method changes how quickly you learn a framework this size.

2. The ISS storefront theme

A custom theme_iss module built on Odoo's website and e-commerce apps:

  • A replacement double header: an announcement bar (price-match message), logo, shop search, account and cart.
  • A Monthly Specials snippet: category "chip" tabs switch a responsive 2/3/4/5-column product grid, populated by QWeb searches. The product cards reuse Odoo's native e-commerce classes, because the stock product-item template depends on data only the /shop controller provides.
  • A mega carousel, a product carousel and column blocks, plus custom SCSS.

3. Backend fundamentals

  • A complete real-estate module following Odoo's official tutorial, using current Odoo 19 idioms: the new models.Constraint syntax, computed/inverse/related fields, @api.ondelete, onchange warnings, a state machine, mail tracking, security groups and access rules.
  • OWL 2 experiments on the sales order form: custom widgets injected through XPath view inheritance, parent/child components using useSubEnv and useState, and a custom service registered with a dependency on notifications.

Takeaway

Odoo rewards investment in tooling. Once debugging and live reload were in place, building a storefront theme and custom backend behaviour went quickly. The evaluation continues.