Notes from
the bench
How-tos, opinions and the occasional post-mortem on building with ERPNext, Frappe and Odoo. No fluff, lots of code.
OdooERPNextGuidesCustom ERP Glossary of ERPNext and Odoo terms
Latest · ERPNext
Connecting biometric attendance devices to ERPNext
Sync ZKTeco-style biometric devices with ERPNext: Employee Checkin, Shift Type auto attendance, Frappe's sync tool, timezones, duplicates and offline devices.
· 7 min read
Odoo
- _inherit vs _inherits in Odoo, explained with examples _inherit extends or copies a model, _inherits links to a parent record by delegation. Examples for all three patterns, view xpath inheritance and gotchas. 6 min read →
- Odoo Studio vs a custom module: which should you use? When Odoo Studio is enough, when you need a real addon, and how Studio's data-based customizations affect version control, upgrades and mixing the two. 6 min read →
- How to create a custom module in Odoo 19 Scaffold an Odoo 19 addon, write the manifest, model, access CSV, list and form views and menu, then install with -i and upgrade with -u. 6 min read →
ERPNext
- Server Scripts vs a custom app in ERPNext: when to use which Server Scripts are quick, sandboxed and untestable. A custom Frappe app takes longer to set up. Here's where we draw the line, with code for both. 6 min read →
- How much does ERPNext customization cost? What actually drives the cost of ERPNext customization, fixed price vs time and materials, and the hidden costs of upgrades, testing and data cleanup. 7 min read →
- Upgrading ERPNext without breaking your customizations What breaks when you upgrade ERPNext a major version: core edits, Server Scripts, custom fields and patches. Plus a staging routine and testing checklist. 6 min read →
- How to create a custom DocType in ERPNext Step by step: developer mode, bench new-app, fields, naming, permissions, controller methods and fixtures, plus the DocType mistakes we see most. 7 min read →