Just got this recommended to me by a friend, seems like a really great platform for smaller businesses. Has anyone heard of them before, or tried them out?
I’ve been developing on odoo for a couple of years for a project at work. The docs are horrible, especially for anything on the JS side of the house. Making relatively minor UI changes that are trivial with other frameworks become days long exercises in frustration. I can’t tell you how many unintelligible YouTube videos from Indian programming shops I had to watch just to do a simple task like add a modal dialogue.
I get the feeling they started the project in 2004 and decided to build a web app. While the rest of the Python and JS ecosystem matured in other directions, odoo just kept doing whatever the fuck they wanted. The whole thing is a nightmare of esoteric XML dialects that are somehow mapped by the engine into a database transaction when the thing boots up.
When I work on it, I tell my wife I am doing the “odoo doodoo”.
Venting again. The thing that pisses me off the most is how odoo refuses to adopt common practice and instead implements their own stuff:
-
Need an ORM? Well don’t expect odoo to use a battle tested and widely used library. Odoo implements its own, but good luck figuring out how to optimize a query.
-
Want a framework like React? Nope, we’ve got Owl — but only sometimes.
-
Want templates? Odoo uses its own XML dialect. That’s not really documented. Oh and XML is also the configuration language. Oh and about 40% of your codebase will be xml files with magic strings that at runtime magically call a python function. Because fuck you.
Oh and about 40% of your codebase will be xml files with magic strings that at runtime magically call a python function. Because fuck you.
Hahaha… This is pretty much spot on about the whole back end
Daaaamn. I’m out. Thank you for this
Welp, defo good insights you’re sharing - thanks 👍
I hate that kind of not-invented-here syndrome. The project I am helping develop is partly open source and has its own server-side framework, its own ORM and its own typescript based framework. Community-wise we are dead in the water, because nobody wants to adopt to the own frameworks.
Incidentially, I used OpenERP5, which is an early predecessor of Odoo. I hated the interface with every fiber of my being. Due to some custom development, we were not able to upgrade to more modern versions.
-
We use it at work. It’s fine I guess. I have no great love for web-based anything, but this one is far from atrocious.
It’s Python and we had a couple of add-ons coded for it that didn’t cost us an arm and a leg.
Our company is around 55 employees.
Glad to hear, thanks for sharing. Hopefully they have plans for (non-electron based) desktop apps in the future 🙌
Core Odoo pros: Odoo is great at what it does. It’s modular, and let’s you consolidate a lot of business software into one place where it can all talk to itself. Generally, this makes accounting teams very happy, since invoicing, inventory (esp GAAP), and expenses are all generated mostly automatically. The UI has really improved recently, and performance scales well. Odoo has some good functional tutorials on their website that guide you through using the features.
Core Odoo cons: If your business has some need outside of what Odoo expects you to use it for, good luck. Unless it’s a minor thing, you’re probably better off changing your SOPs to fit Odoo rather than trying to change Odoo to work for you. Of course, you don’t know whether it’s a minor thing unless you have someone with Odoo familiarity – but we’ll get to that.
Custom Odoo pros: Almost all of the business logic is written in Python with a fully extensible framework. It’s designed to be modified, and it’s pretty friendly. The docs aren’t great, but the community is. The Odoo Community Association (OCA) maintains a large library of OS extensions, divided by business area. Even if you don’t find what you need, it’s a great place to learn by example on creating custom modules. Simple UI changes are mainly handled by XML, which again is fairly easy to pick up by studying examples.
Custom Odoo cons: There’s a learning curve, as with anything. Something you thought should be a simple change might turn out to be a pit of vipers. If you’re trying to do web app changes, I will pray for you. Odoo has started to roll out OWL, a JS framework based on React and Node.js, but documentation on JS in Odoo is basically non-existent, and Odoo devs avoid JS like the plague.
If your company is looking to change, Odoo has implementation partners, who will tailor Odoo to your needs. Partner prices vary widely, and you get what you pay for. It really depends on your company’s size and budget. You still pay licensing, etc. through Odoo itself.
Avoid odoo.sh (Odoo’s SaaS option) at all costs, I have never seen it go well. Avoid Studio (allows UI changes without coding) at all costs, it turns into spaghetti every time.
Agree with another commenter that documentation is an issue. If you’re a developer, it’s not too bad. It uses a kind of homebrew model/view/template python backend that might baffle you for a while.
If you don’t need to modify it or integrate it too much with your bank, e-commerce sites, cash registers, etc then it pretty much works out of the box.
Odoo came from a fully open sourced project years ago and is getting more and more closed and expensive over time as they go upmarket. If you really want to own your data I’m not sure that’s a good direction.
There is a fork called Flectra that is usually about a version behind Odoo but reintegrates a lot of the paid features of Odoo for free, but its documentation and community is even smaller.
It’s kinda open-core and installing the OCA extensions is a bit of a PITA, but overall not a bad ERP. Probably better than the alternatives, but far from perfect.
Almost all of the OCA extensions are now installable with pip, just make sure you’re locking down versioning well.