Sur un catalogue en ligne, deux choses décident de la conversion : trouver le produit, et savoir s'il est disponible. La boutique d'Odoo recharge la page à chaque filtre coché, ne trie pas par défaut, et n'affiche la disponibilité qu'une fois la fiche ouverte.
Vingt modules communautaires corrigent ces points — et terminent les deux dépôts d'e-commerce.
Résumé
Quatre modules traitent les filtres d'attributs : plusieurs valeurs cochées avant validation, les valeurs regroupées par catégorie, les valeurs déjà cochées remontées en tête, et les valeurs inutilisées masquées.
Quatre modules traitent la navigation : un tri par défaut défini par site, un fil d'Ariane affichant toute la hiérarchie de catégories, les catégories vides masquées, et un bloc de contenu affichant la hiérarchie des catégories jusqu'à quatre niveaux.
Six modules traitent la fiche produit : une description HTML dédiée à l'e-commerce, des images et noms alternatifs d'attributs affichés comme pictogrammes, la référence interne affichée à côté du nom, l'étiquette énergétique européenne, la recherche par code-barres, et la vente en unités secondaires.
Six modules enfin traitent le stock et les liens : la disponibilité sur les vignettes de la liste, la date de réapprovisionnement affichée en rupture, la persistance de l'option de liste de souhaits, des liens typés entre articles pour la vente croisée et la montée en gamme, leur limitation dans le temps, leur précision à la variante, et des alias d'attributs.
L'essentiel
- Plusieurs filtres cochés avant validation, sans rechargement.
- Les valeurs d'attribut inutilisées masquées du filtre.
- Un tri par défaut défini par site.
- Les catégories vides masquées de la boutique.
- La disponibilité affichée sur les vignettes, sans ouvrir la fiche.
- La date de réapprovisionnement affichée en rupture de stock.
- Des liens typés entre articles : vente croisée, montée en gamme.
- Ces liens limitables dans le temps et précisables à la variante.
Ce que ces modules ajoutent à l'instance
| Famille | Modules | Nombre |
|---|---|---|
| Filtres | website_sale_attribute_filter_form_submit, website_sale_product_attribute_filter_category, website_sale_product_attribute_filter_order, website_sale_product_attribute_value_filter_existing | 4 |
| Navigation | website_sale_product_sort, website_sale_category_breadcrumb, website_sale_hide_empty_category, website_snippet_product_category | 4 |
| Fiche produit | website_sale_product_description, website_sale_product_detail_attribute_image, website_sale_product_reference_displayed, website_sale_product_eprel, website_sale_barcode_search, website_sale_secondary_unit | 6 |
| Stock | website_sale_stock_list_preview, website_sale_stock_provisioning_date, website_sale_wishlist_keep | 3 |
| Liens entre produits | product_template_multi_link, product_template_multi_link_date_span, product_variant_multi_link, product_alias | 4 |
Les menus : Site Web ▸ eCommerce ▸ Produits ▸ Attributes, Attribute Categories et eCommerce Categories, Ventes ▸ Configuration ▸ Produits ▸ Product Links et Product Template Link Type.
Les filtres d'attributs
Sur un catalogue de mille références, filtrer par attribut est le seul chemin praticable. Mais recharger la page à chaque case cochée rend l'exercice pénible : trois critères, trois rechargements, et une liste qui remonte en haut à chaque fois.
website_sale_attribute_filter_form_submit permet de cocher plusieurs valeurs puis de valider en une fois.
website_sale_product_attribute_filter_categoryregroupe les valeurs d'attribut par catégorie dans le filtre, au lieu d'une liste à plat. L'option s'active en mode édition du site, onglet de personnalisation.website_sale_product_attribute_filter_orderfait remonter en tête les valeurs déjà cochées par le visiteur.website_sale_product_attribute_value_filter_existingmasque les valeurs qui n'existent sur aucune variante actuellement affichée.
Le dernier corrige le défaut le plus décourageant d'un filtre : proposer une taille, une couleur ou une puissance qui, une fois cochée, renvoie zéro résultat. Le visiteur en déduit que le site est vide.
La navigation dans le catalogue
website_sale_product_sort(version 18.0.1.0.0) définit un critère de tri par défaut par site — nouveautés, prix croissant — au lieu de l'ordre arbitraire du standard.website_sale_category_breadcrumbaffiche toute la hiérarchie des catégories parentes dans le fil d'Ariane de la fiche produit, au lieu d'un seul niveau.website_sale_hide_empty_categorymasque les catégories publiques sans produit vendable, directement ou dans leurs sous-catégories.website_snippet_product_categoryajoute un bloc de contenu glissable affichant la hiérarchie des catégories jusqu'à quatre niveaux.
Le masquage des catégories vides est un module de référencement autant que d'ergonomie : une catégorie vide est une page sans contenu, que les moteurs indexent et dévaluent.
Le tri par défaut mérite d'être réglé en connaissance de cause : trier par nouveautés met en avant les derniers articles créés, ce qui peut remonter des références techniques créées pour un besoin ponctuel.
La fiche produit
website_sale_product_descriptionajoute une description HTML dédiée à l'e-commerce, distincte des autres descriptions du produit, affichée sur la fiche de la boutique.website_sale_product_detail_attribute_imageassocie une image, un nom alternatif et un statut de publication à un attribut, et un nom alternatif à chaque valeur — affichés comme pictogrammes sur la fiche.website_sale_product_reference_displayedaffiche la référence interne à côté du nom, dans la liste, sur la fiche et dans le panier.website_sale_product_eprelaffiche l'étiquette énergétique européenne et un lien vers la fiche d'information du registre. Il dépend d'un module de registre européen.website_sale_barcode_searchpermet de retrouver un article par son code-barres, en plus du nom et de la référence.website_sale_secondary_unit(version 18.0.1.0.2) permet de vendre en unités secondaires — cartons, palettes, lots — depuis la boutique.
L'étiquette énergétique n'est pas une option décorative : son affichage est une obligation réglementaire européenne pour les produits concernés, et l'absence du lien vers le registre expose à une sanction.
La description dédiée à l'e-commerce répond à un conflit permanent : la description d'une ligne de commande sert au préparateur et au comptable, la description d'une fiche boutique sert à vendre. Les deux n'ont ni la même longueur ni le même vocabulaire.
La recherche par code-barres et la vente en unités secondaires visent le même public : un client professionnel qui connaît ses articles par leur code et commande par cartons.
Le stock et les liens entre produits
website_sale_stock_list_preview affiche la disponibilité directement sur les vignettes de la liste, sans obliger à ouvrir la fiche. Il s'appuie sur les champs de disponibilité déjà présents dans l'onglet e-commerce du produit.
website_sale_stock_provisioning_date affiche la prochaine date de réapprovisionnement quand le produit est en rupture, calculée depuis le mouvement de stock entrant.
Afficher « en réapprovisionnement, disponible le 12 » au lieu de « rupture de stock » est la différence entre un visiteur qui attend et un visiteur qui commande ailleurs. L'information existe dans l'ERP ; le standard ne la montre pas.
website_sale_wishlist_keep rend persistante l'option permettant de garder un produit dans la liste de souhaits après l'avoir ajouté au panier.
Les liens entre articles
product_template_multi_link (version 18.0.1.0.1) crée des liens typés entre articles : vente croisée, montée en gamme, accessoires, pièces compatibles. Référentiels sous Ventes ▸ Configuration ▸ Produits ▸ Product Links et Product Template Link Type.
product_template_multi_link_date_spanpermet de limiter un lien dans le temps, par date de début et de fin.product_variant_multi_linkprécise quelles variantes exactes sont concernées par un lien, et non seulement les articles.product_alias(version 18.0.1.0.0) crée des alias pour les configurations de valeurs d'attribut.
La limitation dans le temps est le détail qui rend les liens exploitables en commerce : une suggestion d'accessoire de saison, une offre de montée en gamme pendant une opération, un produit de remplacement le temps d'une rupture.
Limites connues
- Les READMEs de ce dépôt ne portent pas de section d'origine : les versions citées ici sont relevées depuis les manifestes GitHub de la branche 18.0, et la plupart des modules n'en portent qu'une.
- Le dépôt existe en double :
e-commerceetecommercepartagent le même contenu. - Masquer les valeurs d'attribut inutilisées coûte un calcul par affichage de la liste.
- La date de réapprovisionnement affiche une prévision : un retard fournisseur devient une promesse non tenue, visible publiquement.
website_sale_product_epreldépend deproduct_eprel: le registre européen est un module à part, et les données produit à renseigner.- Les liens entre produits se saisissent article par article : sur un catalogue large, c'est un travail de fond, pas un paramétrage.
- Le regroupement des filtres par catégorie dépend du module de comparaison (
website_sale_comparison) et de l'activation des fonctionnalités techniques. - La référence interne affichée publiquement révèle votre codification : à vérifier si elle encode une marge ou un fournisseur.
Identité technique
Les vingt modules viennent du dépôt OCA e-commerce, branche 18.0 — présent en double sous le nom ecommerce, et dont les modules sont désormais tous documentés ici. Ils sont en licence AGPL-3. Les dépendances : website_sale pour la plupart, website_sale_stock pour les deux modules de stock, website_sale_comparison pour le regroupement des filtres, website_sale_wishlist pour la liste de souhaits, sale_order_secondary_unit pour les unités secondaires, product_eprel pour l'étiquette énergétique, sale et product pour les liens entre articles.
L'autre fiche du dépôt : e-commerce B2B : masquer les prix, exiger la TVA, sauter le paiement.
Questions fréquentes
Peut-on cocher plusieurs filtres avant de valider sur une boutique Odoo ?
Oui, avec website_sale_attribute_filter_form_submit. Sans lui, la page se recharge à chaque case cochée : trois critères, trois rechargements, et une liste qui remonte en haut chaque fois. Sur un catalogue de mille références, c'est le filtre qui décide de la navigation.
Comment éviter qu'un filtre renvoie zéro résultat ?
website_sale_product_attribute_value_filter_existing masque les valeurs d'attribut qui n'existent sur aucune variante affichée. C'est le défaut le plus décourageant d'un filtre : proposer une taille ou une couleur qui, une fois cochée, ne renvoie rien — le visiteur en déduit que le site est vide.
Peut-on afficher la disponibilité sans ouvrir la fiche produit ?
Oui : website_sale_stock_list_preview l'affiche sur les vignettes de la liste, en s'appuyant sur les champs de disponibilité déjà présents dans l'onglet e-commerce du produit.
Peut-on indiquer quand un produit en rupture sera de nouveau disponible ?
Oui, avec website_sale_stock_provisioning_date, qui affiche la prochaine date de réapprovisionnement calculée depuis le mouvement entrant. « Disponible le 12 » au lieu de « rupture de stock » retient un visiteur. Attention : c'est une prévision, et un retard fournisseur devient une promesse non tenue publiquement.
Peut-on proposer des ventes croisées limitées dans le temps ?
Oui : product_template_multi_link crée des liens typés entre articles — vente croisée, montée en gamme, accessoires —, product_template_multi_link_date_span les limite dans le temps, et product_variant_multi_link les précise à la variante. La saisie se fait article par article : c'est un travail de fond.
Se faire accompagner
Sur un catalogue en ligne, deux chiffres se mesurent et décident de tout : la part de visiteurs qui utilisent les filtres, et la part qui quitte une fiche en rupture. Les deux se traitent par des modules, et les deux se vérifient dans les statistiques du site avant et après.
Nous instrumentons donc la navigation avant de l'optimiser, puis nous branchons la disponibilité réelle — y compris la date de réapprovisionnement, à condition que vos dates d'approvisionnement soient fiables. Une date fausse coûte plus qu'une absence de date. Voir les prestations d'Atalios Consulting ou demander un rappel.
Pour aller plus loin
- E-commerce B2B : masquer les prix, exiger la TVA, sauter le paiement
- Conditionnements, unités et lots en vente
En résumé
Sur un catalogue en ligne, deux choses décident de la conversion : trouver le produit et savoir s'il est disponible. Odoo recharge la page à chaque filtre, ne trie pas par défaut, et cache la disponibilité derrière la fiche. Vingt modules corrigent ces points. Parlons de votre catalogue.