Skip to Content
Icône de Couche de données e-commerce — socle de traçage (gratuit)

Couche de données e-commerce — socle de traçage (gratuit)

Free Odoo 20 Module Quality check: Verified LGPL-3

eCommerce Data Layer for Odoo — la couche de données que tous les traceurs attendent : produit vu, ajout au panier, commande passée, avec le prix, la devise et les articles. Sans aucun traceur dedans.

Screenshots

Suivi e-commerce · le socle

Odoo pose la balise, mais n'émet aucun événement e-commerce — et chaque traceur refait la même plomberie

Produit vu, ajout au panier, commande passée, avec le prix, la devise et le détail des articles. Une couche de données posée une fois, et aucun traceur dedans.

Odoo 20 Community — On Premise✔
Odoo.sh✔
Odoo Online (SaaS)✔

Le constat

Odoo 20 injecte bien gtag et le Consent Mode v2. Mais il n'envoie qu'une chose : la page vue. Ni produit consulté, ni ajout au panier, ni commande. Les rapports e-commerce restent vides — le tunnel, le chiffre d'affaires, les articles qui se vendent.

Chaque module de traçage refait donc sa propre plomberie, incompatible avec celle du voisin, et l'on finit avec trois scripts qui lisent le DOM chacun à sa façon. Le premier changement de thème en casse deux.

Les six événements attendus

view_item, view_item_list, add_to_cart, remove_from_cart, begin_checkout et purchase — nommés comme la recommandation e-commerce de Google.

Rendu par le serveur, pas deviné dans le DOM

Les prix, les devises et les références viennent du modèle Odoo. Une remise, une taxe incluse ou une devise secondaire donnent la bonne valeur ; un traceur qui lit le prix affiché se trompe sur les trois.

Le consentement voyage avec l'événement

Chaque événement porte l'état du consentement publicitaire et analytique au moment où il se produit. Un traceur branché dessus sait s'il a le droit de l'envoyer.

Aucun appel sortant

Ce module ne parle à personne : il expose, il n'envoie pas. C'est ce qui lui permet de tourner aussi sur Odoo Online.

La famille

Le socle est gratuit et se suffit : il donne une couche de données propre à qui veut brancher son propre outil. Les trois satellites s'y greffent.

dyo_tracking_base — le socleGratuit — aucun traceur dedans
dyo_tracking_ga4 — Google Analytics 4Tourne aussi sur Odoo Online
dyo_tracking_meta — Pixel et API ConversionsAppelle Meta depuis le serveur
dyo_tracking_merchant — flux Merchant CenterExpose un contrôleur

Ce que fait l'application

01

Une couche unique

window.dyoDataLayer reçoit les événements du parcours d'achat, dans l'ordre où ils se produisent.

02

Le détail des articles

Identifiant, libellé, prix unitaire, quantité, catégorie — et la valeur totale avec sa devise.

03

Les gabarits du parcours

Fiche produit, liste, panier et confirmation : les quatre points où le parcours se mesure.

04

Rien à configurer

Aucun réglage, aucune clé : le socle pose la plomberie et s'efface.

Le parcours, en vrai

La liste des produits
À l'affichage de la liste, view_item_list est émis avec les articles présentés et leur prix issu du modèle.
La fiche d'un produit
À l'ouverture de la fiche, view_item porte la référence, le prix unitaire et la devise — ceux de la liste de prix du site, pas ceux du texte affiché.

Ce que le module ne fait pas

  • Il n'envoie rien, à personne : il n'y a pas de traceur dedans, c'est le principe.
  • Il ne pose pas de bandeau de consentement — il lit celui d'Odoo.
  • Il ne modifie ni les prix, ni les taxes, ni le tunnel de commande.

Fiche technique

Modèles étenduswebsite
Ressourcesstatic/src/js/dyo_datalayer.js, gabarits du parcours d'achat
LangueFrançais
Dépendanceswebsite_sale
LicenceLGPL-3 (GNU Lesser General Public License v3)
PrixGRATUIT
Version20.0.1.0.0
Nom techniquedyo_tracking_base

DYONYSOS — welcome@dyonysos.fr

Couche de données e-commerce — socle de traçage (gratuit) — capture 1
Couche de données e-commerce — socle de traçage (gratuit) — capture 1
Couche de données e-commerce — socle de traçage (gratuit) — capture 2
Couche de données e-commerce — socle de traçage (gratuit) — capture 2
Couche de données e-commerce — socle de traçage (gratuit) — capture 3
Couche de données e-commerce — socle de traçage (gratuit) — capture 3

What this app does not do

  • Il n'envoie rien, à personne : il n'y a pas de traceur dedans, c'est le principe.
  • Il ne pose pas de bandeau de consentement — il lit celui d'Odoo.
  • Il ne modifie ni les prix, ni les taxes, ni le tunnel de commande.

Store apps required

None.

Odoo Community modules used

website_sale

Apps that complement it

SeriesVersionStatusPublished on
20.020.0.1.0.0 Available 02/10/2026
19.019.0.1.0.0 Available

Listing generated from the publisher's code (private repository, branch 20.0): the source code is not published.

Automatic store check (separate from the publisher's), applied to all apps. Conforme.

CheckResultEffect if absent
Manifeste lisible sans exécution conforme bloquant
Licence reconnue (LGPL-3) conforme bloquant
Aucune dépendance vers Odoo Enterprise conforme bloquant
Aucun import de code Enterprise conforme bloquant
Aucun en-tête de licence Enterprise conforme bloquant
Icône static/description/icon.png conforme déclasse
Description (static/description/index.html ou README) conforme déclasse
Tests automatisés (tests/test_*.py) conforme déclasse
Traduction française (i18n/fr.po) absent info
Section « Ce que le module ne fait pas » conforme info
Titre de 70 caractères au plus (57 actuellement) conforme info
Résumé en français conforme info

Guide utilisateur — Couche de données e-commerce (socle)

Ce module ne se voit pas. Il ne pose ni écran ni menu : il met à disposition, dans chaque page de la boutique, ce qui s'y passe, pour qu'un module de traçage puisse le lire.

1. Vérifier qu'il fonctionne

Ouvrez une fiche produit de la boutique, affichez le code source de la page et cherchez dyo-datalayer-event. Vous devez y voir un bloc de ce genre :

{"event": "view_item",
 "ecommerce": {"currency": "EUR", "value": 24.9,
               "items": [{"item_id": "GAL-01", "item_name": "Galet gravé",
                          "price": 24.9, "quantity": 1.0,
                          "item_category": "Décoration"}]}}

Si le bloc est là, le socle fait son travail. S'il manque, c'est que le module n'est pas installé sur ce site — vérifiez le site actif en multi-sites.

2. Les événements émis

Page Événement Quand
Fiche produit view_item au chargement
Boutique, catégorie, recherche view_item_list au chargement, avec le rang de chaque article
Panier begin_checkout au chargement, si le panier n'est pas vide
Confirmation de commande purchase au chargement, avec la référence, la taxe et le port
Ajout au panier add_to_cart sans rechargement, à la réponse du serveur

3. Pourquoi les prix sont justes

Les valeurs viennent du modèle Odoo, pas du texte affiché. Une remise, une taxe incluse ou une devise secondaire donnent donc le bon montant. Un traceur qui lit le prix dans la page se trompe sur les trois — c'est la cause la plus fréquente d'un chiffre d'affaires mesuré qui ne correspond à rien.

4. Lire la couche depuis votre propre code

document.addEventListener("dyo-datalayer", (e) => {
    console.log(e.detail.event, e.detail.ecommerce);
});

L'écouteur reçoit aussi ce qui a été poussé avant son chargement : window.dyoDataLayer conserve la file.

5. Le consentement

window.dyoConsentement() rend l'état au moment de l'appel :

{ analytics: false, marketing: false }

Le socle ne décide pas à la place du traceur : il expose l'état, le traceur choisit d'envoyer ou non. C'est ce qui permet à chaque module de suivre sa propre politique.

Ce que le module ne fait pas

Il n'envoie rien à personne — c'est ce qui lui permet de tourner sur Odoo Online. Il ne pose pas de bandeau de consentement : Odoo en fournit un.

Reviews from signed-in customers. One rated review per customer; the publisher can reply. Sign in to leave a review.

Publisher
DYONYSOS
Email
contact@omnifloo.com
Omnifloo customers
Support included with your plan: help centre.