Back to Blog

March 27, 2026

Odoo 19.1 Brings Cancellation Acknowledgements to Mexico and Rewrites Its Website Theming Toolkit

Two very different corners of the Odoo ecosystem got significant attention this week: Mexico's fiscal compliance tooling gains three new capabilities for 19.1, and the website theming documentation has been rebuilt from scratch with modern design patterns.

Mexico’s tax authority doesn’t care about your product roadmap. When the SAT changes requirements, you either comply or you stop issuing invoices. That’s the reality driving the latest round of Odoo localization updates — and this batch addresses three areas where businesses were either working around limitations or handling things manually.

On the other end of the spectrum, Odoo’s website theming documentation has been gutted and rebuilt. New design tokens, updated coding standards, and a restructured tutorial that reflects how modern theme development actually works.

Mexico: CFDI Cancellation Acknowledgements

When you cancel a CFDI in Odoo, the system sends a cancellation request to your PAC (Authorized Certification Provider), which forwards it to the SAT. But until now, there was no clean way to capture and print the SAT’s response to that cancellation within Odoo itself.

Odoo 19.1 adds a cancellation acknowledgement workflow. After cancelling a CFDI, you can now print the PAC’s cancellation response and update the SAT status directly in the invoice PDF. This creates an auditable paper trail that accountants and fiscal auditors can follow without needing to log into external portals.

There’s an important nuance here: the acknowledgement confirms that the cancellation request was successfully received, but it does not guarantee the cancellation is complete. The SAT can still reject or delay the process. The documentation makes this distinction explicit, which matters for businesses that need to track the difference between “requested” and “confirmed.”

External Trade Invoicing Now Handles Services

If you export goods from Mexico, you’re already familiar with Odoo’s external trade complement for CFDI invoices. But what happens when a shipment includes both physical merchandise and services? Until now, that was a grey area.

The new documentation spells out the process: navigate to the product’s UNSPSC configuration and verify that it either uses the E48 service unit category or has customs code 99. The service price gets set to zero for customs declaration purposes, keeping the fiscal math clean while still including the service line on the invoice.

This is the kind of edge case that trips up businesses expanding into cross-border trade. Having it documented as a supported workflow — rather than a hack — removes a significant compliance risk.

Global Invoice Periodicity Gets Proper Rules

Global invoices in Mexico consolidate multiple transactions into a single CFDI for a given period. The tricky part is mapping calendar months to the bimonthly declaration periods that the SAT expects.

Odoo 19.1 now documents the period mapping explicitly. November through December maps to period 18, for example, and the system translates selected dates into the correct XML declaration values automatically. For businesses that issue hundreds of POS transactions per month and consolidate them into global invoices, getting this wrong means filing corrections — or worse, penalties.

Website Theming Gets a Ground-Up Rewrite

Shifting from fiscal compliance to frontend development: Odoo’s website theming documentation has been substantially rewritten across two chapters — Theming and Media.

New Module Structure

The theme module layout now includes two new directories: image_shapes/ for custom image clipping masks and website_builder/for website builder configuration options. This reflects the growing complexity of what Odoo themes can control — it’s no longer just colors and fonts.

Design Tokens for the Shop

Two new SCSS variables give theme developers control over the e-commerce grid: shop_gap adjusts spacing between product cards, and shop_opt_products_design_classes controls the visual treatment of product card layouts. These are the kind of fine-grained design tokens that let a theme feel custom without overriding core templates.

Updated JavaScript Standards

The coding guidelines now mandate PascalCase for JavaScript class names and consistent double-quote usage for strings. These aren’t just style preferences — they align with Odoo’s OWL framework conventions and make theme JavaScript more consistent with the core codebase.

Refreshed Visual Assets

The theming chapter includes a new font-styles.png screenshot demonstrating text styling options, replaces an outdated header image, and updates sizing references. Small changes, but they matter when developers are following a visual guide to build their first custom theme.

Two Updates, One Pattern

Mexico localization and website theming couldn’t be more different in subject matter. But both updates follow the same pattern: taking areas where users were likely stumbling — cancellation tracking, service exports, period mapping, theme structure — and documenting them as proper, supported workflows.

For businesses operating in Mexico, the 19.1 localization changes reduce the gap between what the SAT requires and what Odoo provides out of the box. For developers building Odoo websites, the theming rewrite provides a modern foundation that matches how the platform actually works today.

Teams using intelligent ERP tools alongside these modules benefit from both: cleaner fiscal data feeds better into AI-powered forecasting, and well-structured themes make AI-generated content look right when it hits the storefront.

Ready to experience Odoo AI?

Join hundreds of teams using DearERP to customize Odoo in minutes, not weeks. Start free today — no credit card required.