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.