Documentation9 min de lecture

Tarifs fournisseurs du catalogue : import Excel, révisions et archivage

Treize modules OCA du dépôt `product-attribute` complètent la fiche produit côté achat dans Odoo 18 Community : `product_supplierinfo_import` **importe les tarifs fournisseurs depuis un fichier Excel** à l'aide de modèles d'import réutilisables, et `product_supplierinfo_revision` crée une **nouvelle période de validité** d'un tarif en appliquant un pourcentage. Les onze autres, du fournisseur principal calculé à l'unité de mesure enfin modifiable.

Indicateurs chiffrés affichés sur un écran

Un catalogue de négoce reçoit chaque année des tarifs fournisseurs sous forme de fichiers Excel — parfois des dizaines de milliers de lignes. Les saisir est impossible, les importer est le seul chemin praticable.

Treize modules communautaires traitent ce segment : l'import, les révisions, l'archivage, et quelques champs qui manquent à la ligne de tarif.

Résumé

Six modules portent la ligne de tarif fournisseur : import Excel avec des modèles d'import réutilisables, extension de cet import pour appliquer une marge de vente en une fois, révision datée par pourcentage, archivage d'une ligne au lieu de sa suppression, commentaire libre par tarif, et association d'un type d'opération à un tarif — pour qu'un même produit ait des prix différents selon le circuit de réception.

Trois concernent le fournisseur du produit : le fournisseur principal calculé comme le moins cher de la liste, une variante calculée à partir de l'ordre des fournisseurs, et une séquence de numérotation de lots par produit.

Quatre portent sur la configuration du produit : la route sur commande signalée par un indicateur sur la fiche, activable variante par variante, deux champs de description commerciale (courte et longue), une équipe commerciale par défaut sur le produit, et la possibilité de modifier l'unité de mesure d'un produit déjà utilisé dans des mouvements.

L'essentiel

  • L'import Excel des tarifs fournisseurs, avec des modèles d'import réutilisables.
  • Une marge de vente appliquée à l'import, pour calculer les prix de vente en une passe.
  • Des révisions datées de tarif : nouvelle période, prix augmenté d'un pourcentage.
  • L'archivage d'une ligne de tarif plutôt que sa suppression — l'historique est conservé.
  • Un type d'opération par tarif : un prix différent selon le circuit de réception.
  • Le fournisseur principal calculé comme le moins cher, ou selon l'ordre défini.
  • La route sur commande activable par variante, et non seulement par modèle.
  • L'unité de mesure modifiable même après des mouvements de stock, sous conditions.

Ce que ces modules ajoutent à l'instance

FamilleModulesNombre
Tarif fournisseurproduct_supplierinfo_import, product_supplierinfo_import_margin, product_supplierinfo_revision, product_supplierinfo_archive, product_supplierinfo_comment, product_supplierinfo_stock_picking_type6
Fournisseur et lotsproduct_main_supplierinfo, product_lot_sequence2
Configuration produitproduct_route_mto, product_variant_route_mto, product_sale_description, product_sale_team, product_uom_updatable5

Les menus ajoutés sont dans Achats ▸ Configuration : l'assistant d'import des tarifs fournisseurs et ses modèles d'import.

Importer un tarif fournisseur sans le ressaisir

Un fournisseur envoie son tarif annuel : un fichier Excel de plusieurs milliers de lignes, avec ses propres colonnes et ses propres références. Le saisir est hors de question ; l'importer suppose de faire correspondre ses colonnes aux champs d'Odoo — à chaque fois.

  1. product_supplierinfo_import importe les tarifs depuis un fichier Excel, en rattachant chaque ligne à un produit existant par un champ de correspondance.
  2. Des modèles d'import réutilisables mémorisent la structure du fichier de chaque fournisseur : on ne refait le mappage qu'une fois.
  3. product_supplierinfo_import_margin ajoute un champ marge de vente à l'assistant, pour appliquer en une passe la marge à tous les produits importés — et donc calculer les prix de vente.

Le modèle d'import est ce qui transforme l'opération en routine : chaque fournisseur a son format, et ce format ne change pas d'une année à l'autre. Sans modèle, l'import annuel redevient un chantier.

L'extension de marge suppose le module qui construit un prix de vente depuis le tarif fournisseur, décrit dans les listes de prix.

Faire vivre une ligne de tarif

ModuleCe qu'il permet
product_supplierinfo_revisionCréer une nouvelle période de validité d'un tarif en appliquant un pourcentage de hausse ou de baisse, l'ancienne étant conservée
product_supplierinfo_archiveArchiver une ligne de tarif au lieu de la supprimer — l'historique des commandes reste lisible
product_supplierinfo_commentUn commentaire libre par ligne : conditions particulières, remarques de négociation
product_supplierinfo_stock_picking_typeAssocier un type d'opération à un tarif — un prix différent selon le circuit de réception

Le premier est le symétrique exact de la révision des listes de prix de vente : on augmente de 3 %, on date, et l'ancien tarif reste consultable. C'est ce qui permet de répondre à « pourquoi payons-nous ce prix ? » un an plus tard.

Le dernier mérite une explication : un même produit peut arriver par deux circuits — livraison directe au chantier ou réception en entrepôt — avec deux prix négociés. Associer le tarif au type d'opération permet au système de choisir le bon.

L'archivage, enfin, résout un dilemme quotidien : supprimer une ligne de tarif obsolète casse la lisibilité de l'historique ; la laisser active fausse les propositions de prix. L'archiver règle les deux.

Qui fournit, et comment on numérote

  • product_main_supplierinfo affiche sur la variante un fournisseur principal calculé : le moins cher de la liste des fournisseurs configurés.
  • product_lot_sequence permet de définir une séquence de numérotation des lots propre à chaque produit, proposée automatiquement à la création d'un lot.

Le premier répond à la question de l'acheteur pressé : chez qui acheter cet article maintenant. Sans lui, il faut ouvrir l'onglet des fournisseurs et comparer.

Le second est la brique dont dépend la création automatique de lots à la réception, déjà rencontrée côté entrepôt : sans séquence par produit, les lots générés portent une numérotation générique, illisible pour les opérateurs.

Voir réceptions et lots automatiques pour le mécanisme complet.

Quatre réglages de la fiche produit

ModuleCe qu'il ajoute
product_route_mtoUn indicateur sur le produit disant s'il est réapprovisionné sur commande, sans ouvrir le détail des routes
product_variant_route_mtoL'activation de la route sur commande variante par variante, et non seulement au niveau du modèle
product_sale_descriptionDeux champs de description commerciale — une courte, une longue au format riche
product_sale_teamUne équipe commerciale par défaut sur le produit — brique technique pour d'autres modules
product_uom_updatableLa modification de l'unité de mesure d'un produit déjà utilisé dans des mouvements, sous conditions

Le deuxième répond à un besoin concret : sur un modèle à variantes, certaines sont tenues en stock et d'autres fabriquées à la commande. Odoo ne permet de choisir qu'au niveau du modèle.

Le dernier lève une restriction d'Odoo : une fois qu'un produit a bougé en stock, son unité de mesure est figée — pour de bonnes raisons de cohérence historique. Le module autorise le changement sous conditions. C'est un outil de reprise de données, à manier avec précaution et à tester sur une copie.

L'équipe commerciale sur le produit est la brique dont dépend l'affectation automatique d'équipe décrite dans clients, portail et organisation.

Limites connues

  • L'import de tarifs suppose une correspondance fiable entre les références du fournisseur et les vôtres : c'est le vrai travail, pas le mappage des colonnes.
  • La marge appliquée à l'import est uniforme : les exceptions se traitent après.
  • Les révisions accumulent des lignes : prévoir l'archivage des périodes anciennes.
  • Le fournisseur principal « le moins cher » ignore le délai et la qualité : c'est un indicateur, pas une décision.
  • product_uom_updatable lève une protection d'Odoo : à réserver à une reprise de données, sur copie d'abord.
  • product_sale_team est une brique technique : sans module consommateur, il n'a pas d'effet visible.

Identité technique

Les treize modules viennent du dépôt OCA product-attribute, branche 18.0, en licence AGPL-3 sauf product_supplierinfo_archive et product_sale_team (LGPL-3). Plusieurs dépendent de purchase, purchase_stock ou stock ; l'import de tarifs s'appuie sur le traitement de fichiers tableur.

Avec cette fiche, les 105 modules du dépôt product-attribute sont couverts. Les familles voisines : la fiche produit, emballages et unités, les listes de prix, catégories et attributs et étiquetage et classification ABC.

Questions fréquentes

Comment importer le tarif annuel d'un fournisseur ?

product_supplierinfo_import importe les tarifs depuis un fichier Excel et mémorise la structure de chaque fournisseur dans des modèles d'import réutilisables : le mappage des colonnes ne se refait pas chaque année. Son extension permet d'appliquer en une passe une marge de vente à tous les produits importés.

Comment augmenter un tarif fournisseur en gardant l'ancien ?

product_supplierinfo_revision crée une nouvelle période de validité en appliquant un pourcentage de hausse ou de baisse, l'ancienne période restant consultable. C'est ce qui permet de répondre, un an plus tard, à la question « pourquoi payons-nous ce prix ? ».

Peut-on avoir deux prix d'achat selon le circuit de livraison ?

Oui, avec product_supplierinfo_stock_picking_type, qui associe un type d'opération à chaque tarif fournisseur. Un même produit livré directement au chantier ou réceptionné en entrepôt peut ainsi porter deux prix négociés distincts.

Peut-on activer la route « sur commande » sur une seule variante ?

En standard, non : la route se configure au niveau du modèle de produit. product_variant_route_mto permet de l'activer variante par variante — utile quand certaines tailles ou coloris sont tenus en stock et d'autres fabriqués à la demande. product_route_mto ajoute l'indicateur qui le signale sur la fiche.

Peut-on changer l'unité de mesure d'un produit déjà utilisé ?

Odoo l'interdit une fois que le produit a bougé en stock, pour préserver la cohérence historique. product_uom_updatable lève cette restriction sous conditions. C'est un outil de reprise de données : à tester sur une copie avant toute utilisation en production.

Se faire accompagner

L'entretien des tarifs fournisseurs est le travail de catalogue le plus ingrat et le plus rentable : il décide de vos prix de revient, donc de vos marges, donc des décisions commerciales prises toute l'année.

Nous industrialisons donc l'import — un modèle par fournisseur, une correspondance de références stabilisée — avant de parler de marges ou de révisions. Une fois l'import fiable, la mise à jour annuelle devient une demi-journée au lieu d'un trimestre. Voir les prestations d'Atalios Consulting ou demander un rappel.

Pour aller plus loin

En résumé

Le tarif fournisseur importé depuis l'Excel du fournisseur avec un modèle réutilisable, révisé par pourcentage en conservant l'historique, archivé plutôt que supprimé, et différencié par circuit de réception. Plus quatre réglages produit, dont l'unité de mesure enfin modifiable en reprise. Parlons de vos prix de revient.

Documentation OCAProduitsAchats

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