Odoo ERP implementation & customisation
Odoo, implemented so it still fits in three years.
In short
VenSoc implements and customises Odoo for mid-market manufacturers, distributors and professional services firms. Work covers current Odoo releases, Community and Enterprise: implementation, custom module development, data migration from legacy systems, third-party integration, and ongoing support. Engagements typically run eight to twenty weeks depending on module scope and data complexity.
- Odoo editions
- Community and Enterprise, current releases
- Partner status
- Odoo Partner
- Typical engagement
- 8–20 weeks to first go-live
- Deployment
- Odoo.sh, self-hosted, or on-premise
- Common modules
- Accounting, Inventory, Manufacturing, Sales, Purchase, Project
- Integration experience
- Shopify, SAP, WooCommerce, payment gateways, EDI
- Support model
- Retained team or per-incident, with named engineer
What this includes
- Odoo implementation
- Custom module development
- Odoo version migration
- Odoo Online to Odoo.sh migration
- Data migration from legacy ERP
- Odoo third-party integration
- Odoo support and maintenance
Why do most Odoo implementations become expensive to change?
Most Odoo implementations become expensive to change because customisation was written as direct modification of core models rather than as properly inherited modules. The system works on day one and then blocks every subsequent version upgrade, because the upgrade path assumes core behaviour that has been overwritten.
The failure is architectural, not technical. Odoo provides a clean inheritance model — `_inherit` for extending behaviour, `_inherits` for delegation, and view inheritance via XPath — precisely so that customisation survives an upgrade. Implementations that bypass it in favour of editing core modules trade a week of effort now for a migration that costs months later.
VenSoc builds every customisation as a separate module in a versioned repository, with migration scripts written at the same time as the feature rather than discovered during an upgrade. The test of a well-built Odoo system is not whether it works — it is whether the next version upgrade is a scheduled task or a project.
What does an Odoo implementation actually involve?
An Odoo implementation involves five distinct workstreams: process mapping, module configuration, custom development, data migration, and user adoption. The technical work is rarely the constraint. Data quality in the outgoing system and the willingness to change process are what determine the timeline.
- Process mapping
- Where standard Odoo behaviour differs from how the business currently operates, and which of those differences are worth paying to customise. Most are not.
- Configuration
- Chart of accounts, tax rules, warehouse and routing rules, product variants, pricelists, approval workflows. Configuration solves more than custom code does.
- Custom development
- Inherited modules for the genuinely specific: industry pricing logic, bespoke reporting, sector-specific compliance documents.
- Data migration
- Extraction, cleansing, mapping and reconciliation from the outgoing system, with a documented rollback point and a validated trial migration before cutover.
- Adoption
- Role-based training, written procedures, and a hypercare period after go-live. An ERP nobody uses correctly is an expensive database.
How does Odoo connect to Shopify, SAP and other systems?
Odoo connects to external systems through its XML-RPC and JSON-RPC APIs, or through custom REST endpoints exposed by a module. For high-volume synchronisation — commerce inventory, order flow, financial postings — VenSoc builds an intermediate queue rather than calling Odoo directly from the other system.
The reason is failure behaviour. A direct point-to-point integration between Shopify and Odoo works until one side is briefly unavailable, at which point orders are silently lost or double-written. An event queue with idempotent writes, explicit conflict resolution and a replayable log turns an outage into a delay rather than a data-integrity incident.
This integration layer is where the ERP and commerce sides of VenSoc meet. Very few agencies that build Shopify storefronts can also work inside the ERP the storefront has to reconcile against, and very few ERP consultancies write production commerce code.
When should an Odoo system move from Odoo Online to Odoo.sh?
An Odoo system should move from Odoo Online to Odoo.sh at the point custom code becomes necessary. Odoo Online is a managed service that does not accept custom modules; Odoo.sh is Odoo’s own platform-as-a-service, running the same database with a Git repository, staging branches and shell access behind it.
The migration itself is routine: the database and filestore move across, and the subscription follows. What changes is what the business is then able to ask for. On Odoo.sh a custom module ships by pushing a branch, a risky change is rehearsed on a staging build seeded from production data, and a bad deployment is a rollback rather than an incident. VenSoc has run this migration for two Australian direct-to-consumer brands, LaGaia UNEDITED and People4Ocean, and the sequencing matters — move the database first, then build on it.
What follows the migration is better run as a written growth plan than as a single project: which standard Odoo apps are installed in which order, what each app replaces, and where custom development is genuinely required rather than merely possible. VenSoc agrees that plan with the client before any of it is built, then works through it in increments the business can absorb. Switching on every app at once is how an ERP rollout gets abandoned halfway.
What does upgrading to Odoo 20 involve?
Upgrading to Odoo 20 involves three distinct pieces of work: an assessment of what the current system actually contains, the porting of every custom module to the new API, and the data migration itself. The assessment is the one that decides the cost, because a system built on inherited modules upgrades on a different timescale from one built by editing core.
- Upgrade assessment
- An inventory of installed apps, custom modules, studio customisations and third-party dependencies, each marked as portable, needs rewriting, or no longer required. The output is a written scope rather than a quotation against an unread system.
- Custom-module porting
- Each custom module moved to the new release: deprecated API calls replaced, view inheritance re-pointed where XPath targets have moved, and migration scripts written alongside the change rather than discovered during cutover.
- Rehearsal before cutover
- The upgrade is run first against a staging build seeded from production data, so that the data problems surface on a copy. A system already on Odoo.sh has this for free; one on Odoo Online does not, which is why the platform move usually comes first.
Common questions
- How much does an Odoo implementation cost?
- Cost is driven by module count, data migration complexity and the amount of genuine customisation required. A single-company implementation covering sales, purchase, inventory and accounting with clean source data typically sits at the lower end; multi-company, multi-currency, or manufacturing with bill-of-materials complexity sits materially higher. VenSoc scopes and prices after a discovery phase rather than quoting from a feature list, and the discovery output is yours whether or not you proceed.
- Should we use Odoo Community or Odoo Enterprise?
- Odoo Enterprise adds full accounting, studio, mobile applications, and official support, and is required for certain localisations. Odoo Community is sufficient where the module set is basic and internal technical capability exists. The decision usually turns on accounting requirements and on whether the organisation wants a vendor support contract. VenSoc works with both and has no commercial incentive toward either.
- Can you migrate us from an older Odoo version?
- Yes. Version migration involves upgrading the database schema, re-testing every custom module against the new API, and reconciling changes to core behaviour. The effort is proportional to how much prior customisation modified core models rather than inheriting from them. VenSoc audits the existing codebase first and reports the actual migration cost before any work is committed.
- What is the difference between Odoo Online, Odoo.sh and self-hosting?
- Odoo Online is Odoo’s fully managed service: fastest to start, and it does not run custom modules. Odoo.sh is Odoo’s platform-as-a-service — managed infrastructure plus a Git repository, staging branches and shell access — and is the lowest-friction way to run custom code. Self-hosting gives full control of the environment and full responsibility for it. Most mid-market businesses start on Odoo Online, move to Odoo.sh when custom development begins, and self-host only where data residency or an existing platform team makes it worthwhile.
- What happens after go-live?
- VenSoc offers a retained support arrangement with a named engineer and agreed response times, or per-incident support. Either way the code, the repository and the infrastructure remain yours, and the engagement can be ended without penalty or data hostage-taking. Exit provisions are written into the contract from the start.
