Odoo
Qué és Odoo?
Odoo és un ERP open-source escrit en Python que usa PostgreSQL com a base de dades. Ofereix una suite completa de mòduls empresarials (vendes, compres, inventari, comptabilitat, RRHH, CRM, fabricació, e-commerce, etc.) amb una interfície web moderna.
Existeix en dues edicions: - Community Edition (CE): gratuïta i de codi obert (LGPL-3) - Enterprise Edition (EE): de pagament, amb mòduls addicionals i suport oficial
Instal·lació amb Docker Compose
Crea un fitxer docker-compose.yml per a Odoo:
version: '3.8'
services:
odoo-db:
image: postgres:15
container_name: odoo-db-joan-garcia
environment:
POSTGRES_USER: odoo
POSTGRES_PASSWORD: odoo_password
POSTGRES_DB: postgres
volumes:
- odoo_db_data:/var/lib/postgresql/data
networks:
- odoo_net
odoo:
image: odoo:17.0
container_name: odoo-joan-garcia
depends_on:
- odoo-db
ports:
- "8069:8069"
environment:
HOST: odoo-db
USER: odoo
PASSWORD: odoo_password
volumes:
- odoo_web_data:/var/lib/odoo
- ./addons:/mnt/extra-addons
networks:
- odoo_net
volumes:
odoo_db_data:
odoo_web_data:
networks:
odoo_net:
# Engegar
docker compose up -d
# Accedir a Odoo
# http://localhost:8069
# Veure logs
docker compose logs -f odoo
Primer accés i configuració
En el primer accés, Odoo mostra un formulari per crear la base de dades:
| Camp | Valor recomanat |
|---|---|
| Master Password | (establert a odoo.conf) |
| Database Name | lmsgi_joan_garcia |
admin@exemple.com |
|
| Password | (contrasenya administrador) |
| Language | Catalan (ca) |
| Country | Spain |
Mòduls principals
Odoo s'organitza en mòduls (apps) que s'instal·len independentment:
| Mòdul | Funció |
|---|---|
| Vendes | Pressupostos, comandes de venda, facturació |
| CRM | Oportunitats, pipeline de vendes, contactes |
| Inventari | Control d'estoc, moviments, valoració |
| Compres | Sol·licituds d'oferta, comandes de compra |
| Comptabilitat | Factures, pagaments, llibres comptables |
| Recursos Humans | Empleats, nòmines, absències, contractes |
| Projecte | Gestió de projectes, tasques, Kanban |
| Fabricació | Ordres de producció, llistes de materials |
| e-Commerce | Botiga online integrada |
| Web | Constructor de pàgines web |
Instal·lar mòduls
- Accedeix a
Configuració → Mòduls - Activa el mode de desenvolupador (Configuració → Mode de desenvolupador)
- Cerca el mòdul
- Clica "Instal·lar"
Gestió d'usuaris i rols
graph TD
Admin[Administrador<br/>Accés total] --> Gestor[Gestor<br/>Accés per mòdul]
Gestor --> Usuari[Usuari<br/>Accés operacional]
Admin --> Portal[Usuari de portal<br/>Clients/proveïdors]
- Accedeix a
Configuració → Usuaris i empreses → Usuaris - Crea un nou usuari amb correu electrònic
- Assigna el grup corresponent per cada mòdul (cap accés, usuari, gestor, administrador)
- Opcionalment, crea grups personalitzats a
Configuració → Grups
Importació de dades
Odoo accepta importació de dades en CSV i XLSX:
Format CSV per a clients
"Nom","Correu","Telèfon","Carrer","Ciutat","País"
"Institut Sa Palomera","info@sapalomera.cat","972 33 29 63","Carrer Nou, 42","Blanes","ES"
"Escola Tècnica","info@escolatec.cat","93 123 45 67","Avinguda Mar, 15","Barcelona","ES"
Procediment d'importació
- Ves al mòdul corresponent (p. ex., Contactes)
- Clica
Importar(botonera superior) - Selecciona el fitxer CSV/XLSX
- Mapeja els camps CSV amb els camps d'Odoo
- Valida amb "Prova d'importació"
- Confirma amb "Importa"
Exportació de dades
Exportació manual
- Ves a la llista del model (p. ex., Clients)
- Selecciona els registres (o tots amb el checkbox)
- Acció → Exportar
- Selecciona els camps a exportar
- Escull format (CSV o XLSX)
Exportació via terminal (XML-RPC)
import xmlrpc.client
url = "http://localhost:8069"
db = "lmsgi_joan_garcia"
username = "admin@exemple.com"
password = "la_teva_contrasenya"
common = xmlrpc.client.ServerProxy(f"{url}/xmlrpc/2/common")
uid = common.authenticate(db, username, password, {})
models = xmlrpc.client.ServerProxy(f"{url}/xmlrpc/2/object")
# Llegir tots els contactes
contactes = models.execute_kw(db, uid, password, 'res.partner', 'search_read',
[[['is_company', '=', True]]],
{'fields': ['name', 'email', 'phone', 'city'], 'limit': 100}
)
import json
print(json.dumps(contactes, ensure_ascii=False, indent=2))
Generació d'informes
Odoo genera informes en PDF basats en plantilles QWeb (HTML+XML):
- Obre un registre (p. ex., una factura o un pressupost)
- Clica el botó
ImprimiroEnviar per correu - Odoo genera automàticament el PDF
Personalitzar informes (mode desenvolupador)
Configuració → Informes → Informes- Selecciona l'informe a personalitzar
- Edita la plantilla QWeb
Miniactivitat AC03746
Instal·la Odoo 17 amb Docker (usa el docker-compose.yml anterior). Crea la BD lmsgi_nom_cognom. Instal·la els mòduls "Vendes" i "Inventari". Crea 3 productes fictícis i 2 clients. Fes una comanda de venda i exporta el llistat de productes en CSV.