PS PrestaShop Intermédiaire

DataFirefly Guide des tailles — Documentation

Guide des tailles modulable, calculateur interactif, page SEO dédiée et feedback post-achat pour PrestaShop 8 et 9.

Mis à jour Version du module 1.0.2

Vue d’ensemble

DataFirefly Guide des tailles ajoute à votre boutique PrestaShop un système complet de guides des tailles modulables par catégorie, fabricant ou produit, avec tableaux de correspondance EU/US/UK/FR/JP, calculateur interactif de recommandation de taille, page SEO indexable dédiée par catégorie, et widget de feedback post-achat avec score de biais agrégé.

Le module cible les boutiques textile et chaussures où plus de 20% des retours sont liés à un problème de taille. Il transforme cette friction en un parcours d’achat rassurant : le client voit la bonne charte automatiquement, il peut saisir ses mensurations pour obtenir une recommandation personnalisée, et vous récupérez du feedback qualifié qui vous permet de détecter les produits mal gradués.

Compatibilité

  • PrestaShop 8.0.x, 8.1.x, 8.2.x, 9.0.x
  • PHP 8.1, 8.2, 8.3
  • Multi-boutique (toutes les affectations sont scopées par id_shop)
  • Polylang FR/EN/ES/DE prêt à l’emploi
  • Thèmes classic, hummingbird et thèmes custom (7 emplacements différents disponibles)

Installation

  1. Téléversez le ZIP dfsizeguide.zip depuis Modules → Module Manager → Téléverser un module.
  2. Cliquez sur Installer. Les 4 chartes preset (textile femme, textile homme, chaussures femme, chaussures homme) sont créées automatiquement en 4 langues, et une affectation par défaut est créée sur la charte textile femme.
  3. Dès la fin de l’installation, l’onglet « Guide des tailles » s’affiche sur toutes vos fiches produit sans configuration supplémentaire.
  4. Allez dans Modules → DataFirefly Guide des tailles → Configurer pour ajuster les emplacements, l’unité par défaut, les fonctionnalités activées.

Concepts clés

Le résolveur de chartes à 4 niveaux

Quand un client arrive sur une fiche produit, le module cherche quelle charte afficher en descendant une priorité stricte :

  1. Produit — si vous avez explicitement affecté une charte à ce produit précis, elle gagne.
  2. Fabricant — sinon, la charte affectée à la marque du produit.
  3. Catégorie — sinon, la première catégorie du produit qui a une charte, en commençant par la plus profonde (respect de la spécificité).
  4. Défaut — sinon, la charte marquée comme fallback global.

Cette hiérarchie permet de maintenir une seule charte par marque ou par rayon sans toucher les fiches produit individuelles, tout en gardant la possibilité d’override chirurgical.

Types de colonnes

Chaque charte est composée de colonnes typées :

  • Colonne « taille » — une seule valeur textuelle par ligne (S, M, 38, XL). Utilisée pour les correspondances internationales (EU, US, UK, FR, JP).
  • Colonne « mesure » — une plage numérique min/max par ligne (ex. tour de poitrine 88–92 cm). Utilisée pour indiquer les mensurations qui correspondent à chaque taille.

Le calculateur interactif s’appuie exclusivement sur les colonnes « mesure » pour déterminer la taille recommandée.

Configuration

Emplacements sur la fiche produit

Le module expose 7 emplacements activables individuellement dans Configurer → Emplacements fiche produit :

  • Onglet produit (activé par défaut, recommandé) — hook displayProductExtraContent, ajoute un onglet propre à côté de « Description » et « Détails ». Fonctionne sur la quasi-totalité des thèmes PS 1.7+.
  • Sous le prix — hook displayProductPriceBlock (type after_price), rend un lien compact juste sous le prix.
  • Près du bouton « Ajouter au panier » — hook displayProductActions, rend un bouton compact.
  • Sous les infos produit — hook displayProductAdditionalInfo, rend un bouton prominent.
  • Dans le bloc rassurance — hook displayReassurance, s’intègre visuellement avec vos autres arguments (livraison, retours).
  • Après les images produit — hook displayAfterProductThumbs, rend un bouton compact juste sous la galerie.
  • En bas de la page produit — hook displayFooterProduct, rend un bouton prominent en pied de page.

Vous pouvez activer plusieurs emplacements en parallèle : la modale du guide n’est instanciée qu’une seule fois dans le DOM (anti-doublon), et les boutons supplémentaires ouvrent la même modale.

L’onglet produit est le seul emplacement qui rend le tableau inline. Les 6 autres emplacements rendent un bouton qui ouvre la modale.

Paramètres généraux

  • Unité par défaut — cm ou pouces. Le client peut basculer à la volée, la préférence est conservée dans le calcul.
  • Calculateur interactif — active la saisie des mensurations et la recommandation de taille (activé par défaut).
  • Retours clients post-achat — active le widget qui demande au client si la taille était adaptée (activé par défaut).
  • Données structurées JSON-LD — active l’injection du balisage Schema.org pour améliorer le référencement (activé par défaut).
  • Slug page SEO — préfixe de l’URL des pages guides dédiées (par défaut size-guide, à traduire en guide-des-tailles si vous voulez une URL francophone).

Créer et éditer une charte

Menu Modules → Guides des tailles → Chartes. Cliquez sur « Ajouter » pour créer une nouvelle charte, ou sur l’icône crayon pour éditer une charte existante.

Champs de la charte

  • Code interne — identifiant technique unique (ex. femme-robes-2026). Utilisé dans les URLs SEO et les logs.
  • Type — textile haut, textile bas, robe, chaussures, ou custom.
  • Nom — libellé multilangue affiché aux clients (titre de l’onglet, titre de la modale, h1 de la page SEO).
  • Introduction (HTML) — contenu multilangue affiché au-dessus du tableau.
  • Instructions de mesure (HTML) — encart repliable qui explique comment prendre chaque mensuration.
  • Footer (HTML) — contenu multilangue affiché sous le tableau (avertissement, lien vers politique de retour, etc.).
  • Meta title / Meta description — pour la page SEO dédiée.
  • Actif — bascule on/off. Une charte inactive n’est jamais servie même si elle est affectée.

Éditer le tableau

Sous le formulaire de la charte, un éditeur visuel permet de construire le tableau :

  1. Cliquez sur Colonne taille pour ajouter une colonne textuelle. Renseignez le code (ex. eu, intl) et le libellé multilangue.
  2. Cliquez sur Colonne mesure pour ajouter une colonne numérique. Renseignez le code (ex. chest_cm) et l’unité (cm, pouces, mm).
  3. Cliquez sur Ligne pour ajouter une ligne. Remplissez les cellules : texte simple pour les colonnes « taille », valeurs min/max pour les colonnes « mesure ».
  4. Cliquez sur Enregistrer. La sauvegarde se fait dans une transaction SQL atomique — soit tout est enregistré, soit rien ne l’est.

Affecter une charte

Menu Modules → Guides des tailles → Affectations.

  1. Choisissez la charte à affecter dans la liste.
  2. Choisissez le type de cible : Défaut (fallback global), Catégorie, Fabricant ou Produit.
  3. Selon le type, un second champ apparaît pour choisir la catégorie (dans un arbre indenté), la marque (liste déroulante) ou l’ID produit (saisie directe).
  4. Cliquez sur Ajouter / Mettre à jour. Si une affectation existe déjà pour cette cible, elle est écrasée (upsert).

Toutes les affectations sont scopées par boutique en multi-boutique. Vous pouvez avoir une charte différente pour la même catégorie sur deux boutiques du même groupe.

Le calculateur de taille

Le calculateur apparaît sous le tableau, uniquement si la charte a au moins une colonne « mesure ».

Algorithme de scoring

Le client saisit ses mensurations dans les champs (un champ par colonne « mesure »). À la soumission :

  1. Les valeurs sont normalisées en centimètres (conversion automatique si l’utilisateur a choisi les pouces : ×2.54).
  2. Pour chaque ligne du tableau, le module calcule un score : +2 points si la mesure du client tombe exactement dans la plage min/max de la cellule, +1 point si elle est proche (à ±5% de la plage), 0 point sinon.
  3. La ligne avec le score le plus élevé est déclarée gagnante.
  4. En cas d’égalité, on prend la ligne dont les plages sont les plus centrées sur les valeurs du client.
  5. La taille recommandée est extraite en priorité de la colonne eu, puis fr, intl, uk, us, jp.

Retour utilisateur

Le calculateur affiche la taille recommandée avec un score de confiance en pourcentage, le top 3 des candidates possibles, chacune avec son score, une mise en surbrillance de la ligne recommandée dans le tableau du dessus, et la liste des mesures qui ne matchent aucune ligne (avec avertissement).

Retours clients post-achat

Un widget « La taille était-elle adaptée ? » apparaît en bas de la fiche produit avec 5 choix : trop petit, un peu petit, parfait, un peu grand, trop grand. Il est rendu uniquement dans les conditions suivantes :

  • Le client est connecté (session active).
  • Le client a effectivement acheté ce produit (join avec orders et order_detail, statut valide).
  • Le client n’a pas déjà donné son avis sur ce produit.

Le gating est intégralement côté serveur, sans risque de contournement.

Dashboard des retours

Menu Modules → Guides des tailles → Retours clients. Une synthèse au-dessus du tableau montre le nombre de réponses dans chaque catégorie sur les 5 niveaux. En dessous, la liste complète des retours par produit avec l’ID client, la taille achetée et la date.

Score de biais

Pour chaque produit ayant au moins 3 retours, un score de biais est calculé :

score = ((too_large × 2 + slightly_large) − (too_small × 2 + slightly_small)) / total

Un score positif indique que le produit taille systématiquement grand (à recadrer d’un cran vers le bas). Un score négatif indique qu’il taille petit (à recadrer d’un cran vers le haut). Un score proche de zéro indique un bon gradage.

Page SEO dédiée

Le module expose une route publique par catégorie : /{slug}/{category-link-rewrite}, où {slug} est le préfixe configuré (par défaut size-guide).

Exemple : https://votreboutique.com/size-guide/robes-femme

La page contient un fil d’Ariane, le titre h1 de la charte, l’introduction, les instructions de mesure et le tableau complet, le calculateur (si activé), le footer HTML de la charte, et un balisage JSON-LD WebPage Schema.org qui aide Google à comprendre que la page est un guide pratique.

Les balises meta title et meta description viennent des champs SEO de la charte. Configurez-les correctement pour capter les recherches longue traîne type « guide des tailles robes femme ».

Multi-langue et multi-boutique

Le module est multilangue au niveau des chartes (nom, intro, instructions, footer, méta), au niveau des libellés de colonnes, et au niveau des libellés Polylang pour les URLs.

En multi-boutique, chaque affectation (guide → cible) est scopée par id_shop. Vous pouvez donc afficher la charte A pour la catégorie « Chaussures » sur la boutique française, et la charte B pour la même catégorie sur la boutique allemande.

Structure technique

Base de données

7 tables préfixées dfsg_ : dfsg_guide, dfsg_guide_lang, dfsg_column, dfsg_column_lang, dfsg_row, dfsg_cell, dfsg_assignment, dfsg_feedback. Toutes les tables sont supprimées proprement à la désinstallation.

Hooks utilisés

  • actionFrontControllerSetMedia — injection CSS/JS front
  • displayBackOfficeHeader — injection CSS/JS admin
  • displayProductExtraContent — onglet fiche produit (recommandé)
  • displayProductPriceBlock, displayProductActions, displayProductAdditionalInfo, displayReassurance, displayAfterProductThumbs, displayFooterProduct — emplacements alternatifs
  • displayHeader — injection JSON-LD sur les fiches produit
  • actionValidateOrder — trigger pour d’éventuelles relances (v2)
  • moduleRoutes — page SEO dédiée

FAQ

Le guide ne s’affiche pas sur ma fiche produit, que faire ?

Vérifiez d’abord dans Configurer → Emplacements fiche produit qu’au moins un emplacement est activé (Onglet produit par défaut). Si votre thème custom ne rend pas les hooks natifs de PrestaShop, activez plusieurs emplacements en parallèle : au moins l’un des 7 devrait fonctionner. Vérifiez également qu’il existe au moins une charte active et une affectation par défaut dans Guides des tailles → Affectations.

Puis-je importer des tableaux depuis un CSV ?

Pas en version 1.0. L’éditeur visuel permet de construire les tableaux à la volée. L’import CSV est prévu en version 1.1.

Le calculateur fonctionne-t-il sans JavaScript ?

Non, le calculateur est interactif et nécessite JavaScript pour faire l’appel AJAX au serveur. En revanche, le tableau statique s’affiche parfaitement sans JS, ce qui préserve l’accessibilité et le référencement.

Y a-t-il un risque de balisage JSON-LD dupliqué ?

Non. Le hook displayHeader émet un seul script JSON-LD par page produit, et la page SEO dédiée a son propre balisage WebPage distinct. Le validateur Schema.org de Google ne signale aucun doublon.

Compatible avec la migration PrestaShop 8 vers 9 ?

Oui. Le module déclare ps_versions_compliancy de 8.0.0 à 9.99.99, utilise les classes ObjectModel et HelperForm qui restent supportées en PS 9, et n’utilise aucune API dépréciée.

Comment purger toutes les données du module ?

La désinstallation via le Module Manager supprime toutes les tables dfsg_* et toutes les configurations DFSG_*. Aucune trace ne reste en base.

Support

Email : support@datafirefly.com. Réponse sous 5 jours ouvrés en français ou en anglais.

Cette page vous a-t-elle été utile ?

Toujours bloqué ? Contactez le support