Cardolite Corporation is a mid-sized chemical manufacturer of products based on a natural renewable raw material called cashew nutshell liquid. We manufacturer our products in factories in China and India and ship our products globally to distribution locations and customers in the industrial coatings, adhesives, sealants, and elastomer markets.
Back in the 90’s, the company had a single American factory and used a very expensive AS/400-based ERP solution called Infinium. When I joined the company in 2004, one of my first tasks was to implement a new ERP system, and being very focused on cost, I chose a solution based on Great Plains combined with a manufacturing software designed for batch chemical manufacturers called Batchmaster. From almost the first moment I implemented this solution, I started looking around for alternatives. Our company is very internationally focused, and I quickly realized this solution was too US-centric (not to mention bug-ridden and technologically behind the times). For years, I passively looked for a better solution to meet our requirements until in 2016 I decided it was time to really make a change.
As an Apple fanboy, anti-Microsoft bigot, and former Linux software developer, my search for a new ERP system immediately excluded many solutions that were based on Windows clients, Microsoft SQL Server, and/or legacy solutions that have been dressed-up to look modern. I wanted a solution where it was easy to make changes specific to our needs and more importantly that I didn’t have to rely on someone else to make those changes. Long story short, I ended up focusing on OpenERP/Odoo.
I decided to do my first implementation on a low risk entity we have in Hong Kong. This entity just did some basic purchasing/invoicing/accounting and was not mission critical to our business. I first installed the open source version of Odoo v9.0 on my Macbook as a development environment, which was quite a relatively easy task for someone who likes the UNIX shell, and I began my hands-on evaluation.
I immediately just didn’t “get it” when it came to using Odoo. I initially focused on the accounting module, and I just wanted to get to the point where I could book some accounting entries and generate a set of accounting statements (Balance Sheet, Income, and Cash Flow). It seemed this basic functionality didn’t really exist - there weren’t even any accounting periods to configure to generate the statements. I thought maybe this was because I was using the open source edition, so I went ahead and bought a basic enterprise license. This didn’t get me much further, so I figured I needed someone with experience to ask my pointed questions and get more specific information than I could find online. This led me to Jordi Ballester Alomar from Eficent who made it very easy to just buy some of his consulting time.
Jordi was a lifesaver in guiding me through my Odoo adventure. After an hour or so phone call and some follow-up emails, I was able to fully understand the perpetual accounting system Odoo uses and get myself on a path towards my basic financial reports. I would recommend anyone getting started with Odoo to have a guru like Jordi to help answer questions instead of wasting time trying to figure everything out for yourself. In the end, our accounting implementation is a little non-standard, since our internal controllers and auditors are used to the idea of closing out an accounting year. So, I implemented a small account closing module to zero all the profit and loss accounts (defined by account tags) on a separate closing journal and post the balance to a specified retained earnings account. This module along with eventually another small module to implement a future accounting lock date in conjunction with the existing lock date was enough to simulate what our finance team was more comfortable with from past software. As also recommended by Jordi, I then used the OCA MIS Builder module to easily generate all the financial reports I needed.
After getting these general ledger and reporting issues settled, I was able to make a lot of progress in then importing our existing chart of accounts and even all the historical general ledger entries (via XML RPC in a small node.js script) from our old Great Plains system. Having this historical information was great help not only in allowing us to safely abandon the old Great Plains instance, but also gave me a lot of confidence in the Odoo accounting module. It’s very satisfying to see your trial balance, balance sheet, and income statements match down to the cent between two systems. Setting up partners, products, invoicing, and purchasing from this point was relatively straight forward. I was quite diligent to double check the accounting entries all along the way and in various test cases (like returns, credit notes, etc).
My final comment on this implementation is that I found the book “Odoo Development Essentials” by Daniel Reis an invaluable resource when it came to making customizations and writing my own modules. I still occasionally refer to this book today when dealing with parts of the system I may have not touched in the past. Daniel does an excellent job walking you through how the system actually works and how to change it. The ability to modify almost any aspect of the Odoo system without needing to change the base code is a true blessing when implementing an ERP system. Whereas many systems require you to adapt your business processes to what the vendor thinks is a best practice, Odoo is just the opposite and makes changes extremely easy.
In future blog posts I will describe how I built on the knowledge gained in this implementation to implement Odoo for our warehousing/distribution companies (in US and Europe) and eventually our manufacturing sites (in India and China).
Written by Tim Stonis
OCA Gold Sponsor