Odoo est un progiciel de gestion modulaire, et cette modularité fait à la fois sa force et le piège dans lequel tombent les projets. Quatre arbitrages décident du budget réel : Community ou Enterprise, la façon dont les spécifiques sont écrits, la frontière entre le site et l’ERP, et la reprise de données. Le dernier bloc explique les cas où il vaut mieux ne pas nous écrire.
Community, Enterprise, et un modèle tarifaire à vérifier vous-même
Commençons par ce qui n’est pas une opinion. Odoo Community est publié sous LGPL version 3. Odoo Enterprise est publié sous une licence propriétaire, conditionnée à un abonnement actif. Enterprise n’est pas une réécriture du produit : c’est un ensemble de modules supplémentaires posés sur le même socle, ce qui explique que les deux éditions partagent leurs structures de données et l’essentiel de leur code.
Côté abonnement, Odoo présente aujourd’hui trois formules sur sa page de tarifs : une formule gratuite limitée à une seule application, Nom officiel de la troisieme formule sur la page de tarifs francaise d'Odoo : « Personnalise » (« Custom » uniquement en anglais et dans la documentation developpeur).
1) localContent.blocks[0].body, premiere occurrence, a publier :
« ... une formule Standard qui ouvre toutes les applications sur l'hebergement en ligne d'Odoo, et une formule Personnalise, nommee « Custom » sur la version anglaise de la page et dans la documentation technique. »
2) localContent.blocks[0].body, seconde occurrence, phrase suivante, a publier :
« ... parce que la formule Standard n'ouvre ni l'API externe, ni Odoo Studio, ni l'hebergement sur Odoo.sh ou sur vos propres serveurs : sa page de tarifs rattache tout cela a la formule Personnalise. »
3) problem.stats[2].value, remplacer « Custom » par : « Personnalise »
(le label « Plan requis pour ouvrir l'API externe sur l'offre en ligne d'Odoo » reste exact)
4) faq[2].answer, remplacer « l'API externe n'est ouverte que sur le plan Custom » par :
« l'API externe n'est ouverte que sur le plan Personnalise, appele Custom sur la page de tarifs en anglais »
5) localContent.blocks[2].body (ligne 7636, non signalee par le relecteur), remplacer « l'API externe suppose la formule Custom » par :
« l'API externe suppose la formule Personnalise »
Le reste des affirmations de la page est confirme et ne doit pas etre touche : Standard = toutes les apps mais hebergement Odoo Online seul ; Personnalise = Odoo Studio, pluri-entreprises, API externe, et choix Odoo Online / Odoo.sh / on-premise.. C’est la troisième qui compte pour un projet d’intégration, parce que la formule Standard n’ouvre ni l’API externe, ni Odoo Studio, ni l’hébergement sur Odoo.sh ou sur vos propres serveurs : sa page de tarifs rattache tout cela à la formule Custom.
Nous ne citons volontairement aucun montant ici, et c’est un conseil autant qu’une prudence. Odoo fixe ses tarifs par pays, et le tarif de première année n’est pas celui du renouvellement. Ouvrez la page de tarification officielle depuis la France, lisez la ligne de renouvellement autant que le prix d’appel, et multipliez par le nombre réel d’utilisateurs internes : Odoo considère comme utilisateur payant toute personne qui accède au back-office pour créer, consulter ou modifier des documents, donc ouvrir un tableau de bord depuis le back-office compte, et un comptable externe qui travaille dans votre base compte aussi. Seuls les clients et les fournisseurs qui passent par le portail, en lecture seule, ne sont pas facturés.. Un budget Odoo se calcule sur trois ans, pas sur douze mois. Nous ne revendons pas d’abonnements Odoo : la formule que vous choisissez ne change rien à ce que nous facturons, ce qui rend cet arbitrage plus simple à mener honnêtement.
Les spécifiques décident du prix de vos montées de version
et qu'au-delà, un support étendu est soumis à des frais supplémentaires obligatoires.
Le site et Odoo : décider qui détient la vérité, objet par objet
Une intégration site et ERP ne se conçoit pas comme un tuyau, mais comme un contrat, objet par objet. Le catalogue produit descend en principe d’Odoo vers le site, avec ses variantes, ses prix et ses règles fiscales. Les commandes remontent du site vers Odoo. Le stock est le point délicat : il faut décider si le site affiche une quantité recopiée à intervalles réguliers, ou s’il interroge Odoo au moment d’ajouter au panier. La première option est rapide et provoque de la survente sur les articles à rotation forte. La seconde est juste et rend le site dépendant de la disponibilité d’Odoo. Il n’y a pas de bonne réponse universelle, il y a une réponse par catalogue.
A ajouter en fin de paragraphe sur les factures, apres « Un seul systeme numerote, l'autre affiche. » :
« À cela s’ajoute une échéance proche. À compter du 1er septembre 2026, toutes les entreprises assujetties à la TVA établies en France doivent être en mesure de recevoir leurs factures électroniques par l’intermédiaire d’une plateforme agréée ; les grandes entreprises et les entreprises de taille intermédiaire doivent aussi les émettre à cette date, les PME, TPE et micro-entreprises à compter du 1er septembre 2027. Deux questions se posent alors dans une intégration site et Odoo, et elles n’ont pas la même réponse. Pour les ventes entre professionnels, laquelle des deux briques dépose la facture sur la plateforme agréée et laquelle se contente de l’afficher. Pour les ventes aux particuliers, qui ne relèvent pas de ce circuit mais du e-reporting, laquelle transmet les données de transaction. »
Ce qui change par rapport a la proposition du relecteur : « etablies en France » ajoute ; la phrase finale scindee pour distinguer le B2B (facture via plateforme agreee, art. 289 bis CGI) du B2C (e-reporting), au lieu d'appliquer le circuit facture a toutes les ventes du site. Pas de tiret long, conforme a la convention du repo. La numérotation des factures doit suivre une séquence chronologique continue. L’article 242 nonies A de l’annexe II au code général des impôts impose un numéro unique basé sur une séquence chronologique et continue, et il admet expressément que la numérotation soit établie par séries distinctes lorsque les conditions d’exercice de l’activité de l’assujetti le justifient, l’assujetti devant faire de ces séries un usage conforme à leur justification initiale. Ce que l’administration sanctionne n’est donc pas la pluralité d’émetteurs, c’est la rupture de séquence et le doublon. Émettre depuis la boutique et depuis Odoo en parallèle sans avoir écrit laquelle des deux séries s’applique produit exactement cela. Deux architectures sont conformes, et il faut en choisir une avant la première facture : soit un seul système numérote et l’autre affiche, soit chacun tient sa propre série, avec une justification écrite tirée de vos conditions d’exercice, et sans rupture.
Restent les mécanismes qui évitent les incidents. Un identifiant externe stable de chaque côté, pour qu’un message rejoué ne crée pas un second client ni une seconde commande. Un journal des échanges consultable, avec le contenu envoyé et l’erreur reçue, parce qu’une intégration muette est impossible à diagnostiquer. Une file de reprise pour les messages en échec. Et une procédure écrite pour rejouer un échange à la main, que quelqu’un chez vous sait exécuter sans nous. Sur l’offre en ligne d’Odoo, rappelons que l’API externe suppose la formule Custom ; sur une instance Community que vous hébergez, cette restriction commerciale ne s’applique pas.
La reprise de données, et les cas où il ne faut pas nous écrire
Publier le texte propose par le relecteur, tel quel, en remplacement integral de localContent.blocks[3].body (ligne 7640) :
La reprise n’est pas un import, c’est une suite de décisions que personne ne veut prendre à votre place. Les clients et les fournisseurs demandent une règle de dédoublonnage écrite et validée par quelqu’un chez vous, parce qu’une fusion ratée se voit sur la facturation. Les articles obligent à trancher la clé : référence interne ou code-barres, et ce que deviennent les inactifs. La comptabilité ne se reprend pas écriture par écriture mais par balance d’ouverture, à une date arrêtée avec votre expert-comptable. Les stocks se reprennent à une date d’inventaire, pas au fil de l’eau. Chaque enregistrement importé reçoit un identifiant externe issu de l’ancien système, ce qui permet de rejouer l’import sans créer de doublon. La reprise tourne à blanc autant de fois que nécessaire avant la bascule, et le coût dépend de l’état des données, pas de leur volume.\n\nQuand ne pas nous écrire, maintenant. Si votre instance tourne, qu’elle est à jour, sans spécifique, et que votre sujet est le volume de visiteurs, un intégrateur Odoo ne changera rien à votre chiffre d’affaires. Si votre gestion tient dans un tableur et deux processus stables, Odoo est plus lourd que ce que vous avez à porter, et le dire coûte moins cher que de le maintenir. Si vous cherchez quelqu’un qui se déplace, qui décroche en cas d’incident ou qui anime un comité de suivi, ce n’est pas nous : nous travaillons depuis Dijon, à distance, uniquement par écrit, avec une réponse sous vingt-quatre heures ouvrées. Et si vous attendez un devis ferme sans donner accès à la base ni à la liste des modules, nous préférons refuser plutôt qu’annoncer un chiffre que l’ouverture de l’instance viendra démentir.
Aucune valeur factuelle n'est a corriger dans ce texte : les trois affirmations verifiables (identifiant externe rejouable, balance d'ouverture, cle produit) sont conformes a la documentation Odoo. Recommandation editoriale distincte de la correctness : reformuler la troisieme phrase du second paragraphe, aujourd'hui identique caractere pour caractere a celle de la page agence-prestashop (ligne 7481).