Documentation9 min de lecture

Tarifs fournisseurs : prix, codes, multiples et recommandation d'achat

Seize modules OCA du dépôt `purchase-workflow` traitent le tarif fournisseur dans Odoo 18 Community : `product_supplierinfo_qty_multiplier` impose une **quantité multiple obligatoire** — le carton de six — et `purchase_order_supplierinfo_update` met à jour **le prix et la remise réellement obtenus** sur la fiche fournisseur à la confirmation. Les quatorze autres, du code produit du fournisseur à l'assistant de recommandation de réassort.

Indicateurs chiffrés affichés sur un écran

Le tarif fournisseur est la donnée la plus vivante d'un ERP d'achat : elle change à chaque commande, elle diffère d'un conditionnement à l'autre, et elle n'est presque jamais à jour.

Seize modules communautaires s'attaquent à cet entretien — et à la question qui vient juste après : que faut-il commander, et combien ?

Résumé

Quatre modules tiennent le tarif à jour : mise à jour du prix en un clic depuis une ligne de commande, mise à jour automatique du prix et de la remise à la confirmation, désactivation de la création automatique de tarifs, et correction de la valorisation de marchandises déjà reçues quand le prix change avant la facturation.

Quatre parlent le langage du fournisseur : son code produit affiché et synchronisé sur les lignes, un contact d'achat distinct du fournisseur commercial, une quantité multiple obligatoire, et le fournisseur principal calculé automatiquement sur chaque produit.

Le reste aide à décider : le dernier prix d'achat affiché sur la fiche produit, la restriction des produits à ceux que le fournisseur fournit réellement, un bouton d'accès aux produits d'un fournisseur, la modification du prix d'achat depuis la réception, et un assistant de recommandation de réassort fondé sur l'historique des livraisons clients et des réceptions — avec filtrage par marque, unité secondaire et export tableur.

L'essentiel

  • Le tarif mis à jour à la confirmation avec le prix et la remise réellement obtenus.
  • La création automatique de tarifs désactivable — sinon chaque commande crée une ligne de tarif.
  • Le code produit du fournisseur affiché sur les lignes de commande.
  • Une quantité multiple obligatoire par tarif fournisseur : le carton de six est respecté.
  • Le dernier achat affiché sur la fiche produit : fournisseur, date, prix unitaire.
  • Les produits restreints à ceux que ce fournisseur fournit réellement.
  • Un assistant de recommandation fondé sur les sorties clients et les entrées fournisseur.
  • La valorisation corrigée quand le prix change après réception et avant facturation.

Ce que ces modules ajoutent à l'instance

FamilleModulesNombre
Tenue du tarifpurchase_order_supplierinfo_update, product_supplierinfo_update_price, product_supplierinfo_disable_autocreation, purchase_stock_cost_update, stock_move_purchase_price_update5
Langage du fournisseurproduct_supplier_code_purchase, product_supplierinfo_purchase_contact, product_supplierinfo_qty_multiplier, product_main_seller4
Aide à la décisionpurchase_last_price_info, purchase_allowed_product, partner_supplierinfo_smartbutton3
Recommandation de réassortpurchase_order_product_recommendation, purchase_order_product_recommendation_brand, purchase_order_product_recommendation_secondary_unit, purchase_order_product_recommendation_xlsx4

Aucun n'ajoute de menu : tous enrichissent la fiche produit, la fiche fournisseur, le tarif fournisseur ou la commande d'achat.

Tenir le tarif à jour sans y penser

Le problème est connu de tout acheteur : le tarif fournisseur enregistré dans l'ERP date de la dernière négociation, et le prix réellement payé date de la dernière commande. Les deux divergent silencieusement, et c'est le premier qui sert à valoriser les stocks et à calculer les marges prévisionnelles.

ModuleQuandCe qu'il met à jour
purchase_order_supplierinfo_updateÀ la confirmation de la commandeLe prix et la remise réellement pratiqués
product_supplierinfo_update_priceEn un clic depuis une ligne de commandeLe prix du tarif correspondant
product_supplierinfo_disable_autocreation—Désactive la création automatique de tarifs à la validation

Le troisième est le complément indispensable des deux premiers. Par défaut, Odoo crée une ligne de tarif fournisseur à chaque validation de commande : au bout d'un an, une référence achetée chez trois fournisseurs porte trente lignes de tarif, et plus personne ne sait laquelle fait foi.

Deux autres modules corrigent la valorisation quand le prix bouge tard :

  • purchase_stock_cost_update corrige la valorisation de marchandises déjà reçues depuis le bon de commande, quand le prix d'une ligne change après la réception mais avant la facturation.
  • stock_move_purchase_price_update permet de modifier le prix unitaire d'achat depuis la réception elle-même, sans revenir sur la commande.

Ces deux cas sont fréquents à l'import, où le prix définitif dépend du change ou de frais annexes connus tard. Le taux de change négocié est traité dans la facturation fournisseur.

Parler le langage du fournisseur

ModuleCe qu'il apportePourquoi
product_supplier_code_purchaseLe code produit du fournisseur affiché et synchronisé sur les lignesCommander avec sa référence, pas la vôtre
product_supplierinfo_purchase_contactUn contact d'achat distinct du fournisseur commercial sur le tarifLe groupe qui négocie n'est pas l'entité qui livre
product_supplierinfo_qty_multiplierUne quantité multiple obligatoire par tarifLe fournisseur ne vend que par carton de six
product_main_sellerLe fournisseur principal calculé sur chaque produitSavoir qui fournit quoi sans ouvrir chaque fiche

Le premier évite la traduction manuelle que fait l'acheteur entre votre codification et celle du fournisseur — traduction qui produit, une fois sur vingt, une commande pour la mauvaise référence.

Le troisième est une vraie sécurité : commander 10 unités chez un fournisseur qui ne livre que par 6 produit soit un refus, soit une livraison de 12 facturée 12. Le module arrondit à la saisie, et prévient l'utilisateur.

Le deuxième traite une subtilité de groupe : le tarif est négocié avec une centrale, mais la commande part à une agence. Distinguer les deux rôles sur le tarif évite de dupliquer les fiches.

Décider quoi commander

Les trois aides immédiates

  • purchase_last_price_info affiche sur la fiche produit les informations du dernier achat confirmé : fournisseur, date, prix unitaire. La question « on l'a payé combien la dernière fois ? » trouve sa réponse sans requête.
  • purchase_allowed_product restreint les produits sélectionnables sur les commandes et les factures fournisseur à ceux que ce partenaire fournit réellement, d'après les tarifs enregistrés.
  • partner_supplierinfo_smartbutton ajoute sur la fiche fournisseur un bouton ouvrant la liste des produits qu'il fournit.

Le deuxième évite une erreur banale et coûteuse : commander une référence chez un fournisseur qui ne la vend pas, parce que son nom est apparu dans une liste déroulante exhaustive.

L'assistant de recommandation

purchase_order_product_recommendation suggère les quantités à commander pour le fournisseur sélectionné, en se basant sur l'historique des livraisons aux clients et des réceptions fournisseur. C'est un calcul de réassort, pas une suggestion commerciale.

Trois extensions l'adaptent : filtrage par marque quand le catalogue du fournisseur est large, saisie en unité secondaire d'achat, et export tableur de la liste recommandée — ce dernier étant précieux pour envoyer la proposition au fournisseur ou la faire valider.

C'est le symétrique de la recommandation côté ventes, avec une différence de fond : côté vente on rappelle ce que le client achète, côté achat on calcule ce qui s'est vendu.

Pour un réassort pilote par un vrai calcul des besoins, voir le MRP multi-niveaux : l'assistant est un outil d'acheteur, le MRP un moteur de planification.

Limites connues

  • La mise à jour automatique du tarif écrase la négociation précédente : c'est voulu, et cela demande que les prix saisis soient justes.
  • Sans désactivation de la création automatique, les tarifs fournisseurs se multiplient et deviennent illisibles.
  • La quantité multiple suppose un tarif renseigné par fournisseur et par produit : sans donnée, pas de contrôle.
  • purchase_allowed_product bloque les achats ponctuels chez un fournisseur non référencé pour ce produit : prévoir la procédure de référencement.
  • La recommandation dépend de l'historique : sans ventes ni réceptions passées, elle ne propose rien.
  • La correction de valorisation après réception touche à la comptabilité de stock : à tester sur une copie avant mise en production.

Identité technique

Les seize modules viennent du dépôt OCA purchase-workflow, branche 18.0, en licence AGPL-3 sauf product_supplierinfo_disable_autocreation et purchase_stock_cost_update (LGPL-3). Quatre dépendent de modules d'autres dépôts : marque produit (brand), notifications web (web), export tableur (reporting-engine) et une extension d'héritage de vues (server-ux).

Les familles voisines : les réceptions fournisseurs, la facturation fournisseur et achats : types, remises et blocages.

Questions fréquentes

Comment garder les tarifs fournisseurs à jour ?

purchase_order_supplierinfo_update met à jour le prix et la remise réellement pratiqués sur la fiche fournisseur du produit à la confirmation de la commande ; product_supplierinfo_update_price fait la même chose en un clic depuis une ligne. Ajoutez product_supplierinfo_disable_autocreation, sans quoi chaque validation crée une nouvelle ligne de tarif et la liste devient illisible.

Peut-on imposer de commander par multiples de six ?

Oui : product_supplierinfo_qty_multiplier définit une quantité multiple obligatoire au niveau du tarif fournisseur. À la saisie, la quantité est ajustée et l'utilisateur prévenu. Sans ce contrôle, commander 10 chez un fournisseur qui ne vend que par 6 produit un refus ou une livraison de 12 facturée 12.

Comment commander avec la référence du fournisseur ?

product_supplier_code_purchase affiche et synchronise le code produit du fournisseur sur les lignes de commande. L'acheteur cesse de traduire mentalement entre votre codification et celle du fournisseur — traduction qui produit, de temps en temps, une commande pour la mauvaise référence.

Sur quoi repose la recommandation d'achat ?

Sur l'historique : purchase_order_product_recommendation calcule les quantités à commander pour le fournisseur sélectionné à partir des livraisons aux clients et des réceptions fournisseur passées. Trois extensions ajoutent le filtrage par marque, la saisie en unité secondaire et l'export tableur de la proposition.

Que faire si le prix d'achat change après la réception ?

purchase_stock_cost_update corrige la valorisation des marchandises déjà reçues depuis le bon de commande, tant que la facture n'est pas enregistrée ; stock_move_purchase_price_update permet de modifier le prix directement depuis la réception. C'est le cas courant à l'import, où le prix définitif dépend du change ou de frais connus tardivement.

Se faire accompagner

Le tarif fournisseur est la donnée dont la qualité détermine tout le reste : la valorisation du stock, la marge prévisionnelle, la pertinence d'un réassort automatique. Et c'est celle que personne n'a le temps d'entretenir.

Nous privilégions donc l'entretien automatique — prix mis à jour à la confirmation, création de tarifs désactivée — plutôt que les campagnes de mise à jour manuelle, qui ne survivent jamais au deuxième trimestre. Voir les prestations d'Atalios Consulting ou demander un rappel.

Pour aller plus loin

En résumé

Le tarif fournisseur cesse de dériver : il se met à jour au prix réellement obtenu, il parle la langue du fournisseur — son code, ses multiples, son contact — et il alimente un assistant de réassort fondé sur ce qui est sorti et ce qui est entré. Parlons de vos conditions d'achat.

Documentation OCAAchatsProduits

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