PS PrestaShop Intermédiaire

DataFirefly All in One SEO — Documentation complète

Module SEO premium tout-en-un pour PrestaShop 8 et 9 : méta dynamiques, schémas JSON-LD, sitemap multilingue, redirections, 404, robots.txt intelligent, tracking et analyseur de contenu.

Mis à jour Version du module 1.0.2

Suite SEO premium tout-en-un pour PrestaShop 8 et 9 : templates de méta dynamiques, schémas JSON-LD complets, sitemap XML multilingue, redirections, monitoring 404, Open Graph et Twitter Cards, GA4 et GTM, robots.txt intelligent avec blocage des crawlers IA et analyseur de contenu — tout dans un seul module.

Prérequis

  • PrestaShop : 8.0 à 9.x
  • PHP : 8.1 ou supérieur (8.2 et 8.3 recommandés)
  • MySQL : 5.7+ ou MariaDB 10.3+
  • Module productcomments (officiel PrestaShop) : optionnel, requis uniquement pour AggregateRating sur les produits
  • mod_rewrite activé sur le serveur Apache (ou équivalent Nginx) pour les URL réécrites
Le module est conscient du contexte multi-boutique nativement : toutes les tables sont scopées par id_shop. Vous pouvez avoir des configurations totalement différentes par boutique.

Installation

  1. Téléchargez le fichier dfallinoneseo-vX.Y.Z.zip depuis votre compte client DataFirefly.
  2. Connectez-vous à votre back-office PrestaShop.
  3. Allez dans Modules → Module Manager.
  4. Cliquez sur Installer un module en haut à droite.
  5. Glissez-déposez le fichier ZIP ou cliquez sur Sélectionner un fichier.
  6. L’installation crée automatiquement les 11 tables SQL, enregistre les hooks et ajoute le menu Améliorer → DataFirefly SEO.
Après installation, ouvrez le Dashboard du module pour un aperçu du score SEO global et des points à corriger en priorité.

Premier paramétrage en 10 minutes

Ce parcours rapide vous permet de configurer l’essentiel avant la première crawl Google.

  1. Réglages → Général : activez le module, renseignez le nom du site et le libellé « Accueil » pour le fil d’Ariane.
  2. Méta & templates : définissez au minimum un template Produit et un template Catégorie (voir section dédiée).
  3. Schema → Identité de l’organisation : renseignez logo, téléphone, email, adresse et URLs des réseaux sociaux (sameAs).
  4. Sitemap : activez le sitemap et cliquez sur Régénérer maintenant.
  5. Tracking : ajoutez votre GA4 Measurement ID et/ou GTM ID.
  6. Tracking → Vérifications : collez la valeur de vérification Google Search Console.
  7. Robots.txt : cliquez sur Charger les défauts (PS + blocage AI) pour partir d’une base saine.

Templates de méta

Le module remplace la saisie manuelle de meta_title et meta_description par des templates dynamiques par type d’entité. À l’enregistrement d’une fiche dont les méta sont vides, le template correspondant est appliqué automatiquement.

Types d’entités supportés

  • Produit : fiches produit (tous types confondus, y compris virtuels et pack)
  • Catégorie : pages catégorie
  • Page CMS : pages de contenu statique
  • Marque / Fabricant : pages fabricant
  • Fournisseur : pages fournisseur
  • Accueil : page d’accueil de la boutique
  • Pages génériques : /contact, /sitemap, etc.

Tokens disponibles

Les tokens sont remplacés par les valeurs réelles au rendu de la page. Tous les tokens ne sont pas disponibles sur tous les types d’entité.

  • {shop_name} — nom de la boutique
  • {sep} — séparateur (par défaut |)
  • {product_name} — nom du produit (langue courante)
  • {product_reference} — référence interne
  • {product_sku} — alias de référence
  • {product_ean13} — code-barres EAN13
  • {product_brand}, {brand} — marque/fabricant
  • {category} — catégorie par défaut (produit) ou nom de la catégorie (page catégorie)
  • {category_parent} — nom de la catégorie parente
  • {category_description} — description courte (160 car. max)
  • {short_description} — description courte du produit (160 car. max)
  • {price} — prix TTC formaté avec devise
  • {price_tax_excl} — prix HT formaté
  • {title} — titre de la page CMS
  • {summary} — extrait du contenu CMS (160 car. max)

Blocs conditionnels

Pour ne pas afficher un token vide, utilisez la syntaxe conditionnelle :

{?product_brand}{product_brand} | {/?}{product_name} - {shop_name}

Si product_brand est vide (produit sans marque), tout le bloc entre {?token} et {/?} est supprimé. Sinon, son contenu est rendu et les tokens à l’intérieur sont remplacés normalement.

Exemples de templates recommandés

Produit :

Title : {?product_brand}{product_brand} {/?}{product_name} - {category} | {shop_name}
Description : Découvrez {product_name}{?product_brand} signé {product_brand}{/?}. {short_description} Livraison rapide sur {shop_name}.

Catégorie :

Title : {category} - {?category_parent}{category_parent} - {/?}{shop_name}
Description : Tous les produits de la catégorie {category} sur {shop_name}. {category_description}

Accueil :

Title : {shop_name} - Boutique en ligne
Description : Bienvenue sur {shop_name}. Découvrez notre catalogue, livraison rapide, paiement sécurisé.

Surcharge par entité

Pour surcharger une fiche spécifique (par exemple un produit phare), cliquez sur l’icône Surcharge méta dans le menu Édition en masse ou utilisez l’URL :

?controller=AdminDfSeoMeta&entity=product&entity_id=42

La page de surcharge permet de définir meta_title, meta_description, la directive robots (noindex,follow par exemple) et un canonical custom par langue.

La directive robots définie sur une entité spécifique a priorité sur les réglages globaux d’indexation. Utilisez-la avec parcimonie pour éviter de désindexer accidentellement vos meilleures pages.

Schémas JSON-LD

Le module génère un bloc @graph unique regroupant tous les schémas de la page courante, validé Google Rich Results Test.

Schémas générés automatiquement

  • Organization — sur toutes les pages, identité de la société
  • WebSite — sur l’accueil, avec SearchAction pour activer le sitelinks search box
  • LocalBusiness — si une adresse physique est renseignée
  • BreadcrumbList — fil d’Ariane
  • Product — sur les fiches produit, avec offers, priceValidUntil, gtin13/isbn/mpn
  • AggregateRating — agrégée depuis le module productcomments officiel
  • Article — sur les pages CMS
  • FAQPage — depuis les blocs FAQ produit ou page

Identité de l’organisation

Onglet Schema → Identité de l’organisation. Champs à renseigner :

  • Type : Organization, Corporation, LocalBusiness, Store, OnlineStore, OnlineBusiness
  • Logo : URL absolue (recommandé 600×60 minimum, ratio carré ou paysage)
  • Téléphone, Email : utilisés dans contactPoint
  • Adresse postale : rue, code postal, ville, pays (ISO-2)
  • sameAs : une URL par ligne (Facebook, Instagram, LinkedIn, Twitter/X, etc.)

Validité des offres produit

Le champ Validité des offres produit (jours) contrôle la valeur de priceValidUntil dans Product.offers. Par défaut : 60 jours. Google exige ce champ pour afficher le prix dans les résultats enrichis.

Schémas personnalisés

Onglet Schema → Schémas personnalisés. Permet d’ajouter des blocs JSON-LD sur mesure (HowTo, Recipe, Event, JobPosting, VideoObject, Course, etc.) sur une portée précise :

  • global : toutes les pages
  • home : accueil uniquement
  • product : toutes les pages produit
  • product_id : un produit spécifique (utilise le champ ID)
  • category, category_id : idem catégorie
  • cms, cms_id : idem page CMS

Variables disponibles dans le JSON personnalisé : {shop_name}, {base_url}, {entity_id}, {entity_type}.

Le JSON-LD personnalisé est inséré tel quel dans le @graph. Validez-le avec le Rich Results Test avant publication. Un JSON invalide est rejeté silencieusement.

Sitemap XML

Le module génère un sitemap XML conforme à la spécification sitemaps.org, avec hreflang sur chaque URL et support des images. Architecture : un sitemap index par boutique, puis un sitemap par type d’entité × langue, découpé en chunks.

Configuration

Onglet Sitemap. Activez le sitemap puis cochez le contenu à inclure :

  • Produits (par défaut tous les produits actifs)
  • Catégories
  • Pages CMS
  • Marques / Fabricants
  • Fournisseurs
  • Images (ajoute image:image à chaque URL produit)
  • Vidéos (si présentes dans les fiches)

Options supplémentaires :

  • Exclure les ruptures : retire les produits en out-of-stock
  • Gzip : génère aussi les variantes .xml.gz (réduit 5 à 10x la taille téléchargée par les crawlers)
  • URLs par fichier : taille de chunk (recommandé 5000-10000, max 50000 par spec XML)

Régénération

La régénération est manuelle depuis l’admin pour éviter toute charge serveur imprévue. Cliquez sur Régénérer maintenant.

Pour automatiser, planifiez un cron qui appelle le script suivant (toutes les 6 ou 12 heures selon la fréquence de mise à jour de votre catalogue) :

0 */6 * * * php /var/www/html/index.php fc=module&module=dfallinoneseo&controller=sitemap&action=rebuild

Soumission aux moteurs

Cliquez sur Pinger les moteurs pour notifier Google et Bing (endpoints legacy mais toujours actifs). Pour Google Search Console, soumettez l’URL du sitemap index une fois pour toutes dans GSC → Sitemaps. GSC re-crawl automatiquement à chaque modification.

URL du sitemap index : https://votre-boutique.com/sitemap.xml

Sitemap HTML public

Un sitemap HTML lisible par les humains est généré automatiquement à /plan-du-site. Il agrège catégories (arbre), pages CMS, marques, fournisseurs et les 200 derniers produits. Utile pour le maillage interne et l’accessibilité.

Redirections

Le module gère les redirections HTTP 301 (permanent), 302 (temporaire), 307, 308 et 410 (Gone) avec trois types de match.

Types de match

  • Exact : l’URL source doit correspondre exactement (sans query string)
  • Préfixe : l’URL source est un préfixe de l’URL demandée. Le suffixe est conservé dans la destination si Conserver query string est coché. Utile pour migrer des dossiers entiers (/ancien-dossier//nouveau-dossier/).
  • Regex : expression régulière PHP (mode ~...~i sensible/insensible). Les groupes de capture sont disponibles dans la destination via $1, $2, etc.

Création manuelle

Onglet Redirections → Nouvelle redirection. Champs :

  • URL source : chemin sans le domaine (ex: /ancienne-page)
  • URL destination : chemin ou URL absolue. Laisser vide pour un code 410.
  • Type de match, Code HTTP, Conserver query string

Import / export CSV

Format CSV attendu (avec header) :

source,destination,type,code
/ancien-produit,/nouveau-produit,exact,301
/ancien-dossier/,/nouveau-dossier/,prefix,301
/old-(.*),/new-$1,regex,301

L’export CSV reprend les redirections actuellement filtrées dans la liste.

Redirection automatique au changement de slug

Si l’option Réglages → Monitoring → Redirection 301 auto en cas de changement d’URL est cochée, le module crée une 301 automatiquement quand vous modifiez le slug d’un produit, d’une catégorie, d’une page CMS, d’une marque ou d’un fournisseur. Le created_by est alors marqué auto:urlchange pour distinction.

Cette option évite la majorité des 404 SEO classiques liés aux refontes de contenu. Activez-la dès l’installation.

Monitoring 404

Onglet Monitor 404. Capture toutes les URLs en erreur 404 servies par PrestaShop, avec déduplication, comptage des hits, détection des bots et hash des adresses IP (sel COOKIE_KEY de PrestaShop pour conformité RGPD).

Filtres disponibles

  • Non résolues : URLs sans redirection couvrante (vue par défaut)
  • Résolues : URLs pour lesquelles une redirection a été créée a posteriori
  • Bots : hits venant de user-agents identifiés comme bots
  • Toutes

Créer une redirection en un clic

Sur chaque ligne, le bouton Rediriger ouvre un formulaire inline qui pré-remplit la source. Saisissez la destination, choisissez le code HTTP, validez. La 404 est automatiquement marquée comme résolue.

Purge et maintenance

Le menu Réglages → Monitoring expose un seuil Nombre maximum d’entrées 404 conservées (par défaut 5000). Au-delà, le bouton Purger les vieux 404 supprime les entrées non résolues les plus anciennes.

Robots.txt dynamique

Le module sert un fichier /robots.txt généré dynamiquement à chaque requête, basé sur les règles définies dans Robots.txt.

Préréglages PrestaShop + blocage AI

Le bouton Charger les défauts (PS + blocage AI) écrase toutes les règles actuelles et charge un préréglage sain qui :

  • Bloque les répertoires sensibles PrestaShop (/admin*/, /cache/, /classes/, etc.)
  • Bloque les pages techniques (/cart, /order, /my-account, etc.)
  • Bloque les principaux crawlers IA non respectueux : GPTBot, ClaudeBot, CCBot, Google-Extended, anthropic-ai
  • Pointe vers le sitemap (Sitemap: /sitemap.xml)

Règles personnalisées

Chaque règle a un user-agent, une directive (Allow, Disallow, Crawl-delay), une valeur et une position (ordre dans le fichier). Activez/désactivez une règle sans la supprimer via la pastille ON/OFF.

Aperçu live

Le bloc Aperçu du fichier généré en bas de page rend le robots.txt tel qu’il sera servi, avant publication.

Fichier llms.txt natif

Le module sert un fichier /llms.txt conforme à la spécification llmstxt.org. Ce fichier liste, en markdown, les sections principales du site pour les crawlers IA respectueux qui souhaitent une vue structurée plutôt que de scraper l’intégralité du HTML.

Aucune configuration n’est requise — le module génère automatiquement le fichier depuis votre arborescence de catégories, pages CMS et marques.

Open Graph et Twitter Cards

Onglet Social. Le module injecte les balises og:* et twitter:* sur toutes les pages.

Réglages

  • Activer Open Graph et Twitter Cards : master switch
  • og:locale automatique : calculé depuis la langue du contexte (ex: fr_FR)
  • Image OG par défaut : URL absolue d’une image 1200×630 (utilisée quand la page n’a pas d’image dédiée)
  • og:site_name, og:type par défaut
  • Twitter @handle et type de carte (summary ou summary_large_image)
  • fb:app_id : Facebook App ID
Pour les fiches produit, le module utilise automatiquement l’image principale de la fiche. Pour les autres pages, l’image OG par défaut est utilisée si aucune image n’est définie.

Tracking : GA4, GTM, pixels

GA4 et Enhanced Ecommerce

Champ GA4 Measurement ID : format G-XXXXXXXXXX. Validation automatique du format.

Cochez Enhanced Ecommerce pour activer les événements view_item, view_item_list, add_to_cart, remove_from_cart, begin_checkout, add_payment_info, purchase.

Cochez Respecter Consent Mode v2 pour anonymiser les hits jusqu’au consentement explicite (compatible avec les CMP standards).

Google Tag Manager

Champ GTM ID : format GTM-XXXXXXX. Le module injecte le snippet GTM dans le head et le fallback noscript juste après l’ouverture du body.

Pixels publicitaires

  • Facebook Pixel ID : 15 chiffres
  • TikTok Pixel ID : alphanumérique

Si Consent Mode v2 est actif, ces pixels ne se déclenchent qu’après consentement.

Vérifications de propriété

Collez les valeurs des balises de vérification (sans la balise meta complète, uniquement le contenu de l’attribut content) :

  • Google Search Console
  • Bing Webmaster Tools
  • Yandex Webmaster
  • Pinterest
  • Baidu

Code personnalisé head et body-end

Deux champs libres acceptent du HTML/JS arbitraire :

  • Code injecté dans head : pour scripts tiers, méta complémentaires
  • Code injecté juste avant la fermeture du body : idéal pour widgets de chat, retargeting tardif, scripts asynchrones
Ces champs n’effectuent aucune validation. Une erreur de syntaxe HTML peut casser le rendu de la page. Testez en pré-production avant publication.

Analyseur de contenu

Onglet Analyseur. Soumettez un produit, une catégorie, une page CMS ou du HTML brut à l’analyseur pour obtenir un score SEO global et un détail des métriques.

Métriques calculées

  • Score SEO global (0-100) — pondération weighted des checks
  • Lisibilité Flesch — approximation multilingue (vowel-group syllable count)
  • Nombre de mots, nombre de phrases
  • Densité du mot-clé principal (en %)
  • Liens internes / externes / nofollow
  • Images sans attribut alt
  • Structure des titres H1 à H6
  • Présence du mot-clé dans slug et premier paragraphe

Vérifications (checks)

L’analyseur retourne une liste de checks avec statut good / warn / bad :

  • Longueur du title (50-60 caractères)
  • Longueur de la meta description (140-160 caractères)
  • Présence et longueur du slug
  • Longueur du corps (mini 300 mots)
  • Présence d’au moins une image avec alt
  • Mot-clé dans le title, dans le premier paragraphe, dans le slug
  • Densité du mot-clé entre 0,5 % et 2,5 %
  • Au moins un H1 et plusieurs H2/H3
L’analyseur est un guide, pas une vérité absolue. Un score de 80+ est excellent. En dessous de 50, revoyez la structure et le wording. Ne sacrifiez jamais la qualité éditoriale pour un score.

Édition en masse

Onglet Édition en masse. Grille paginée (30 entrées/page) avec filtres pour modifier rapidement meta_title, meta_description et link_rewrite sur produits, catégories ou pages CMS.

Filtres disponibles

  • Toutes
  • Sans title : seules les entrées avec meta_title vide
  • Sans description : seules les entrées avec meta_description vide
  • Recherche par nom

Appliquer les templates en masse

Le bouton Appliquer les templates applique automatiquement le template défini pour le type d’entité courant aux fiches correspondant aux filtres. Cochez Appliquer uniquement aux champs vides pour éviter d’écraser les méta déjà saisies.

Métabox SEO sur la fiche produit

Sur la page d’édition d’un produit en back-office, un encart DataFirefly SEO est ajouté avec :

  • Un score SEO live (7 checks : longueur title, description, slug, body, image, EAN13, marque)
  • Un aperçu SERP Google rendu fidèlement
  • Le mot-clé principal détecté

Réglages avancés

Indexation

Onglet Réglages → Indexation :

  • hreflang multilingue : génère les balises link rel="alternate" sur toutes les pages
  • Stratégie x-default : Langue par défaut (recommandé), Anglais, ou Désactivé
  • URL canonical : injecte link rel="canonical"
  • Canonical sur les paginations : Sur la page courante (recommandé), Toujours sur la page 1, ou Pas de canonical
  • noindex automatiques : pages /search, panier, mon compte, nouveautés, meilleures ventes, promos, facettes
  • Canonical vers la page mère sur facettes : évite le duplicate content de la navigation à facettes

Images

  • Génération automatique des attributs alt : à l’enregistrement d’une image sans alt, applique le template
  • Template alt : par défaut {product_name} - {shop_name}
  • Lazyload images natif : ajoute loading="lazy" et decoding="async" à toutes les images, avec fallback IntersectionObserver pour les images data-src

Maintenance

  • Vider le cache : purge le cache Smarty + cache PrestaShop
  • Purger les vieux 404 : applique le seuil configuré
  • Exporter toutes les données (JSON) : télécharge un fichier JSON avec toutes les tables SEO de la boutique courante (utile pour migration entre environnements ou backup avant désinstallation)

Multi-boutique

Toutes les fonctionnalités sont scopées par id_shop. En passant d’une boutique à une autre via le sélecteur de contexte PrestaShop, vous voyez et modifiez uniquement les données de cette boutique.

Cas particuliers à connaître :

  • Templates : un template par couple (type d’entité, boutique). Définissez explicitement les templates pour chaque boutique.
  • Sitemap : un sitemap_index distinct par boutique, accessible à https://boutique-1.com/sitemap.xml, https://boutique-2.com/sitemap.xml, etc.
  • Robots.txt : règles par boutique, servies sur le domaine correspondant
  • Redirections : par boutique
  • Schémas personnalisés : par boutique

Dépannage

Le sitemap ne se génère pas

  • Vérifiez que le dossier modules/dfallinoneseo/sitemaps/ est accessible en écriture par PHP
  • Vérifiez les permissions : chmod 755 modules/dfallinoneseo/sitemaps/
  • Augmentez max_execution_time dans php.ini si vous avez plus de 50 000 produits

Les schémas JSON-LD n’apparaissent pas

  • Vérifiez que le module est activé (Réglages → Général)
  • Vérifiez que le type de schéma concerné est activé (Schema → Types de schémas générés)
  • Videz le cache PrestaShop
  • Inspectez la source HTML : les schémas sont injectés dans un bloc script type="application/ld+json"

Les redirections 301 ne fonctionnent pas

  • Vérifiez que le module est installé et activé
  • Vérifiez que les redirections sont marquées actives (pastille ON)
  • Pour les regex, testez votre expression sur regex101.com en mode PCRE
  • L’ordre de priorité est : exact → préfixe → regex (par hit_count décroissant)

GA4 / GTM ne s’injecte pas

  • Vérifiez le format de l’ID (G-XXXXXXX ou GTM-XXXXXXX)
  • Si Consent Mode v2 est actif, le snippet est en mode « denied » par défaut jusqu’au consentement. Vérifiez la couche CMP.
  • Inspectez le head de la page : le snippet GA4/GTM est injecté juste avant la fermeture

Le robots.txt ne change pas

  • Vérifiez qu’aucun fichier robots.txt statique n’existe à la racine du site (il prendrait priorité sur le module). Supprimez-le.
  • Le module sert le robots.txt via une route PrestaShop — vérifiez que les URL réécrites sont activées

Erreur lors de la création des tables SQL à l’installation

  • Vérifiez que l’utilisateur MySQL a les droits CREATE et ALTER
  • Vérifiez l’encodage : MySQL doit supporter utf8mb4 avec collation utf8mb4_unicode_ci
  • Si le préfixe de table custom de PrestaShop dépasse 5 caractères, certains noms d’index peuvent dépasser la limite MySQL de 64 caractères. Contactez le support.

Référence technique

Hooks utilisés

Le module enregistre 18 hooks :

  • displayHeader — injection des balises méta, canonical, hreflang, OG, Twitter, JSON-LD, GA4/GTM, vérifications
  • displayBeforeBodyClosingTag — injection GTM noscript, FB Pixel noscript, custom body-end code
  • displayBackOfficeHeader — CSS/JS du back-office
  • displayAdminProductsExtra — métabox SEO sur la fiche produit
  • actionDispatcherBefore, actionDispatcherAfter — routing des redirections et capture 404
  • actionObjectProductAddAfter, actionObjectProductUpdateAfter — auto-fill méta + auto-301
  • actionObjectCategoryAddAfter, actionObjectCategoryUpdateAfter — idem catégorie
  • actionObjectCmsAddAfter, actionObjectCmsUpdateAfter — idem CMS
  • actionObjectManufacturerUpdateAfter, actionObjectSupplierUpdateAfter — auto-301 sur changement de slug
  • actionAdminControllerSetMedia, actionFrontControllerSetMedia — assets CSS/JS
  • displayProductExtraContent — réservé pour usages futurs
  • moduleRoutes — routes /sitemap.xml, /plan-du-site, /robots.txt, /llms.txt

Tables SQL ajoutées

Toutes les tables utilisent le préfixe df_seo_, charset utf8mb4, collation utf8mb4_unicode_ci :

  • df_seo_meta, df_seo_meta_lang — surcharges méta par entité
  • df_seo_template, df_seo_template_lang — templates par type
  • df_seo_redirect — redirections 301/302/307/308/410
  • df_seo_404 — journal des 404
  • df_seo_score — snapshots de score (analyseur)
  • df_seo_keyword — focus keywords
  • df_seo_robots_rule — règles robots.txt
  • df_seo_schema_custom — schémas JSON-LD personnalisés
  • df_seo_log — log diagnostic interne

Désinstallation

La désinstallation supprime les hooks et les onglets back-office, mais conserve les tables SQL et les données. Pour purger complètement :

DROP TABLE ps_df_seo_meta, ps_df_seo_meta_lang, ps_df_seo_template, ps_df_seo_template_lang,
           ps_df_seo_redirect, ps_df_seo_404, ps_df_seo_score, ps_df_seo_keyword,
           ps_df_seo_robots_rule, ps_df_seo_schema_custom, ps_df_seo_log;
DELETE FROM ps_configuration WHERE name LIKE 'DFSEO_%';
Avant désinstallation, utilisez Réglages → Maintenance → Exporter toutes les données (JSON) pour conserver une archive complète. Le format JSON permet de réimporter les redirections, templates et schémas sur une autre installation.

Mises à jour et support

  • Mises à jour : 12 mois inclus dès l’achat. Renouvellement annuel optionnel à 49 €.
  • Support : 12 mois par email, réponse sous 48h ouvrées.
  • Changelog et téléchargement des dernières versions sur votre compte client DataFirefly.
Cette page vous a-t-elle été utile ?

Toujours bloqué ? Contactez le support