PS PrestaShop Intermédiaire

DataFirefly Guide des tailles — Documentation

Guide des tailles modulable, exclusions par marque et par produit, calculateur en deux groupes avec tolérance, page SEO dédiée et feedback post-achat pour PrestaShop 8 et 9. 13 chartes préchargées, 7 langues.

Mis à jour Version du module 1.6.1

Vue d’ensemble

DataFirefly Guide des tailles ajoute à votre boutique PrestaShop un système complet de guides des tailles modulables par catégorie, fabricant, combo marque × catégorie 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/IT/NL/PL prêt à l’emploi
  • Thèmes classic, hummingbird et thèmes custom (8 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 13 chartes preset (textile femme et homme haut et bas, robes, soutien-gorge, chaussures femme, homme et enfant, vêtements enfant, gants, chapeaux, bagues, ceintures) sont créées automatiquement en 7 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, la tolérance du calculateur, les fonctionnalités activées.

Concepts clés

Le résolveur de chartes à 5 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. Catégorie + Fabricant — sinon, la charte affectée au couple formé par une catégorie du produit et sa marque. Plus spécifique que chacune des deux dimensions prise seule, ce niveau l’emporte donc sur les deux suivants. Les catégories sont parcourues de la plus profonde à la plus générale.
  3. Fabricant — sinon, la charte affectée à la marque du produit.
  4. 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é).
  5. 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.

Restreindre une règle : exclusions et combos stricts

Les niveaux Catégorie et Défaut s’appliquent à toutes les marques par nature. Deux mécanismes indépendants permettent de les resserrer.

Les exclusions retirent des marques ou des produits précis de la portée d’une règle. Un produit exclu ignore cette règle et poursuit la chaîne : catégorie parente, puis repli global, puis aucun guide. Chaque type de cible accepte ce qui a du sens pour lui :

  • Défaut et Catégorie — exclusions de marques et de produits
  • Fabricant et Catégorie + Fabricant — exclusions de produits
  • Produit — aucune, la cible désigne déjà une fiche

Le réglage Combos catégorie + fabricant stricts, dans la configuration du module, agit différemment : dès qu’une catégorie porte au moins un combo, elle devient exclusive aux marques qui y ont le leur. Les produits des autres marques de cette catégorie n’héritent plus ni de la règle de catégorie ni du guide par défaut. Une charte affectée explicitement à leur marque continue de s’appliquer, puisque cette affectation-là est délibérée, et un produit sans fabricant garde les replis habituels. Le réglage est désactivé par défaut.

Sans ce réglage, un combo n’exclut rien : il donne la priorité à une marque, mais les autres marques de la catégorie continuent de descendre la chaîne jusqu’à la règle de catégorie puis jusqu’au guide par défaut, qui existe dès l’installation.

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.

Colonnes groupées : une mesure, plusieurs variantes

Certains tableaux décrivent la même mesure en plusieurs colonnes. Sur un tableau de soutiens-gorge, les colonnes bonnet B, C, D et E ne sont pas quatre mensurations : c’est un seul tour de poitrine, décliné en variantes. Demander les quatre à la cliente n’a pas de sens, elle n’en a qu’une.

En donnant le même code de groupe à ces colonnes dans l’éditeur, le calculateur n’affiche plus qu’un champ pour le groupe. La réponse combine alors la taille de la ligne et le libellé de variante de la colonne trouvée : 4B au lieu de 4. Une même mesure peut tomber dans plusieurs variantes, auquel cas toutes sont proposées.

Trois champs par colonne de mesure, visibles dans l’éditeur uniquement sur les colonnes de type mesure :

  • Groupe — le code commun aux colonnes qui décrivent la même mesure (ex. bust). Vide, la colonne reste indépendante.
  • Variante — le suffixe ajouté à la taille dans le résultat (ex. B, C, D).
  • Libellé du groupe — l’intitulé du champ partagé dans le calculateur (ex. « Tour de poitrine »). À renseigner sur une seule colonne du groupe.

Les chartes sans groupe gardent exactement le comportement d’origine : un champ par colonne, une réponse par ligne.

Configuration

Emplacements sur la fiche produit

Le module expose 8 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.
  • Aperçu rapide — affiche le guide dans la fenêtre d’aperçu rapide, à ceux des emplacements ci-dessus que votre thème y rend.

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 autres rendent un bouton qui ouvre la modale.

L’aperçu rapide se comporte différemment des sept autres. Un aperçu rapide s’ouvre depuis une page de listing, et le fragment qu’il récupère n’embarque aucun asset : la feuille de style et le script doivent donc déjà être présents sur la page qui l’ouvre. Garder l’option active les charge sur les pages de listing. La désactiver les réserve à la fiche produit.

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).
  • Tolérance des tailles proches (cm) — après les tailles qui correspondent exactement, le calculateur liste les tailles voisines dans cette marge. 0 masque cette seconde liste, et c’est la valeur par défaut. Redéfinissable charte par charte.
  • Combos catégorie + fabricant stricts — voir plus haut. Désactivé 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).
  • Couleur d’accent — couleur des boutons, de l’unité active et de la ligne mise en avant. À accorder avec votre thème ; la nuance de survol est calculée automatiquement.
  • 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, soutien-gorge, chaussures, enfant, gants, chapeaux, bagues, ceintures 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.
  • Tolérance des tailles proches (cm) — redéfinit le réglage de la boutique pour cette charte. Vide, elle en hérite. 0 masque la liste des tailles proches ici seulement. C’est le champ à utiliser quand la même boutique vend des soutiens-gorge et des chaussures : 3 cm est un voisinage sur les uns et quatre pointures sur les autres.
  • 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). Trois champs supplémentaires apparaissent sur ce type de colonne : groupe, variante et libellé du groupe, décrits plus haut.
  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.

Évitez de faire se chevaucher les bornes de deux lignes consécutives. Une plage 63–68 suivie d’une plage 68–73 fait qu’une cliente qui mesure exactement 68 correspond légitimement aux deux lignes, et le calculateur les proposera toutes les deux. Écrivez plutôt 63–67 puis 68–72.

Dupliquer une charte

Le bouton Dupliquer de la liste recopie la charte, ses traductions, ses colonnes et leurs libellés, ses lignes et toutes ses cellules. Utile pour dériver une variante d’une charte existante plutôt que de repartir d’un tableau vide.

Deux points à connaître. Les affectations ne sont pas copiées : elles sont uniques par cible, donc les dupliquer volerait les cibles de la charte d’origine. Et la copie est créée inactive, pour qu’elle ne puisse pas être servie avant votre relecture. Le code interne est dérivé automatiquement (femme-haut devient femme-haut-copy) puisqu’il doit rester unique.

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, 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. Renseignez si besoin les exclusions, décrites juste en dessous.
  5. 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.

Exclure des marques ou des produits

Deux champs apparaissent selon le type de cible choisi :

  • Marques à exclure — liste à sélection multiple, proposée sur les cibles Catégorie et Défaut. Ctrl ou Cmd pour en sélectionner plusieurs, clic à nouveau pour désélectionner.
  • Produits à exclure — ID séparés par des virgules (ex. 12, 45, 78), proposé sur toutes les cibles sauf Produit.

Les exclusions sont visibles dans le tableau des affectations, résolues en noms, sous la cible concernée. Elles sont supprimées avec l’affectation, et abandonnées quand vous basculez la règle vers un type déjà spécifique à une marque ou à un produit.

Un produit exclu d’un combo ne déclenche pas le mode strict : exclure veut dire « continue la chaîne », donc l’exclusion ne peut pas être ce qui bloque les replis.

Modifier une affectation

Le crayon en bout de ligne recharge l’affectation dans le formulaire, avec sa charte, son type de cible, sa cible et ses exclusions. Vous pouvez alors changer la charte, mais aussi déplacer l’affectation vers une autre cible ou transformer une affectation simple en combo catégorie + fabricant. La ligne concernée est mise en évidence dans la liste, et un bouton Annuler permet de ressortir sans rien changer.

Déplacer une affectation vers une cible déjà occupée par une autre est refusé avec un message explicite, puisque chaque cible ne peut porter qu’une seule charte.

Le calculateur de taille

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

Comment la recommandation est construite

Le client saisit ses mensurations, un champ par groupe de mesure de la charte. À la soumission :

  1. Les valeurs sont normalisées en centimètres (conversion automatique si l’utilisateur a choisi les pouces : ×2.54).
  2. Le module retient d’abord les tailles exactes : les lignes dont chaque plage contient la valeur saisie pour le groupe correspondant. Quand un groupe compte plusieurs variantes, chaque variante qui correspond donne un résultat distinct.
  3. Il retient ensuite les tailles proches, en élargissant chaque plage de la tolérance dans les deux sens, et en écartant celles déjà listées dans le premier groupe. Ce second groupe n’apparaît que si la tolérance est supérieure à 0.
  4. Si rien ne correspond, même avec la tolérance, le module indique la ligne la moins éloignée plutôt que de ne rien répondre.
  5. La taille est extraite en priorité de la colonne correspondant à la langue de la boutique, puis eu, fr, intl, uk, us, jp.

Exemple

Tableau de soutiens-gorge avec une colonne sous-poitrine et quatre colonnes de bonnet groupées. La cliente saisit 87 cm de tour sous poitrine et 101 cm de tour de poitrine, la charte est réglée sur 3 cm de tolérance.

  • Tailles exactes : 4B et 4C. 87 tombe dans la plage 83–87 de la ligne 4, et 101 tombe à la fois dans le bonnet B (99–101) et dans le bonnet C (101–103) de cette ligne.
  • Tailles proches : 5B et 4D. Avec 3 cm de marge, 87 atteint la ligne 5 (88–92) dont le bonnet B est 104–106, et 101 atteint le bonnet D de la ligne 4 (103–105).

Retour utilisateur

Les tailles exactes s’affichent en pastilles pleines, les tailles proches en pastilles contour avec la marge appliquée. Les lignes correspondantes sont mises en surbrillance dans le tableau au-dessus, et les champs laissés vides sont signalés.

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 de groupes, 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

9 tables préfixées dfsg_ : dfsg_guide, dfsg_guide_lang, dfsg_column, dfsg_column_lang, dfsg_row, dfsg_cell, dfsg_assignment, dfsg_assignment_exclusion, 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 sept devrait fonctionner. Vérifiez également qu’il existe au moins une charte active et une affectation par défaut dans Guides des tailles → Affectations. Si le mode combos stricts est activé, vérifiez enfin que le produit n’appartient pas à une catégorie portant des combos qui ne couvrent pas sa marque.

J’ai créé un combo marque × catégorie mais les autres marques affichent quand même un tableau

C’est le comportement normal de la chaîne de résolution : un combo donne la priorité à une marque, il n’exclut pas les autres, qui continuent de descendre jusqu’à la règle de catégorie puis jusqu’au guide par défaut créé à l’installation. Pour que la catégorie devienne exclusive aux marques qui y ont un combo, activez Combos catégorie + fabricant stricts dans la configuration du module. Pour n’écarter que deux ou trois marques, gardez la règle de catégorie et remplissez plutôt Marques à exclure.

Le guide ne s’ouvre pas depuis l’aperçu rapide

Vérifiez que l’emplacement Aperçu rapide est activé dans la configuration : quand il ne l’est pas, le module ne charge volontairement ni sa feuille de style ni son script sur les pages de listing, et le bouton ne peut pas fonctionner depuis un aperçu. Vérifiez ensuite qu’au moins un emplacement rendu par votre aperçu rapide est actif : tous les thèmes n’y rendent pas les mêmes hooks, et l’onglet produit n’y est jamais rendu.

Puis-je importer des tableaux depuis un CSV ?

Pas à ce jour. L’éditeur visuel permet de construire et modifier les tableaux à la volée, colonne par colonne et ligne par ligne. L’import CSV est à l’étude pour une version ultérieure.

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