Report
Growdoo Custom Analysis

Custom Development Migration Audit

ACME Customer

Source version(s) 18.0
Target version 19.0
Addons audited 8
Total project effort 52h 40h technical + 30% PM & risk · see §1.5

0 · About this report

Growdoo has audited eight custom and third-party Odoo addons currently running on ACME Customer's Odoo 18.0 instance, totalling approximately 2,800 lines of code. This report estimates the effort required to migrate these addons to Odoo 19.0, including database schema upgrades. All hour estimates follow a standard methodology (TRIVIAL=0.5h, SIMPLE=1.5h, MODERATE=4h, COMPLEX=8h, MAJOR=16h) multiplied by version-gap risk and code-review overhead; actual effort will vary based on test coverage and deployment readiness. Sections 1–3 are written for business stakeholders and summarize cost, risk, and timeline; Sections 4–6 are for your technical team and detail code patterns, API changes, and migration tactics.

1 · Executive summary

ACME Customer is preparing to upgrade from Odoo 18.0 to 19.0. This audit covers eight addons and forecasts a total migration effort of 40 hours, comprising 32 hours of code rework and 8 hours for database upgrade.

Engineering effort
40h
32h addons + 8h database upgrade · technical baseline
Addons audited
8
Source 18.0 → 19.0
Buyable
5
5 from apps.odoo.com · 0 from OCA
Manual migration
3
Custom code without market alternative

By tier

MAJOR 1
COMPLEX 3
SIMPLE 2
TRIVIAL 2

By risk

HIGH 1
LOW 7

By strategy

BUY_UPGRADE 5
MANUAL 3

One addon carries high risk; the remaining seven are low risk.

Five addons should be sourced from apps.odoo.com or OCA; three require full custom migration.

Code distribution

Effective lines of code per language across all 8 addons (blank lines and comment-only lines excluded). Total: 11,368 LOC.

Python 6,695 (59%)
Backend XML 3,175 (28%)
Report / QWeb 254 (2%)
JavaScript / OWL 1,153 (10%)
SCSS / CSS 91 (1%)

Master table — sorted by risk, then estimated hours

#AddonSource StrategyTierRisk Est. hours
1 fanatics_bom_excel_report 1.0 Manual migration TRIVIAL 🔴 HIGH 1.5h
2 fanatics_x_acme 18.0 Manual migration COMPLEX 🟢 LOW 21h
3 printnode_base 18.0 Buy / Upgrade MAJOR 🟢 LOW 3h
4 zpl_label_designer 18.0 Buy / Upgrade COMPLEX 🟢 LOW 3h
5 tree_view_advanced_filter 18.0 Buy / Upgrade COMPLEX 🟢 LOW 1.5h
6 sale_order_line_date 18.0 Buy / Upgrade SIMPLE 🟢 LOW 1h
7 fanatics_disable_product_translation 18.0 Manual migration TRIVIAL 🟢 LOW 0.5h
8 zpl_label_designer_printnode 18.0 Buy / Upgrade SIMPLE 🟢 LOW 0.5h

1.5 · Project sizing

The total above (40h) is the bottom-up technical estimate. In practice, delivering an Odoo migration also requires project management, coordination, and a risk reserve for unforeseen complications — which together typically add about 30% on top.

Technical effort (from analysis) 40h
Project management & coordination (+20%) +8h
Risk reserve · unforeseen (+10%) +4h
Total project effort 52h

Use the Total project effort for budgeting and contract sizing. The technical number on the cover stays useful as the engineering baseline (defensible per-addon, comparable across audits).

2 · High-priority items

2 addons require attention from project leadership before migration begins.

🔴 Fanatics BOM Excel Export fanatics_bom_excel_report

Manual migration · TRIVIAL · 1.5h
What it does
Exports bill-of-materials data to a formatted Excel file, allowing users to download and share production or procurement information outside the system.
Why it is high risk
This addon is custom-built and not available on the Odoo marketplace. The codebase is small (97 lines), but the detector analysis flags potential compatibility issues with the target Odoo version that require hands-on review and testing.
Recommended approach
Perform a manual code review against the target Odoo API, verify Excel generation libraries are compatible, and test export output in staging.
If skipped
Users will lose the ability to export bill-of-materials data to Excel, disrupting procurement workflows and external reporting.

🟢 Fanatics ACME Customer Customization fanatics_x_acme

Manual migration · COMPLEX · 21h
What it does
Implements specialized customizations for ACME Customer operations, including custom fields, workflows, and business logic tailored to this customer's processes.
Why it is low risk
The addon contains 3 instances of deprecated move-line handling patterns that conflict with Odoo's current accounting API. While the module is otherwise well-structured (1539 lines), these patterns must be individually replaced during migration.
Recommended approach
Map each deprecated move-line pattern to the current Odoo API equivalent, run regression tests on all affected accounting workflows, and validate against historical transaction records.
If skipped
Accounting entries and electronic operations processing will fail or produce incorrect results, making it impossible to reconcile transactions and fulfill compliance reporting requirements.

3 · Strategic recommendations

3.1 What to buy, not build

Five of your eight addons are available on the Odoo marketplace or OCA, representing 9 hours of implementation work that can be purchased rather than built. Buying these reduces custom code surface area, lowers long-term maintenance risk, and ensures you inherit vendor updates. Purchasing removes the need for your team to debug or refactor printnode, label designer, and filter modules during your migration.

3.2 What to drop

No addons in this scan are clearly replaced by Odoo native features. Validate during the technical pass whether the product translation lock (fanatics_disable_product_translation) can be achieved through Odoo's standard language settings, and whether the BOM Excel export can leverage native reporting.

3.3 What to consolidate

The printnode_base and zpl_label_designer_printnode modules form a coupled pair—ensure both are migrated together and tested as a unit to avoid print job failures. No other consolidation opportunities are evident from the scan.

3.4 Suggested migration phases

PhaseWeeksGoalContentRisk
Phase 1 — Foundation & Vendor Addons 2-3 Migrate the database schema, deploy all five marketplace addons, and validate basic print and filtering workflows. Odoo Direct Print PRO, Sale Order Line Date, Tree View Advanced Search, ZPL Label Designer, and the printnode bridge module. Low
Phase 2 — Custom Logic & ACME Customer Integration 3-4 Migrate and test the three custom internal modules, paying close attention to deprecation refactoring in the ACME Customer customization. fanatics_bom_excel_report, fanatics_disable_product_translation, and fanatics_x_acme (which contains legacy ORM patterns and requires the most developer time). Medium
Phase 3 — UAT & Parallel Run 2 Run old and new systems in parallel, verify print jobs route correctly, confirm BOM exports match historical formats, and sign off on all custom workflows. All eight addons under full user scenarios with production-like data volumes. Medium

3.5 Testing strategy

Set up a parallel run environment where both your old Odoo instance and the migrated v18 system process print jobs and BOM exports simultaneously for 1–2 weeks. Assign your warehouse and operations team to UAT on the new system while your finance team validates the ACME Customer integration logic. Automate regression tests for the label designer, print queue, and filter features using the Odoo test framework; run these daily during Phase 2 and Phase 3. Have your vendor or OCA maintainer review the printnode and label designer configurations before going live to catch any environment-specific issues early.

4 · Technical deep dive

Per addon: source version, tier, strategy, key risk patterns and estimated hours. The language-mix totals across all addons are shown in the executive summary above. Risk patterns column lists the methodology detectors that triggered, with their occurrence counts.

Utilities 7

Utilities spans seven addons with mixed migration strategies. Fanatics - Disable Product Name Translation and Fanatics BOM Excel Report are both trivial custom modules requiring manual migration; the BOM export uses a direct Python/XML approach with no framework dependencies. Fanatics ACME Customer Customization is a COMPLEX custom module (1,539 LOC) with 3 deprecated move-line ORM patterns that must be refactored to the new Odoo 19 API. Odoo Direct Print PRO (printnode_base) is a MAJOR tier addon (7,492 LOC, OWL 2 frontend, 8 sudo() patterns, 7 deprecated move-lines) available on the marketplace for version 19.0 — the vendor upgrade is the lowest-friction path and includes review+deployment. Tree View Advanced Search (683 LOC JavaScript, OWL 2) and ZPL Label Designer (1,184 LOC, 5 lifecycle hooks) are both COMPLEX but available for 19.0 via marketplace purchase; they require validation of OWL component lifecycle compatibility but carry LOW risk overall. ZPL Label Designer + Odoo Direct Print Bridge is a thin integration module (127 LOC) with no detectors and can be migrated in parallel with its dependencies.

AddonSourceTier StrategyJS LOC RiskRisk patterns Est. hours
fanatics_bom_excel_report 1.0 TRIVIAL Manual migration NONE 97 🔴 HIGH 1.5h
fanatics_disable_product_translation 18.0 TRIVIAL Manual migration NONE 27 🟢 LOW 0.5h
fanatics_x_acme 18.0 COMPLEX Manual migration NONE 1,539 🟢 LOW Deprecated_Move_Lines=3 21h
printnode_base 18.0 MAJOR Buy / Upgrade OWL_2 7,492 🟢 LOW Sudo_Patterns=8, Deprecated_Move_Lines=7 3h
tree_view_advanced_filter 18.0 COMPLEX Buy / Upgrade OWL_2 793 🟢 LOW 1.5h
zpl_label_designer 18.0 COMPLEX Buy / Upgrade OWL_2 1,184 🟢 LOW Lifecycle_Hooks=5 3h
zpl_label_designer_printnode 18.0 SIMPLE Buy / Upgrade NONE 127 🟢 LOW 0.5h

Sales 1

Sale Order Line Date adds a commitment date field to individual order lines. The addon is available on the Odoo marketplace for version 18.0; a version for 19.0 should be confirmed with the vendor before purchase, as the market status shows availability only for the previous version. Migration is straightforward (SIMPLE tier, LOW risk) and can be completed via BUY_UPGRADE strategy.

AddonSourceTier StrategyJS LOC RiskRisk patterns Est. hours
sale_order_line_date 18.0 SIMPLE Buy / Upgrade NONE 109 🟢 LOW 1h

5 · Batch migration opportunities

Sets of addons that share patterns and can be fixed in bulk to save engineering hours.

6 · Methodology & assumptions

Methodology version v3.0 · Audit produced by Growdoo (Radical Fanatics).

Appendix A · Module catalogue

Plain-language description of every audited module and the recommended migration action. Modules are grouped by functional area. The recommendation reflects the strategy chosen by the analyzer based on market availability, code complexity and risk patterns.

Sales 1

Module What it does Recommendation Est. hours
Sale Order Line Date
sale_order_line_date
Adds a commitment date field to each line item in sales orders for delivery tracking. Replace via apps.odoo.com 1h

Utilities 7

Module What it does Recommendation Est. hours
Fanatics - Disable Product Name Translation
fanatics_disable_product_translation
Prevents product names from being translated, keeping a single master name across all languages. Keep — migrate manually 0.5h
Fanatics ACME Customer Customization
fanatics_x_acme
Implements specialized customizations for ACME Customer operations, including custom fields, workflows, and business logic tailored to this customer's processes. Keep — migrate manually 21h
Fanatics BOM Excel Export
fanatics_bom_excel_report
Exports bill-of-materials data to a formatted Excel file, allowing users to download and share production or procurement information outside the system. Keep — migrate manually 1.5h
Odoo Direct Print PRO
printnode_base
Sends reports and shipping labels directly to network, Wi-Fi, or Bluetooth printers without creating PDFs. Replace via apps.odoo.com 3h
Tree View Advanced Search / Direct Filter in List
tree_view_advanced_filter
Enables users to filter and search records directly within tree and list view displays. Replace via apps.odoo.com 1.5h
ZPL Label Designer
zpl_label_designer
Provides a visual interface to design and publish ZPL-formatted shipping and product labels. Replace via apps.odoo.com 3h
ZPL Label Designer + Odoo Direct Print Bridge
zpl_label_designer_printnode
Connects the ZPL Label Designer to the Direct Print system for end-to-end label printing. Replace via apps.odoo.com 0.5h