Documentation9 min de lecture

Référentiels partagés entre sociétés : contacts, produits, étapes, vues

Le module OCA `partner_multi_company` (dépôt `multi-company`, version 18.0.1.0.3, licence AGPL-3) permet de choisir **individuellement la visibilité d'un contact société par société** — là où le standard impose un contact soit propre à une société, soit visible de toutes. Dix-sept autres modules font de même pour les produits, les étapes CRM, les filtres et les vues.

Open space avec plusieurs postes de travail

Dans Odoo, un enregistrement appartient à une société ou à aucune. Il n'y a pas d'intermédiaire : un contact partagé entre deux filiales sur trois, une étape de pipeline propre à une entité, une vue personnalisée pour une seule société — rien de cela n'est possible.

Dix-huit modules communautaires ajoutent cet intermédiaire, et terminent le dépôt multi-company.

Résumé

Cinq modules traitent les tiers et les produits : la visibilité d'un contact choisie société par société, la gestion multi-société des catégories de contact et des secteurs d'activité, la visibilité d'un modèle de produit société par société, et un garde-fou empêchant de retirer une société d'un produit s'il y reste du stock ou des mouvements.

Quatre modules traitent la vente et la caisse : les catégories de point de vente en contexte multi-société, les taxes par défaut du produit par société, et deux modules de suivi marketing — support et source — rendus multi-société.

Quatre modules traitent le CRM : les motifs de perte, les étapes et les étiquettes rendus multi-société.

Cinq modules enfin traitent les objets techniques : les événements et les types d'événement de calendrier, les filtres définis par les utilisateurs, les vues personnalisées par société, et deux modules de messagerie — la passerelle et les modèles de courriel — rendus multi-société.

L'essentiel

  • La visibilité d'un contact choisie société par société.
  • La visibilité d'un produit choisie société par société.
  • Un garde-fou empêchant de retirer une société si du stock subsiste.
  • Les étapes et motifs de perte du CRM par société.
  • Les filtres utilisateurs par société.
  • Des vues personnalisées pour une société précise.
  • Les modèles de courriel par société.
  • Les taxes par défaut du produit par société.

Ce que ces modules ajoutent à l'instance

FamilleModulesNombre
Tiers et produitspartner_multi_company, partner_category_multi_company, res_partner_industry_multi_company, product_multi_company, product_multi_company_stock5
Vente et caissepos_category_multicompany, product_tax_multicompany_default, utm_medium_multi_company, utm_source_multi_company4
CRMcrm_lost_reason_multi_company, crm_stage_multi_company, crm_tag_multi_company3
Objets techniquescalendar_event_multi_company, calendar_event_type_multi_company, ir_filters_multi_company, ir_ui_view_multi_company, mail_multicompany, mail_template_multi_company6

Aucun de ces modules n'ajoute de menu : ils ajoutent un champ de sociétés autorisées aux modèles concernés.

Le problème que ces modules résolvent

Le modèle multi-société d'Odoo est binaire : un enregistrement porte une société — il n'est visible que d'elle — ou n'en porte aucune — il est visible de toutes. Dans un groupe de cinq entités, le cas réel est presque toujours « visible de trois d'entre elles ».

Le contournement habituel consiste à laisser l'enregistrement sans société, donc visible de tout le monde, et à compter sur la discipline. Cela fonctionne jusqu'au jour où deux entités du groupe ont des clients concurrents, ou des gammes qu'elles ne doivent pas se voir.

base_multi_company — le socle traité avec les flux inter-sociétés — fournit le mécanisme ; les modules de cette fiche l'appliquent à un modèle précis. Le résultat est le même partout : un champ listant les sociétés qui voient l'enregistrement.

Les tiers et les produits

partner_multi_company applique ce mécanisme aux contacts : un client partagé entre la société de négoce et la société d'installation, mais invisible de la filiale de transport.

product_multi_company l'applique aux modèles de produit : une gamme vendue par deux entités sur quatre.

product_multi_company_stock est le garde-fou associé : il empêche de retirer une société de la liste si cette société détient du stock ou des mouvements sur le produit.

Le garde-fou est le module le plus utile des deux : retirer une société d'un produit qui a du stock chez elle rend ce stock invisible — il ne disparaît pas, il devient inaccessible, et il réapparaît à l'inventaire comme un écart inexplicable.

Deux modules complètent les référentiels de contact : partner_category_multi_company pour les catégories de contact — les étiquettes — et res_partner_industry_multi_company pour les secteurs d'activité.

La vente, la caisse et le CRM

  • pos_category_multicompany rend les catégories de point de vente multi-société : deux magasins de deux entités différentes n'ont pas les mêmes rayons.
  • product_tax_multicompany_default gère les taxes par défaut du produit par société. Son README est réduit à sa catégorie. Le besoin est clair en multi-pays : le même article n'a pas le même taux selon l'entité qui le vend.
  • utm_medium_multi_company et utm_source_multi_company rendent multi-société les référentiels de support et de source du suivi marketing.

Trois modules traitent le CRM : crm_lost_reason_multi_company pour les motifs de perte, crm_stage_multi_company pour les étapes du pipeline, crm_tag_multi_company pour les étiquettes.

Un pipeline commun à deux entités dont les cycles de vente diffèrent — un négoce à trois étapes, un bureau d'études à sept — est le signe le plus sûr qu'aucune des deux ne se sert du CRM.

À ne pas confondre avec crm_stage_multi_team, qui partage une étape entre plusieurs équipes d'une même société, traité dans le pipeline CRM.

Les objets techniques

  • calendar_event_multi_company et calendar_event_type_multi_company rendent multi-société les événements et les types d'événement de calendrier.
  • ir_filters_multi_company rend multi-société les filtres définis par les utilisateurs : les filtres favoris d'une entité ne polluent plus les listes d'une autre.
  • ir_ui_view_multi_company permet de définir des vues personnalisées pour une société précise.
  • mail_multicompany et mail_template_multi_company rendent multi-société la passerelle de messagerie et les modèles de courriel. Les deux ont un README réduit à leur catégorie.

Les vues par société sont le module le plus structurant de ce groupe : il permet d'adapter un écran aux besoins d'une entité sans l'imposer aux autres. Dans le standard, une surcharge de vue s'applique à tout le monde.

Les modèles de courriel par société répondent à une question de marque : deux entités d'un même groupe n'écrivent pas à leurs clients avec le même logo, la même signature et les mêmes mentions légales. Sans ce module, il faut dupliquer les flux ou accepter une communication générique.

Les modèles de courriel et leurs règles de substitution sont traités dans écrire depuis Odoo.

Limites connues

  • Trois modules ont un README réduit à leur catégorie : product_tax_multicompany_default, mail_multicompany et mail_template_multi_company.
  • Ces modules élargissent la visibilité, ils ne la cloisonnent pas davantage : le modèle reste permissif par défaut pour un enregistrement sans société.
  • La visibilité multi-société est une règle d'enregistrement, donc contournable par un utilisateur ayant accès à plusieurs sociétés simultanément.
  • Ajouter la gestion multi-société à un modèle change ses règles d'accès : à éprouver sur une base de recette, modèle par modèle.
  • product_multi_company_stock bloque un retrait de société : c'est son objet, mais cela demande de solder le stock avant de réorganiser un catalogue.
  • Les vues par société multiplient les variantes à maintenir : chaque montée de version demande de les vérifier toutes.
  • Tous ces modules dépendent du socle base_multi_company pour la plupart, ou directement de base : vérifier la cohérence des versions installées.

Identité technique

Les dix-huit modules viennent du dépôt OCA multi-company, branche 18.0 — dont les 29 modules sont désormais tous documentés ici —, tous en licence AGPL-3. Les dépendances : base_multi_company pour les contacts et les produits, base pour les référentiels techniques, crm, utm, calendar, mail, point_of_sale, account et stock selon le modèle visé.

L'autre fiche du dépôt : flux inter-sociétés.

Questions fréquentes

Un contact peut-il être visible de certaines sociétés seulement ?

Pas en standard : le modèle d'Odoo est binaire — une société, ou aucune. partner_multi_company permet de choisir individuellement la visibilité société par société. Dans un groupe de cinq entités, le cas réel est presque toujours « visible de trois d'entre elles ».

Que se passe-t-il si on retire une société d'un produit qui a du stock ?

Sans garde-fou, ce stock devient inaccessible — il ne disparaît pas, il réapparaît à l'inventaire comme un écart inexplicable. product_multi_company_stock empêche ce retrait tant que la société détient du stock ou des mouvements sur le produit.

Peut-on avoir un pipeline CRM différent par société ?

Oui, avec crm_stage_multi_company pour les étapes, complété par crm_lost_reason_multi_company et crm_tag_multi_company. Un pipeline commun à deux entités dont les cycles diffèrent — un négoce à trois étapes, un bureau d'études à sept — est le signe qu'aucune ne s'en sert.

Peut-on personnaliser un écran pour une seule société ?

Oui : ir_ui_view_multi_company permet de définir des vues pour une société précise. Dans le standard, une surcharge de vue s'applique à tout le monde. Attention : chaque variante est à vérifier à chaque montée de version.

Peut-on avoir des modèles de courriel différents par société ?

Oui, avec mail_template_multi_company. C'est une question de marque : deux entités d'un même groupe n'écrivent pas avec le même logo, la même signature et les mêmes mentions légales. Sans ce module, il faut dupliquer les flux ou accepter une communication générique.

Se faire accompagner

Le cloisonnement multi-société est le sujet où la facilité coûte le plus cher : laisser les référentiels sans société, donc visibles de toutes, fonctionne jusqu'au jour où deux entités du groupe ont des clients concurrents. Reprendre le cloisonnement ensuite suppose de réattribuer des milliers d'enregistrements.

Nous posons donc la carte de visibilité au démarrage — quel référentiel est commun, lequel est propre, lequel est partagé par certaines entités — et nous n'installons que les modules correspondants. Voir les prestations d'Atalios Consulting ou demander un rappel.

Pour aller plus loin

En résumé

Dans Odoo, un enregistrement appartient à une société ou à aucune — il n'y a pas d'intermédiaire. Dix-huit modules l'ajoutent : contacts, produits, étapes CRM, filtres, vues et modèles de courriel visibles des seules sociétés choisies. Parlons de votre cloisonnement.

Documentation OCAMulti-sociétéOdoo Community

Partager

Fiches connexes

Équipe au travail sur des ordinateurs portables autour d'une table
Le module OCA `account_invoice_en16931` (dépôt `fr-einvoicing`, version 18.0.1.0.0, licence AGPL-3) est le socle qui fabrique le fichier de facture électronique conforme à la norme européenne **EN 16931** : Factur-X (PDF/A-3 avec XML CII embarqué), XML UBL, XML CII ou PDF accompagné d'un UBL — et il ajoute des **contrôles bloquants à la validation** d'une facture client. Les quatre modules qui s'y greffent pour la France, et ce que le socle ne fait pas.
Lire la suite
Documentation OCA, Facturation électronique
Réunion d'approbation autour d'un document de travail
Relevé sur une instance Odoo 18 Community, le module OCA `base_tier_validation` (dépôt `server-ux`, version 18.0.3.5.1, licence AGPL-3) ajoute 1 modèle, 101 champs et 3 menus, mais ne s'active sur aucun document métier par lui-même : il lui faut un module d'implémentation. C'est le point qui surprend le plus — voici ce qu'il fait réellement, et comment le mettre en service.
Lire la suite
Documentation OCA, Odoo