Le constructeur de site d'Odoo est inclus dans la version Community, et il suffit pour un site vitrine ou une boutique de taille raisonnable. Trois choses manquent pourtant à un site qui doit tenir devant un client, un concurrent ou un contrôle.
Il affiche une publicité pour Odoo en bas de page. Il n'a pas de page de mentions légales. Et il annonce un stock plus optimiste que la réalité. Six modules corrigent ces manques — dont un qui n'est pas un module communautaire.
Résumé
website_odoo_debranding retire la mention publicitaire en pied de page, dès l'installation et sans configuration. website_legal_page publie une page /legal avec son sommaire et un lien en pied de page — un gabarit en anglais à réécrire, pas un texte juridique. theme_clean rhabille le site : six palettes, une typographie définie, 32 blocs restylés et une page d'accueil assemblée automatiquement.
Côté boutique, website_sale_product_brand publie les marques, ajoute une page « Shop by Brand » et un filtre par marque sur la boutique. website_sale_require_legal impose l'acceptation des conditions générales et journalise la preuve — IP, navigateur, langue — dans le fil de discussion. website_sale_stock_available remplace la quantité libre par la quantité disponible à la promesse dans tous les messages de stock du site : le client ne peut plus commander ce qui est déjà réservé.
L'essentiel
theme_cleann'est pas un module OCA : il vient du dépôt officielodoo/design-themes, version 2.1.0, licence LGPL-3.website_legal_pagepublie/legal: un gabarit générique en anglais avec des marqueurs à remplacer — ce n'est pas un texte juridique final.website_odoo_debranding: aucune configuration, le message « Create a free website with Odoo » disparaît à l'installation.website_sale_product_brand: marques publiées par défaut, filtre cumulable sur la boutique, conservé dans l'URL.website_sale_require_legal: case désactivée par défaut, à activer dans l'éditeur, et la preuve d'acceptation vit uniquement dans le fil de discussion — aucun champ structuré.website_sale_stock_available: zéro écran, zéro champ — il remplace la quantité utilisée par les messages de stock du site.
Ce que ces modules ajoutent à l'instance
| Module | Dépôt | Version | Licence | Dépend de |
|---|---|---|---|---|
theme_clean | odoo/design-themes | 2.1.0 | LGPL-3 | theme_common |
website_legal_page | OCA website | 18.0.1.0.0 | AGPL-3 | website |
website_odoo_debranding | OCA website | 18.0.1.0.0 | LGPL-3 | website |
website_sale_product_brand | OCA e-commerce | 18.0.1.1.1 | AGPL-3 | product_brand, website_sale |
website_sale_require_legal | OCA e-commerce | 18.0.1.0.2 | AGPL-3 | website_sale |
website_sale_stock_available | OCA e-commerce | 18.0.1.0.0 | AGPL-3 | stock_available, website_sale_stock |
La première ligne mérite d'être lue deux fois. theme_clean est un thème officiel d'Odoo, publié dans le dépôt odoo/design-themes sous licence LGPL-3, et non un module de l'association communautaire. Il s'installe de la même manière et fonctionne sur une instance Community ; son numéro de version suit la numérotation des thèmes, pas celle des modules OCA.
Aucun de ces six modules n'ajoute de menu, sauf website_sale_product_brand qui en ajoute un seul, côté catalogue.
Habiller le site : theme_clean
Un site Odoo non habillé se reconnaît. Le thème en change les trois marqueurs : palette, typographie, et mise en page des blocs.
- Six palettes nommées
clean-1àclean-6, disponibles dans l'onglet Thème de l'éditeur. La première est appliquée par défaut. - Une typographie définie : titres en IBM Plex Sans, navigation et boutons en Inter — plus une dizaine de polices proposées en alternative.
- 32 blocs standard restylés : couleurs, espacements, formes découpées. Ce ne sont pas de nouveaux blocs, mais les blocs d'Odoo rhabillés — ce qui veut dire qu'aucun contenu existant ne devient incompatible.
- Un en-tête et un pied de page activés automatiquement, et une page d'accueil assemblée par le configurateur à partir de neuf blocs.
Le piège : les blocs de la page d'accueil générée arrivent avec des textes de démonstration en anglais — la bannière affiche « Unleash your potential. ». Ce sont des espaces réservés, pas une proposition de contenu. Un site livré avec ces textes est un site qui n'a pas été relu.
Le thème ne déclare pas de nouveaux modèles de pages : il ajuste l'apparence de fragments déjà fournis par Odoo pour les catégories « À propos », « Landing », « Galerie », « Services », « Tarifs » et « Équipe ».
Notre usage : le thème fixe le cadre graphique en une demi-journée, et le temps gagné passe dans le contenu — qui est ce qui fait la différence pour un site d'entreprise.
Les deux modules de crédibilité : page légale et débranding
website_legal_page : une page, et un malentendu à éviter
Le module publie une page à l'adresse /legal, avec un sommaire et des ancres vers une dizaine de sections types — propriété intellectuelle, contenus de l'utilisateur, absence de garantie, limitation de responsabilité, droit applicable. Un lien « Legal Page » est ajouté au pied de page, à côté de la mention de copyright.
Le contenu livré est un texte générique en anglais, avec des marqueurs à remplacer (nom du site, URL, nom de la société, pays). Ce n'est pas un texte juridique final, et le module ne prétend pas l'être.
Autrement dit : il vous donne la page, l'URL, la structure et le lien en pied de page. Le texte reste à écrire — par vous ou par votre conseil. En France, il ne dispense ni des mentions légales obligatoires, ni de la politique de confidentialité, ni des conditions générales de vente si vous vendez.
Précision du module lui-même : si le module de comptabilité est installé, il fournit déjà une page de conditions générales à /terms. La page /legal la complète, elle ne la remplace pas.
website_odoo_debranding : rien à configurer
Le module retire le message promotionnel affiché en bas de chaque page du site — le « Create a free website with Odoo » qui signale à tout visiteur avec quel outil le site est fait.
Il s'active seul à l'installation, et apparaît ensuite comme une option réversible dans le panneau Personnaliser de l'éditeur de site, sous « Brand Promotion ▸ Remove Odoo Promotional Link ».
Un détail d'implémentation qui révèle du soin : un crochet d'installation réactive le message quand Odoo tourne en mode test, pour ne pas casser les tests automatisés d'autres modules qui s'attendent à le trouver. Aucun effet en production.
La boutique : marques, consentement, et stock honnête
website_sale_product_brand : naviguer par marque
Pour un revendeur, la marque est le premier critère de navigation — avant la catégorie. Ce module la rend utilisable sur le site.
| Où | Ce qui apparaît |
|---|---|
| Site web ▸ eCommerce ▸ Product Brands | La gestion des marques dans le back-office |
| Menu du site | Une entrée Shop by Brand vers la liste des marques publiées |
Page /shop | Un bloc de filtre Brand dans la colonne des filtres et dans le panneau mobile |
| Fiche marque | Un bouton de publication et une colonne d'état dans la liste |
Trois comportements à connaître. Les marques sont publiées par défaut à la création — l'inverse de l'habitude d'Odoo, où l'on publie explicitement. Le filtre est cumulable avec les autres filtres et conservé dans l'URL, donc partageable et indexable. Et seules les marques ayant au moins un produit correspondant à la recherche en cours sont proposées : pas de filtre qui ne renvoie rien.
Le module ajoute aussi un droit de lecture pour les visiteurs non connectés — sans quoi la page des marques serait inaccessible au public. Il dépend de product_brand, qui porte la marque sur la fiche produit.
website_sale_require_legal : la preuve du consentement
La case « J'accepte les conditions générales » s'ajoute au formulaire d'adresse du tunnel d'achat. Elle est désactivée par défaut : elle s'active dans l'éditeur de site, sur la page d'adresse, panneau Customize ▸ Checkout Pages ▸ Require Legal Terms Acceptance.
Sans acceptation, l'enregistrement de l'adresse est refusé. Et à chaque acceptation, une note est postée dans le fil de discussion — celui du contact pour la case d'adresse, celui de la commande pour la case native de la page de paiement — avec l'adresse IP, le navigateur et la langue du visiteur.
Le point structurant : aucun champ n'est ajouté sur le contact ni sur la commande. La preuve d'acceptation existe uniquement sous forme de message. Elle est consultable et exportable, mais elle ne se filtre pas comme un champ, et une purge de messages l'emporterait.
Avertissement du module lui-même : si l'on active en même temps sa case et la case native de la page de paiement, un nouvel acheteur peut devoir accepter les conditions deux à trois fois au cours d'un même achat. Choisissez une étape, pas les deux.
website_sale_stock_available : arrêter de promettre ce qui est réservé
Le plus discret des six, et celui qui évite le plus de litiges. Il ne change rien à l'affichage : les messages « en stock », « stock limité », « rupture » restent identiques. Il change le chiffre sur lequel ils s'appuient.
| Quantité libre (par défaut) | Disponible à la promesse | |
|---|---|---|
| Ce qu'elle compte | Le stock non réservé au sens d'Odoo | Le stock réellement promettable |
| Ce qu'elle ignore | Certaines réservations | — |
| Effet sur le site | Annonce plus optimiste | Annonce prudente |
| Conséquence d'une erreur | Commande acceptée, livraison impossible | Vente perdue au pire |
Le module propage un contexte technique dans tous les calculs de quantité : page produit, mise à jour du panier, et jusqu'à l'étape de paiement. Pour qu'il bloque réellement la vente, le produit doit avoir « Out-of-stock (continue selling) » décoché dans l'onglet Ventes de sa fiche — un réglage d'Odoo, pas du module.
Un entrepôt dont les emplacements et les réservations sont justes est le préalable à tout cela : voir interdire le stock négatif et organiser les emplacements.
Limites connues
- La page
/legalest un gabarit en anglais : livrée telle quelle, elle nuit plus qu'elle n'aide. - Les textes de démonstration du thème sont en anglais et doivent tous être remplacés avant la mise en ligne.
- La case d'acceptation est désactivée par défaut et s'active uniquement depuis l'éditeur de site : rien dans le back-office ne la signale.
- La preuve de consentement n'est qu'un message de discussion : pas de champ, donc pas de filtre, pas de rapport, et une sensibilité aux purges.
- Activer les deux cases d'acceptation fait accepter le client plusieurs fois dans le même achat.
website_sale_stock_availablene bloque rien seul : il faut aussi décocher la vente en rupture sur les produits concernés.
Identité technique
| Module | Dépôt | Version | Licence |
|---|---|---|---|
website_legal_page | website | 18.0.1.0.0 | AGPL-3 |
website_odoo_debranding | website | 18.0.1.0.0 | LGPL-3 |
website_sale_product_brand | e-commerce | 18.0.1.1.1 | AGPL-3 |
website_sale_require_legal | e-commerce | 18.0.1.0.2 | AGPL-3 |
website_sale_stock_available | e-commerce | 18.0.1.0.0 | AGPL-3 |
theme_clean | odoo/design-themes | 2.1.0 | LGPL-3 |
Les six figurent dans notre pack commerce (68 modules), au-delà du socle commun.
Questions fréquentes
La page /legal suffit-elle pour être en règle en France ?
Non. Le module publie une page structurée et un lien en pied de page, mais son contenu est un gabarit générique en anglais avec des marqueurs à remplacer. Il ne dispense ni des mentions légales obligatoires, ni de la politique de confidentialité, ni des conditions générales de vente. Le texte reste à écrire.
Où est conservée la preuve que le client a accepté les CGV ?
Dans le fil de discussion du contact (pour la case du formulaire d'adresse) ou de la commande (pour la case native de la page de paiement), avec l'adresse IP, le navigateur et la langue. Aucun champ structuré n'est créé : la preuve est consultable, mais elle ne se filtre pas et disparaîtrait avec une purge des messages.
Quelle différence entre quantité libre et disponible à la promesse ?
La quantité libre d'Odoo ignore certaines réservations et donne donc une image plus optimiste du stock. La quantité disponible à la promesse est ce qu'on peut réellement engager. website_sale_stock_available substitue la seconde à la première dans tous les messages de stock du site et dans les contrôles du panier.
theme_clean est-il un module OCA ?
Non : c'est un thème officiel publié dans le dépôt odoo/design-themes, en version 2.1.0 et sous licence LGPL-3. Il s'installe comme un module et fonctionne sur une instance Community, mais il ne suit ni la numérotation ni le cycle de publication des modules de l'association.
Faut-il activer les deux cases d'acceptation des conditions ?
Non. Le module prévient lui-même qu'en activant à la fois sa case sur le formulaire d'adresse et la case native de la page de paiement, un nouvel acheteur peut devoir accepter les conditions deux à trois fois dans le même achat. Choisissez l'étape qui correspond à votre tunnel.
Se faire accompagner
Un site e-commerce qui promet un stock qu'il n'a pas, ou qui n'apporte pas la preuve d'un consentement, coûte en litiges ce qu'il a gagné en commandes. Ces six modules ne font pas un site : ils rendent présentable et défendable celui que vous avez.
Nous les posons dans cet ordre : débranding et thème pour l'apparence, page légale et acceptation pour le cadre, marques et stock pour le commerce. Et nous relisons tous les textes livrés en anglais avant la mise en ligne — c'est la partie que personne ne fait. Voir les prestations d'Atalios Consulting ou demander un rappel.
Pour aller plus loin
- Caisse : supprimer une ligne, transformer en commande, piloter le terminal
- Site web et e-commerce avec Odoo
- E-commerçant pure player : gérer sa boutique avec Odoo
En résumé
Trois modules pour la crédibilité du site — thème, page légale, suppression de la publicité Odoo — et trois pour la boutique : navigation par marque, preuve d'acceptation des conditions, et stock annoncé sur la quantité réellement promettable. Deux textes livrés en anglais restent à réécrire avant toute mise en ligne. Parlons de votre site.