info@pccvdi.com Pashim Vihar, New Delhi

Odoo ERP Implementation: A Technical Guide for Manufacturing and Retail

Odoo is the most popular open-source ERP platform, with over 12 million users worldwide. Its modular architecture lets organizations start with basic CRM and accounting, then expand to manufacturing, inventory, HR, e-commerce, and more. This guide covers the technical aspects of implementing Odoo for manufacturing and retail businesses.

Why Odoo for SMBs?

Traditional ERPs like SAP and Oracle EBS require massive upfront investment and multi-year implementation timelines. Odoo offers enterprise-grade functionality at a fraction of the cost:

  • Open-source core: Community edition is free. Enterprise edition starts at $7.25/user/month.
  • Modular design: Install only the modules you need. No bloat.
  • Python-based: Easy to customize with standard Python development skills.
  • 30,000+ apps: Community-built modules for virtually every business need.

Architecture Overview

Odoo uses a three-tier architecture:

┌─────────────────────────────────────────┐
│         Web Browser / Mobile App        │  ← Presentation Layer
├─────────────────────────────────────────┤
│     Odoo Server (Python / Werkzeug)     │  ← Application Layer
│     - ORM (Object-Relational Mapping)   │
│     - Workflow Engine                   │
│     - Report Engine (QWeb)              │
│     - API (XML-RPC / JSON-RPC)         │
├─────────────────────────────────────────┤
│         PostgreSQL Database             │  ← Data Layer
└─────────────────────────────────────────┘

Module Selection for Manufacturing

Module Purpose Key Features
Manufacturing (mrp) Production management Bill of Materials, work orders, routing, quality checks
Inventory (stock) Warehouse management Multi-warehouse, barcode scanning, lot tracking, serial numbers
Purchase (purchase) Procurement RFQs, vendor management, purchase agreements, reordering rules
Quality (quality_control) QC workflows Quality checks, control points, alerts, statistical process control
Maintenance (maintenance) Equipment management Preventive maintenance schedules, equipment tracking, MTBF/MTTR
PLM (mrp_plm) Product lifecycle Engineering change orders, version control, BOM revisions

Module Selection for Retail

Module Purpose Key Features
Point of Sale (point_of_sale) In-store sales Offline mode, barcode/QR, multiple payment methods, loyalty programs
eCommerce (website_sale) Online store Product catalog, cart, checkout, payment gateways, SEO
Inventory (stock) Stock management Real-time stock across locations, automatic reordering
Accounting (account) Financial management GST compliance, multi-currency, bank reconciliation
CRM (crm) Customer management Lead scoring, pipeline management, email marketing integration

Installation and Setup

Docker-Based Deployment (Recommended)

# docker-compose.yml
version: '3.8'
services:
  odoo:
    image: odoo:17.0
    ports:
      - "8069:8069"
    volumes:
      - odoo-data:/var/lib/odoo
      - ./custom-addons:/mnt/extra-addons
    environment:
      - HOST=db
      - USER=odoo
      - PASSWORD=secure_password_here
    depends_on:
      - db

  db:
    image: postgres:16
    volumes:
      - postgres-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=odoo
      - POSTGRES_PASSWORD=secure_password_here
      - PGDATA=/var/lib/postgresql/data/pgdata

volumes:
  odoo-data:
  postgres-data:

Performance Configuration

# odoo.conf
[options]
db_host = db
db_port = 5432
db_user = odoo
db_password = secure_password_here
addons_path = /mnt/extra-addons,/usr/lib/python3/dist-packages/odoo/addons

# Performance tuning
workers = 4                    # CPU cores - 1
max_cron_threads = 2
limit_memory_hard = 2684354560  # 2.5GB per worker
limit_memory_soft = 2147483648  # 2GB soft limit
limit_time_cpu = 600
limit_time_real = 1200

# Proxy mode (behind Nginx)
proxy_mode = True

Nginx Reverse Proxy

# /etc/nginx/sites-available/odoo
upstream odoo {
    server 127.0.0.1:8069;
}
upstream odoo-chat {
    server 127.0.0.1:8072;
}

server {
    listen 443 ssl http2;
    server_name erp.example.com;

    ssl_certificate /etc/letsencrypt/live/erp.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/erp.example.com/privkey.pem;

    proxy_buffers 16 64k;
    proxy_buffer_size 128k;

    location / {
        proxy_pass http://odoo;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location /longpolling {
        proxy_pass http://odoo-chat;
    }

    client_max_body_size 200m;
}

Custom Module Development

# custom-addons/custom_manufacturing/models/production_order.py
from odoo import models, fields, api

class ProductionOrderExtension(models.Model):
    _inherit = 'mrp.production'

    priority_level = fields.Selection([
        ('normal', 'Normal'),
        ('urgent', 'Urgent'),
        ('critical', 'Critical')
    ], default='normal', string='Priority Level')

    estimated_completion = fields.Datetime(
        compute='_compute_estimated_completion',
        string='Estimated Completion'
    )

    @api.depends('date_start', 'product_qty')
    def _compute_estimated_completion(self):
        for record in self:
            if record.date_start:
                hours = record.product_qty * 0.5  # 30 min per unit
                record.estimated_completion = record.date_start + timedelta(hours=hours)

Integration with External Systems

Odoo provides XML-RPC and JSON-RPC APIs for integration:

# Python client example
import xmlrpc.client

url = 'https://erp.example.com'
db = 'production'
uid = xmlrpc.client.ServerProxy(f'{url}/xmlrpc/2/common').authenticate(
    db, 'admin@example.com', 'password', {}
)

models = xmlrpc.client.ServerProxy(f'{url}/xmlrpc/2/object')

# Create a sales order
order_id = models.execute_kw(db, uid, 'password', 'sale.order', 'create', [{
    'partner_id': 42,
    'order_line': [(0, 0, {
        'product_id': 101,
        'product_uom_qty': 5,
        'price_unit': 1500.00,
    })]
}])

Deploy Odoo With Expert Support

At PCCVDI Solutions, we specialize in Odoo ERP deployment, customization, and ongoing support for manufacturing and retail businesses across India. From initial module selection to custom development and integration with existing systems, our team ensures your ERP implementation delivers measurable ROI. Contact us for a free Odoo consultation.