Documentation11 min de lecture

Variantes, packs, configurateur, canaux de vente et commissions

Le module OCA `product_variant_sale_price` (dépôt `product-variant`, version 18.0.1.0.1, licence AGPL-3) permet d'**écrire des prix fixes sur les variantes** — au lieu du mécanisme standard, qui n'autorise qu'un prix de base et des suppléments par valeur d'attribut. Trente-six autres modules traitent les packs, le configurateur, les canaux de vente et les commissions d'agents.

Variantes de produits présentées en rayon

Cinq sujets de catalogue et de vente n'ont pas de réponse satisfaisante dans Odoo : fixer un prix par variante, vendre un lot comme un article, configurer un produit avec des règles de compatibilité, segmenter par canal de vente, et commissionner des agents.

Trente-sept modules communautaires y répondent, et terminent sept dépôts.

Résumé

Dix modules traitent les variantes : des prix fixes par variante, une référence interne générée automatiquement, un nom et une description spécifiques, la description reprise sur la ligne de commande, des taxes par valeur d'attribut, l'archivage d'une valeur d'attribut référencée par des variantes archivées, le changement de valeur d'une variante, et un configurateur de variantes avec sa création à la demande et son volet vente.

Cinq modules traitent les packs : un produit déclaré pack, vendable, achetable, et deux modules assurant le calcul des quantités disponibles quand les composants sont stockables.

Trois modules traitent le configurateur de produit : un socle avec ses gabarits configurables, ses attributs et ses restrictions de configuration, son volet vente, et son volet nomenclature avec ses jeux d'attributs.

Dix modules traitent les canaux de vente : un canal, son lien aux catégories, aux produits, aux contacts, et quatre modules d'export vers un moteur de recherche — plus les commandes ouvertes et la préréservation de stock avant confirmation.

Neuf modules enfin traitent les commissions d'agents : un socle avec ses agents, ses types de commission et ses règlements, le branchement à la facturation, un calcul par formule, un type d'agent commercial salarié, et quatre modules de critères — produit, liste de prix, indicateur de suivi, commercial.

L'essentiel

  • Des prix fixes par variante, au lieu de suppléments par attribut.
  • Des taxes par valeur d'attribut.
  • Un produit vendu comme pack, avec ses quantités disponibles justes.
  • Un configurateur avec restrictions de compatibilité.
  • Des canaux de vente liés aux produits, catégories et contacts.
  • Des commandes ouvertes et leurs lignes de soumission.
  • La préréservation du stock avant confirmation de commande.
  • Des commissions d'agents avec règlements et calcul par formule.

Ce que ces modules ajoutent à l'instance

DépôtModulesNombre
product-variantproduct_variant_sale_price, product_variant_default_code, product_variant_name, product_variant_specific_description, sale_order_line_variant_description, product_variant_attribute_tax, product_attribute_value_archive, product_variant_change_attribute_value, product_variant_configurator, product_variant_configurator_manual_creation, sale_variant_configurator11
product-packproduct_pack, sale_product_pack, purchase_product_pack, stock_product_pack, sale_stock_product_pack5
product-configuratorproduct_configurator, product_configurator_sale, product_configurator_mrp3
sale-channelsale_channel, sale_channel_category, sale_channel_product, sale_channel_partner, sale_channel_search_engine, sale_channel_search_engine_category, sale_channel_search_engine_product7
sale-blanketsale_blanket_order1
sale-prebooksale_stock_prebook, sale_stock_prebook_stock_available_to_promise_release2
commissioncommission_oca, account_commission_oca, sale_commission_oca, commission_formula_oca, hr_commission_oca, sale_commission_oca_product_criteria, sale_commission_oca_product_criteria_semaphore, sale_commission_pricelist_oca, sale_commission_salesman9

Les menus : une application Commissions avec ses agents, types et règlements ; une application Configurator avec ses gabarits, attributs et restrictions ; Ventes ▸ Configuration ▸ Canaux de vente ; Ventes ▸ Commandes ▸ Soumissions et Ligne de soumission ; Facturation ▸ Commissions et Facturation ▸ Analyse ▸ Gestion ▸ Commission Analysis.

Les variantes : prix, référence, description

Le mécanisme de variantes d'Odoo part d'un prix de base et ajoute des suppléments par valeur d'attribut. Cela marche pour un tee-shirt dont la taille XXL coûte deux euros de plus. Cela ne marche pas pour un catalogue où chaque variante a un prix négocié, sans logique additive.

product_variant_sale_price permet d'écrire des prix fixes sur les variantes. C'est la correction la plus demandée du mécanisme.

  • product_variant_default_code génère automatiquement la référence interne d'une variante — à partir de ses valeurs d'attribut.
  • product_variant_name et product_variant_specific_description donnent à une variante un nom et une description propres, et sale_order_line_variant_description reprend cette description sur la ligne de commande.
  • product_variant_attribute_tax définit des taxes par valeur d'attribut — utile quand une caractéristique change le régime fiscal.
  • product_attribute_value_archive permet d'archiver une valeur d'attribut encore référencée par des variantes archivées.
  • product_variant_change_attribute_value permet de changer la valeur d'attribut d'une variante.

Trois modules forment un configurateur de variantes : un socle abstrait, un assistant de création de variantes à la demande, et son volet vente.

La création à la demande répond à un problème de volume : un produit à cinq attributs de cinq valeurs produit 3 125 variantes, dont la plupart n'existeront jamais. Les créer à la demande garde le catalogue exploitable.

L'archivage d'une valeur d'attribut référencée est un module de nettoyage : sans lui, une valeur devenue obsolète reste active parce que des variantes archivées la citent.

Les packs et le configurateur

product_pack permet de déclarer un produit comme pack — un lot d'articles vendu comme un seul. Quatre modules l'étendent : la vente, l'achat, le stock, et une compatibilité quand les composants sont stockables.

Le module de stock est le plus important des cinq : sans lui, la quantité disponible d'un pack n'a aucun sens — Odoo compte le pack comme un article, alors que sa disponibilité dépend de celle du composant le plus rare.

product_configurator fournit un socle de configuration de produit avec son application : des gabarits configurables, des variantes configurables, des attributs et leurs valeurs, et des restrictions de configuration.

  • product_configurator_sale apporte le volet vente : configurer le produit depuis la commande.
  • product_configurator_mrp apporte le volet nomenclature, avec des jeux d'attributs produit — la nomenclature s'adapte à la configuration choisie.

Les restrictions de configuration sont ce qui distingue un configurateur d'une liste d'options : elles expriment les incompatibilités — telle motorisation exclut telle finition — et empêchent de configurer un produit qu'on ne saurait pas fabriquer.

Les packs et les nomenclatures de kits sont aussi traités dans conditionnements, unités et lots en vente.

Les canaux de vente, les commandes ouvertes, la préréservation

sale_channel introduit la notion de canal de vente, avec son référentiel sous Ventes ▸ Configuration ▸ Canaux de vente. Trois modules le relient aux catégories, aux produits et aux contacts.

Quatre modules exportent vers un moteur de recherche : un module abstrait de configuration par canal, et deux implémentations exportant les catégories et les produits selon leur rattachement au canal.

Le canal de vente est la dimension qui manque à une entreprise vendant par plusieurs voies : boutique, marché en ligne, revendeurs, force de vente. Le même produit n'a pas le même prix, la même description ni la même disponibilité selon le canal.

sale_blanket_order (version 18.0.1.2.2) apporte les commandes ouvertes : un engagement de volume sur une période, décliné en commandes de livraison. Menus Ventes ▸ Commandes ▸ Soumissions et Ligne de soumission.

C'est le contrat-cadre du négoce et de l'industrie : le client s'engage sur un volume annuel, et appelle sa marchandise au fil de l'eau.

sale_stock_prebook (LGPL-3) permet de préréserver le stock d'une commande avant de la confirmer, avec une extension vers le mécanisme de disponible à promettre.

La préréservation répond à une situation commerciale précise : un devis dont le client va probablement signer, sur une marchandise rare. Sans préréservation, le stock part sur une autre commande entre-temps — et le devis signé ne peut plus être livré.

Les commissions d'agents

commission_oca pose le socle : une application Commissions avec ses agents, ses types de commission et ses règlements.

account_commission_oca le branche sur la facturation : les commissions se calculent sur les factures, avec une analyse des commissions et la création de factures de commission sous Facturation ▸ Commissions.

Calculer les commissions sur la facture et non sur la commande est le choix structurant : une commande annulée ne commissionne pas, et une facture impayée non plus — ce que tout contrat d'agent prévoit, et que presque aucun tableur de commission ne respecte.

  • commission_formula_oca ajoute un calcul par formule Python, en plus des deux modes du socle.
  • hr_commission_oca ajoute un type d'agent commercial salarié, reliant les commissions aux ressources humaines.
  • sale_commission_oca branche les commissions sur les ventes, avec quatre modules de critères : par produit, par liste de prix, par indicateur de suivi, et par commercial.

Les critères par produit et par liste de prix répondent à la réalité des contrats d'agent : un taux différent selon la gamme, et un taux réduit sur les ventes à tarif négocié.

Le type d'agent salarié est une distinction utile : un commercial salarié commissionné et un agent commercial indépendant n'ont ni le même traitement comptable, ni le même traitement social.

Limites connues

  • Cinq modules ont un README réduit à leur catégorie : trois modules de variante et deux de description.
  • Les prix fixes par variante remplacent une logique, ils ne s'y ajoutent pas : décider lequel des deux mécanismes pilote le prix.
  • La quantité disponible d'un pack n'a de sens qu'avec stock_product_pack : sans lui, Odoo compte le pack comme un article indépendant.
  • Le configurateur est un projet de modélisation : les restrictions de compatibilité se recensent avant de s'écrire.
  • Les modules d'export vers un moteur de recherche dépendent de connector_search_engine : une brique d'un autre dépôt.
  • Les commandes ouvertes créent un engagement : leur suivi — volume appelé, reste à livrer, date limite — est un travail commercial.
  • La préréservation immobilise du stock sur un devis : fixer une durée de validité, sinon le stock se bloque sur des devis morts.
  • Les commissions sur facture supposent que les factures soient à jour : un retard de facturation retarde la commission, ce qui doit être annoncé aux agents.
  • Le calcul de commission par formule est du code dans la base : à documenter et à restreindre.

Identité technique

Les trente-sept modules viennent de sept dépôts OCA, branche 18.0 — product-variant, product-pack, product-configurator, sale-channel, sale-blanket, sale-prebook et commission —, désormais tous documentés ici. Trente-cinq sont en AGPL-3, deux en LGPL-3. Les dépendances externes : product, sale, sale_management, purchase, stock, account, mrp, hr, uom, connector_search_engine, sale_semaphore et stock_available_to_promise_release.

Voir aussi conditionnements, unités et lots en vente et disponible à promettre.

Questions fréquentes

Peut-on fixer un prix différent par variante de produit ?

Oui, avec product_variant_sale_price. Le mécanisme standard part d'un prix de base et ajoute des suppléments par valeur d'attribut : cela marche pour un tee-shirt dont le XXL coûte deux euros de plus, pas pour un catalogue où chaque variante a un prix négocié sans logique additive.

Comment éviter de créer trois mille variantes inutiles ?

Avec product_variant_configurator_manual_creation, qui crée les variantes à la demande. Un produit à cinq attributs de cinq valeurs produit 3 125 variantes, dont la plupart n'existeront jamais — les créer à la demande garde le catalogue exploitable.

La quantité disponible d'un pack est-elle juste dans Odoo ?

Pas sans stock_product_pack : Odoo compte le pack comme un article indépendant, alors que sa disponibilité dépend de celle du composant le plus rare. C'est le plus important des cinq modules de pack.

Peut-on préréserver du stock sur un devis non confirmé ?

Oui, avec sale_stock_prebook. C'est le cas d'un devis qu'un client va probablement signer, sur une marchandise rare : sans préréservation, le stock part sur une autre commande entre-temps. Fixez une durée de validité, sinon le stock se bloque sur des devis morts.

Les commissions se calculent-elles sur la commande ou sur la facture ?

Sur la facture, avec account_commission_oca, et c'est le choix structurant : une commande annulée ne commissionne pas, et une facture impayée non plus — ce que tout contrat d'agent prévoit et que presque aucun tableur de commission ne respecte. En contrepartie, un retard de facturation retarde la commission.

Se faire accompagner

Ces cinq sujets ont en commun d'être des décisions de modélisation, non de paramétrage : comment le prix se forme, ce qu'est un pack, quelles configurations sont possibles, par quels canaux on vend, et sur quelle base on commissionne. Les modules existent ; la difficulté est en amont.

Nous tranchons donc d'abord la règle de prix — variante fixe ou supplément par attribut, pas les deux — et la base de commissionnement, parce que ces deux décisions sont les plus difficiles à reprendre après coup. Voir les prestations d'Atalios Consulting ou demander un rappel.

Pour aller plus loin

En résumé

Cinq sujets de catalogue et de vente n'ont pas de réponse satisfaisante dans Odoo : fixer un prix par variante, vendre un lot comme un article, configurer avec des règles de compatibilité, segmenter par canal, et commissionner des agents. Trente-sept modules y répondent. Parlons de votre catalogue.

Documentation OCAVentesOdoo Community

Partager

Fiches connexes

Baies de serveurs dans une salle machine
Le module OCA `queue_job` (dépôt `queue`, version 18.0.3.4.1, licence LGPL-3) ajoute à Odoo une **file de travaux de fond** avec ses canaux, ses fonctions et ses tâches, sous le menu **File d'attente des tâches** : c'est la brique dont dépendent plus de quarante modules communautaires, et la première à surveiller en exploitation. Vingt-six autres modules traitent les composants, la configuration hors base, l'impression serveur et l'IoT.
Lire la suite
Documentation OCA, Exploitation
Câbles réseau branchés sur un commutateur
Le module OCA `endpoint` (dépôt `web-api`, version 18.0.1.1.4, licence LGPL-3) permet de **déclarer un point d'entrée HTTP depuis l'interface**, sous **Paramètres ▸ Technique ▸ Endpoints** : une adresse, une méthode, un traitement — sans écrire de module. Vingt-trois autres modules traitent le cache, les imports par sessions, les échanges de factures et l'agenda.
Lire la suite
Documentation OCA, Intégration