Més de 200 repositoris a GitHub i milers de mòduls: aquesta és l'abast de la contribució de la comunitat OCA a Odoo Community, i sense pagar cap taxa de llicència per cap d'ells. La xifra pot ser enganyosa, però, ja que no tots els mòduls són compatibles amb la vostra versió d'Odoo, ni tots es mantenen amb el mateix nivell de qualitat. Si ja esteu fent servir l'edició Community i voleu ampliar-ne la funcionalitat sense actualitzar a Enterprise, necessitareu una manera de distingir entre els mòduls fiables i aquells que han estat abandonats.
OCA (Associació Comunitària d'Odoo) és una organització sense ànim de lucre, independent d'Odoo S.A. En aquesta guia, analitzem com avaluar un mòdul, com instal·lar-lo amb Docker i quan és millor no fer-ho servir.
Punts clau
OCA és independent d'Odoo S.A.; no hi ha cap suport oficial d'Odoo.
Els mòduls són gratuïts (AGPL-3), però mantenir-los té un cost.
Comproveu la branca, l'activitat, les proves CI i els mantenidors abans d'instal·lar.
Només perquè existeixi en una branca antiga no garanteix que existeixi en la teva versió.
Amb Docker, monta els repositoris OCA i afegeix-los a `addons_path`.
Menys mòduls fan que cada actualització de la versió sigui més fàcil.
Què és l'OCA i com està relacionada amb l'Odoo?
OCA és una associació sense ànim de lucre que coordina el desenvolupament de mòduls de codi obert per a la comunitat d'Odoo. El codi està allotjat a GitHub, sota l'organització OCA, i qualsevol desenvolupador o empresa pot proposar canvis. Odoo S.A. participa com a membre, però no en és propietària ni en proporciona suport.
Aquesta distinció és important en la pràctica. Si un mòdul OCA falla, no obres un tiquet amb Odoo: ho informes com a qüestió al dipòsit – o ho resols tu o ho fa un proveïdor.
Odoo Community, Enterprise i OCA: tres coses diferents
Odoo Comunitat Aquesta és la versió gratuïta, llicenciada sota la LGPL-3. Odoo Enterprise És l'edició de pagament, que inclou mòduls propis i suport oficial. OCA no és cap de les dues: és un conjunt de mòduls addicionals que s'instal·len sobre la Community.
Per això la resposta a «És OCA el mateix que Odoo Community?» és no. Community és el producte bàsic; OCA hi afegeix funcions que Community no inclou, com ara conciliacions avançades, informes, utilitats de servidor i localitzacions.
Llicència i cost real
Els mòduls OCA estan principalment llicenciats sota l'AGPL-3 (alguns sota la LGPL). Pots descarregar-los, modificar-los i utilitzar-los en el teu negoci sense pagar cap taxa de llicència. L'AGPL exigeix que facis disponible el codi modificat als usuaris que accedeixen al sistema a través d'una xarxa, cosa que afecta principalment aquells que revende desenvolupaments de programari.
De franc, però, no vol dir sense cost. Cal pagar la integració, les proves, la migració entre versions i les reparacions quan alguna cosa falla. És aquest cost el que determina si un mòdul val la pena, i ho explorarem més endavant.
L'OCA és una associació sense ànim de lucre l'objectiu de la qual és promoure l'ús d'Odoo i donar suport al desenvolupament col·laboratiu dels seus mòduls de codi obert.
Criteri per avaluar un mòdul OCA abans d'instal·lar-lo
Un mòdul és fiable si està publicat a la vostra branca d'Odoo, té activitat recent, supera les proves automatitzades i compta amb mantenidors identificats. Només cal que comproveu quatre o cinc indicadors al seu repositori — cosa que triga uns deu minuts — per evitar la majoria de problemes més endavant.
La taula resumeix què cal buscar i com interpretar-ho.
Criterio
On es pot comprovar això?
Un bon senyal
Senyal d'advertiment
Branca de la teva versió
Selector de branques de GitHub (p. ex. 17.0)
La carpeta del mòdul existeix
Només apareix en branques anteriors
Activitat
Fitxa Es compromet y Sol·licituds de contribució
Canvis durant els darrers 6–12 mesos
L'últim commit es va fer fa més de dos anys.
Proves de coeficient intel·lectual
Marcatge verd al darrer commit
Proves executades a GitHub Actions
Causes no resoltes
Mantenidors
El camp `maintainers` al manifest
Un o més noms
Camp buit
Estat
camp `development_status`
Producció/Estable o Beta
Alfa o no especificat
Branques
El camp `depends` al manifest
Molt pocs; tots a OCA o Odoo.
Molts, de dipòsits no mantinguts
Compatibilitat per versió
OCA manté una branca separada per a cada versió d'Odoo (16.0, 17.0, 18.0). Un mòdul pot existir en la versió 14.0 però no haver estat migrat a la versió 17.0. Mai no assumeixis que un mòdul d'una branca més antiga existeix a la teva. Comprova la carpeta a la branca correcta abans de fer cap pla.
També val la pena comprovar si n'hi ha un sol·licitud de contribució Incidència oberta de migració. Si n'hi ha una i no s'ha revisat des de fa mesos, el mòdul no estarà disponible aviat.
Activitat, mantenidors i estat
L'activitat no es mesura únicament per la data de l'últim commit. Un mòdul petit i estable pot romandre inalterat durant un any i, tot i així, funcionar correctament. El que importa és que qüestions que rebin una resposta i que algú comprovi els registres de migració.
El camp `maintainers` al fitxer `__manifest__.py` indica qui és responsable de mantenir-lo. Si està buit, ningú no té aquesta responsabilitat formal. El camp `development_status` completa el panorama: Alfa significa experimental, Beta per utilitzar amb precaució i Producció/Establia fiable.
Proves CI i Runboat
Cada pull request a OCA passa per integració contínua: proves automatitzades, comprovacions d'estil amb prè-compromís i cobertura. Un commit marcat en verd indica que el mòdul s'instal·la correctament i que les seves proves bàsiques superen en aquesta branca.
A més, l'OCA utilitza Vaixell de cursa, un sistema que crea una instància d'Odoo amb el mòdul instal·lat a partir d'una pull request o d'una branca. Pots obrir aquesta instància directament des del repositori i provar el mòdul sense instal·lar res al teu servidor. Utilitza-ho sempre que sigui possible abans de fer canvis a l'entorn de producció.
Quins mòduls de l'OCA són útils per a una pime a Espanya?
Els repositoris més útils per a una PIME espanyola són els de localització (`l10n-spain`), comptabilitat (`account-financial-tools`, `account-reconcile`), informes (`reporting-engine`) i utilitats de servidor (`server-tools`, `server-ux`). Adrecen les mancances que la Comunitat no cobreix de manera estàndard.
Localització espanyola: l10n_es
El repositori `l10n-spain` conté els mòduls `l10n_es_`.que la Comunitat no inclou en la seva totalitat. Aquests inclouen formularis fiscals (303, 111, 347, 349), l'SII, la facturació electrònica (FACe i Facturae) i el suport per a transferències SEPA per a cobraments i pagaments. Per a una empresa de Barcelona que presenta declaracions fiscals a l'Agència Tributària, aquest és probablement el repositori més rellevant.
La fiabilitat aquí depèn de la normativa. Quan canvia un format fiscal, cal actualitzar el mòdul; per això comprovem l'activitat del repositori abans de donar suport a un tancament trimestral. Si la vostra firma de comptabilitat requereix un formulari específic, comproveu que el mòdul el suporti en la vostra versió, no en una altra.
Comptabilitat, informes i beneficis
En comptabilitat, `account-financial-reporting` proporciona balanços i llibres majors més complets, mentre que `account-reconcile` millora la conciliació bancària. A `reporting-engine` trobaràs generadors d'informes basats en fulls de càlcul. A `server-tools` hi ha mòduls per a tasques administratives, com ara programar l'eliminació d'adjunts o auditar canvis.
Quan és aconsellable no utilitzar un mòdul OCA
No utilitzeu un mòdul si compleix alguna de les condicions següents:
Només està disponible en versions que ja no es donen suport.
Té una característica que Odoo Enterprise o una versió més recent de Community ja inclouen de sèrie.
Depèn de molts altres mòduls que ja no es mantenen.
És hora de la liquidació de l'impost, i no hi ha hagut cap activitat durant l'últim any.
Oferix una petita comoditat que no justifica el cost de migrar-la cada any.
Si el mòdul és purament cosmètic, de vegades és més barat adaptar el procés que mantenir el codi.
OCA versus la Odoo App Store: diferències pràctiques
La botiga d'aplicacions d'Odoo reuneix mòduls de tercers – tant gratuïts com de pagament – publicats per empreses o autors individuals. L'OCA és un projecte comunitari amb estàndards de qualitat comuns. Tots dos poden ser bons, però el control de qualitat és diferent.
A l'OCA, el codi passa per una revisió per parells per altres desenvolupadors, proves i controls d'estil abans de ser fusionat. A l'App Store, la qualitat depèn del desenvolupador: hi trobaràs alguns mòduls excel·lents i d'altres que no s'han actualitzat des de fa anys. A més, un mòdul de pagament et proporciona un proveïdor amb qui contactar si tens alguna reclamació, mentre que a l'OCA el suport el proporciona la comunitat o s'ha d'acordar per separat.
Per ajudar-te a decidir, utilitza aquesta regla general. Si hi ha un equivalent OCA amb un historial recent, comença per aquí. Si necessites un compromís de suport amb un punt de contacte clarament identificat, considera un mòdul de pagament o un projecte de desenvolupament a mida amb contracte.
Funcionen els mòduls OCA amb Odoo Enterprise?
Tècnicament, molts ho fan, perquè Enterprise està construït sobre Community. Tanmateix, això no està garantit: alguns mòduls de l'OCA substitueixen funcions que Enterprise ja cobreix i poden entrar en conflicte amb els seus mòduls propietaris. Si utilitzeu Enterprise, proveu cada mòdul en una còpia de la base de dades abans d'instal·lar-lo i recordeu que el suport oficial d'Odoo no cobreix el codi de l'OCA.
Guia pas a pas per instal·lar mòduls OCA amb Docker
La instal·lació implica clonar el repositori OCA des de la teva branca, muntar-lo com a volum al contenidor, afegir-ne el camí a `addons_path` i actualitzar la llista d'aplicacions. Amb Docker, aquest procés és reproduïble i es pot repetir exactament de la mateixa manera tant en entorns de prova com de producció.
Aquests són els passos que seguim:
Crea un directori al servidor per a complements externs, per exemple `/opt/odoo/oca`.
Clona només la branca que necessitis: `git clone --depth 1 -b 17.0 https://github.com/OCA/l10n-spain.git`. L'opció `--depth 1` evita que es descarregui tota la història.
Munta aquesta carpeta com a volum a `docker-compose.yml`, per exemple `/opt/odoo/oca/l10n-spain:/mnt/extra-addons/l10n-spain`.
Afegeix la ruta a `addons_path` en `odoo.conf`, separada per comes de les rutes existents.
Instal·la les dependències de Python especificades pel repositori. Moltes inclouen un fitxer `requirements.txt`; instal·la'l en una imatge personalitzada, no manualment dins del contenidor.
Recomenceu el contenidor, activeu el mode de desenvolupador i toqueu 'Refresh app list'..
Instal·la primer el mòdul en una base de dades de prova i només després en producció.
Propi imatge i edificis annexos
Un error comú és instal·lar paquets Python amb `pip` mentre el contenidor està en execució. Aquests paquets es perden quan es recrea el contenidor. Defineix un `Dockerfile` que parteixi de la imatge oficial d'Odoo, copiï el fitxer `requirements.txt` i l'instal·li. Això garanteix que cada desplegament inclogui tot el necessari.
També etiquetau les versions: utilitzeu una etiqueta d'imatge específica i un commit detalls específics per a cada repositori OCA. Si sempre descarrega la darrera versió de la branca, una actualització d'un mòdul podria trencar el seu entorn de producció sense avisar.
Copies de seguretat abans de cada canvi
Crea un dump de PostgreSQL (`pg_dump`) i una còpia de l'emmagatzematge de fitxers. abans d'instal·lar o actualitzar qualsevol mòdul. Desinstal·lar un mòdul no sempre elimina les dades que ha creat, i de vegades l'única manera de revertir els canvis és restaurar el sistema. A Synergia, despleguem Odoo en servidors dedicats amb Docker i PostgreSQL, i aquesta còpia de prellançament forma part de qualsevol canvi fet en l'entorn de producció.
El cost real: manteniment i actualitzacions de versió
El cost d'un mòdul OCA sorgeix quan actualitzes Odoo. Odoo llança una versió major cada any, i cada mòdul extern s'ha de migrar a la nova branca abans d'actualitzar. Si no s'ha migrat, tens tres opcions: esperar, migrar-lo tu mateix o prescindir-ne.
Què passa amb un mòdul quan s'actualitza?
Migra un mòdul petit pot trigar unes quantes hores de desenvolupament. Un de gran, amb vistes, informes i lògica fiscal, pot trigar diversos dies. Com a orientació aproximada, amb tarifes estàndard de consultoria de 50 a 90 € per hora, vuit hores costarien entre 400 i 720 € per mòdul. Aquestes xifres són indicatives: depenen de la complexitat i de l'estat del codi.
Si el mòdul té mantenidors actius, és probable que la migració estigui disponible de forma gratuïta a la nova branca d'aquí a uns mesos. Per tant, és una bona idea revisar la branca següent i qualsevol pull request oberta abans de decidir quan actualitzar.
Menys mòduls, actualitzacions més senzilles
Cada mòdul que afegeixes és una dependència que hauràs de gestionar. Quaranta mòduls externs signifiquen quaranta possibles colls d'ampolla el dia de la migració. Abans d'instal·lar-ne un, pregunta't si la funcionalitat justifica aquest compromís anual.
Una política senzilla ajuda: mantingueu una llista documentada dels mòduls externs, incloent-hi el seu repositori, la branca, la raó d'ús i la persona responsable. Quan arribi la propera actualització, sabreu exactament què comprovar.
Errors comuns en l'ús de mòduls de comunitat
Els errors més comuns no són tècnics, sinó més aviat errors de judici. Aquests són els que causen més problemes a les pimes:
Creure que l'OCA té suport oficial d'Odoo. No en té cap; el suport el proporciona la comunitat o s'externalitza a un proveïdor.
Instal·la sense mirar la branca. El mòdul de tutorial potser no està disponible a la vostra versió.
Acaparar mòduls «per si de cas». Cada un fa que la migració següent sigui més cara.
Prova directament en producció. Utilitza una còpia de la base de dades o de Runboat.
Ignora les dependències. Un mòdul que depèn d'altres sense mantenir-los hereta la seva negligència.
Oblida't de la gestió de versions. Un `git pull` no supervisat pot canviar el comportament d'un dia per l'altre.
Evitar-los no requereix gaire temps, només disciplina: comprovar, provar en una còpia, documentar i actualitzar segons un calendari.
Conclusió
Tria un mòdul OCA si existeix a la teva branca, té activitat recent, supera la CI i satisfà una necessitat que justifica el seu manteniment. Descarta'l si només existeix en versions antigues o serveix per a una comoditat menor. Abans d'instal·lar res, obre el seu repositori, comprova aquests quatre punts i prova'l en una còpia. Si necessites ajuda per allotjar-lo i actualitzar-lo amb Docker, Synergia es pot encarregar del desplegament.
Preguntes freqüents
Què és l'OCA a Odoo?
OCA és l'acrònim de l'Odoo Community Association, una organització sense ànim de lucre que manté centenars de mòduls de codi obert per a Odoo Community a GitHub. No forma part d'Odoo S.A. i opera sobre la base del desenvolupament col·laboratiu i la revisió per parells.
Els mòduls OCA són gratuïts?
Sí, estan distribuïts sota la llicència AGPL-3 o LGPL i no hi ha cap cost de llicència. Tanmateix, hi ha despeses associades a la instal·lació, les proves, el manteniment i les actualitzacions entre versions, que normalment són la despesa més gran.
Hi ha algunes aplicacions OCA per a la comptabilitat i la facturació espanyoles?
Sí. El repositori `l10n-spain` inclou els mòduls `l10n_es_` per als models fiscals, l'SII, Facturae i les transferències SEPA. Verifiqueu que el mòdul específic existeixi i estigui habilitat a la vostra versió d'Odoo abans d'utilitzar-lo per a les clausures de fi d'exercici fiscal.
Què passa amb els mòduls OCA en actualitzar Odoo?
Cada mòdul s'ha de migrar a la branca de la nova versió. Si no es fa, hauràs d'esperar, migrar-lo o prescindir-ne. Comprova les branques i les sol·licituds de tirada de migració abans d'establir la data d'actualització.