Aller au contenu

Café-cacao

Sutec / Café Continent

Réception, contrôle qualité, usinage et export du cacao sur une seule instance multi-société — avec la certification fiscale électronique et un décisionnel branché directement sur l’ERP.

Secteur
Café-cacao
Périmètre
19 modules sur mesure · 18 utilisateurs
Durée
Plus de 6 mois, puis maintenance et support en continu
Rôle
Tech Lead — architecture des modules sur mesure, développement, encadrement de l’équipe
Version Odoo
Odoo 18 Enterprise

Le problème

Chez un transformateur de cacao, tout se joue à la réception. Le camion passe au pont-bascule, on note un poids, on prélève un échantillon, le laboratoire mesure l’humidité et les réfractions — matière étrangère, brisures, déchets — et de ces chiffres dépend le prix payé au producteur comme la décision d’accepter ou de refouler le chargement.

Chacune de ces étapes existait, mais aucune ne parlait à la suivante. La pesée vivait d’un côté, l’analyse de laboratoire de l’autre, l’ordre d’usinage encore ailleurs. Rien ne reliait un lot entré à un lot sorti. Entre les deux sociétés du groupe, les documents se recopiaient à la main. Et la certification électronique des factures, devenue obligatoire en Côte d’Ivoire, se faisait hors de l’ERP.

L’approche

Le parti pris est resté le même du début à la fin : ne pas remplacer ce que le standard fait déjà bien. Achats, stock, fabrication, comptabilité et point de vente restent du Odoo natif. Les restrictions métier — qui peut créer un article, qui peut confirmer une vente, qui voit une analyse validée — sont posées en groupes et règles d’enregistrement, pas en code de contrôle.

Le sur-mesure ne commence que là où le métier du cacao n’a pas d’équivalent standard. La pesée, l’analyse qualité et la division de lot sont de vrais nouveaux modèles ; tout le reste s’ajoute par héritage aux flux existants, sans les détourner.

Un exemple de cet état d’esprit : les ordres de fabrication en usinage à façon devaient retrouver leur donneur d’ordre. La première version cherchait le partenaire par son nom — sauf que deux partenaires portaient le même, dont un archivé. La résolution passe désormais par l’historique réel du flux, et s’abstient explicitement quand le résultat est ambigu, plutôt que de désigner le mauvais client.

La solution

Dix-neuf modules sur mesure sur une instance Odoo 18 Enterprise partagée par les deux sociétés du groupe.

Le socle métier relie la chaîne complète : le ticket de pesée porte les poids d’entrée, de sortie et net, l’humidité, les réfractions et la décision d’acceptation ; l’analyse de laboratoire est rattachée à la réception puis à l’ordre de fabrication qu’elle alimente ; la division de lot suit la matière au-delà de la traçabilité native. Les tickets peuvent être injectés depuis le poste de pesée par un point d’entrée HTTP dédié, protégé par jeton — le serveur recalculant lui-même l’état du ticket plutôt que de faire confiance à ce qu’on lui envoie.

La conformité fiscale est traitée dans l’ERP : factures, avoirs et bordereaux d’achat aux producteurs sont certifiés FNE directement depuis la comptabilité et depuis la caisse.

Le décisionnel fonctionne dans les deux sens. Odoo expose ses données à Power BI par une API gouvernée — clé d’accès, quota d’appels, liste blanche d’adresses, journalisation — au lieu d’ouvrir la base en lecture. Et dans l’autre sens, la validation d’une facture déclenche le rafraîchissement des rapports Power BI, via une authentification OAuth2 Azure AD.

Architecture de l’intégration Odoo ↔ Power BIPower BI interroge Odoo par une API REST protégée par clé d’accès. En sens inverse, la validation d’une facture dans Odoo déclenche le rafraîchissement des rapports Power BI, authentifié en OAuth2.OdooERP · SOURCE DE VÉRITÉPower BIDÉCISIONNELREQUÊTE · CLÉ APIREFRESH · OAUTH2
Deux flux de sens opposés, deux mécanismes d’authentification distincts. La base n’est jamais ouverte en lecture directe.La lecture est gouvernée — clé d’accès, quota d’appels, liste blanche d’adresses, journalisation — et le rafraîchissement est déclenché par un évènement comptable, pas par une planification fixe.

Le reste du périmètre couvre les droits d’accès au niveau du champ, du bouton et du menu — bien plus fin que les groupes standard —, la duplication tracée de documents entre les deux sociétés, une piste d’audit générique, et l’export de la balance générale au format attendu par le cabinet comptable.

Le résultat

La chaîne réception → analyse → usinage → export tient dans un seul système, et un lot se suit d’un bout à l’autre. Les pesées entrent dans l’ERP comme des enregistrements structurés plutôt que d’être ressaisies. Les documents qui passent d’une société à l’autre laissent une trace au lieu d’être recopiés. Les factures sortent certifiées. Et les tableaux de bord de direction se rafraîchissent quand la comptabilité bouge, pas à heure fixe.

Stack

Odoo
Odoo 18 Enterprise
Modules
AchatsFabricationInventaireVentesComptabilitéPoint de venteRHApprobations
Tech
PythonPostgreSQLOWLPower BI
Protocoles
RESTJSONOAuth2