Documentation12 min de lecture

Site web et boutique : six modules pour un site tenable

Six modules rendent présentable un site Odoo 18 Community : `website_sale_require_legal` (version 18.0.1.0.2) journalise dans le fil de discussion l'**adresse IP, le navigateur et la langue** du client au moment où il accepte les conditions générales — une preuve horodatée que le module enregistre sans créer aucun champ dédié. Les cinq autres, et celui qui n'est pas un module OCA mais un thème officiel d'Odoo.

Consultation d'un site web sur un ordinateur portable

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_clean n'est pas un module OCA : il vient du dépôt officiel odoo/design-themes, version 2.1.0, licence LGPL-3.
  • website_legal_page publie /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

ModuleDépôtVersionLicenceDépend de
theme_cleanodoo/design-themes2.1.0LGPL-3theme_common
website_legal_pageOCA website18.0.1.0.0AGPL-3website
website_odoo_debrandingOCA website18.0.1.0.0LGPL-3website
website_sale_product_brandOCA e-commerce18.0.1.1.1AGPL-3product_brand, website_sale
website_sale_require_legalOCA e-commerce18.0.1.0.2AGPL-3website_sale
website_sale_stock_availableOCA e-commerce18.0.1.0.0AGPL-3stock_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

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 BrandsLa gestion des marques dans le back-office
Menu du siteUne entrée Shop by Brand vers la liste des marques publiées
Page /shopUn bloc de filtre Brand dans la colonne des filtres et dans le panneau mobile
Fiche marqueUn 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.

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 compteLe stock non réservé au sens d'OdooLe stock réellement promettable
Ce qu'elle ignoreCertaines réservations—
Effet sur le siteAnnonce plus optimisteAnnonce prudente
Conséquence d'une erreurCommande acceptée, livraison impossibleVente 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 /legal est 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_available ne bloque rien seul : il faut aussi décocher la vente en rupture sur les produits concernés.

Identité technique

ModuleDépôtVersionLicence
website_legal_pagewebsite18.0.1.0.0AGPL-3
website_odoo_debrandingwebsite18.0.1.0.0LGPL-3
website_sale_product_brande-commerce18.0.1.1.1AGPL-3
website_sale_require_legale-commerce18.0.1.0.2AGPL-3
website_sale_stock_availablee-commerce18.0.1.0.0AGPL-3
theme_cleanodoo/design-themes2.1.0LGPL-3

Les six figurent dans notre pack commerce (68 modules), au-delà du socle commun.

Questions fréquentes

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

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.

Documentation OCAE-commerceSite web

Partager

Fiches connexes

Relevés bancaires et pièces comptables sur un bureau
Relevé sur une instance Odoo 18 Community, le module OCA `account_reconcile_oca` (dépôt `account-reconcile`, version 18.0.1.1.14, licence AGPL-3) ajoute 2 modèles, 87 champs et 17 vues : il remplace le lettrage limité de la Community par deux écrans dédiés, bancaire et par compte. Ce qu'il ajoute à l'instance, où le trouver, ses quatre cas d'usage et ses limites connues.
Lire la suite
Documentation OCA, Comptabilité
Relevé bancaire et suivi des opérations sur un bureau
Odoo a retiré l'import de relevés bancaires de son édition Community à partir de la version 14 : les 3 modules OCA `account_statement_import_file` (18.0.1.0.3, LGPL-3), `_camt` et `_ofx` le rétablissent, avec la détection des transactions déjà importées. Comment ils s'articulent, ce que CAMT apporte de plus qu'OFX, et le piège du fichier sans IBAN.
Lire la suite
Documentation OCA, Comptabilité