Bouton de redirection produit - Liens externes et point de vente, URL cible masquée, compteur de clics, édition CSV en masse
Ajoutez sur vos fiches produit un bouton qui envoie le visiteur ailleurs : site du fournisseur, marketplace, fiche technique ou offre affiliée. L'adresse externe n'apparaît jamais dans le code source — le bouton pointe vers une URL neutre de votre boutique qui relaie le visiteur et répond en noindex, nofollow. Activation produit par produit, avec cible et libellé propres, et compteur de clics visible sur la fiche produit. Trois emplacements, nouvel onglet, message d'avertissement optionnel. Export et import CSV validés ligne à ligne. Sans jQuery ni modification du thème. PrestaShop 1.7 et 8.
Un bouton, dirigé exactement où vous le souhaitez
Certains produits ne se vendent pas sur votre boutique. Une marque que vous mettez en avant sans la stocker, un article disponible sur une marketplace, une prestation qui se réserve ailleurs, une machine dont la fiche technique vit sur le site du fabricant. Dans ces cas-là, un bouton d'ajout au panier est une réponse inadaptée et une simple description mène à une impasse.
Ce module place un vrai bouton sur la fiche produit et envoie le visiteur vers l'adresse de votre choix. Vous l'activez produit par produit : le reste de votre catalogue n'est pas touché.
L'adresse de destination reste hors de votre code source
C'est ce qui distingue ce module d'un lien codé à la main.
Le bouton ne transporte pas l'URL externe. Il pointe vers une adresse neutre de votre propre boutique — /module/redirectproduct/redirect?id_product=… — et c'est ce contrôleur qui relaie le visiteur. La réponse est envoyée avec l'en-tête X-Robots-Tag: noindex, nofollow, et le lien lui-même porte l'attribut rel="nofollow noopener".
La destination ne traîne donc pas dans votre HTML à la portée des aspirateurs de données, et les moteurs de recherche reçoivent la consigne explicite de ne pas suivre ni indexer ce rebond.
Impossible d'en faire une redirection ouverte
Le contrôleur de redirection ne fait pas confiance à ce qu'on lui transmet. Il charge la redirection enregistrée pour le produit et ne relaie que si cet enregistrement existe, est activé, et si son URL repasse la validation au moment même de la requête. Tout le reste atterrit sur votre page 404.
Valider signifie ici : une adresse absolue en http:// ou https://, avec rejet immédiat des caractères de contrôle, des espaces, des guillemets doubles, des chevrons et des antislashs, puis une vérification finale par le validateur d'URL natif de PHP. Un schéma exécutable ou de type données en ligne ne passe pas, pas plus qu'un produit sans redirection configurée.
Un compteur de clics là où vous le verrez vraiment
Chaque visiteur qui suit un bouton est comptabilisé. Le chiffre s'affiche dans la liste de configuration du module et sur la fiche d'édition du produit concerné : vous n'avez pas à aller le chercher, vous voyez la performance du produit pendant que vous êtes déjà en train de le modifier.
Un message d'avertissement avant le départ, si vous le souhaitez
Produit par produit, vous pouvez activer une petite fenêtre de confirmation avant que le visiteur ne quitte le site. Elle propose "Stay on this page" (rester sur cette page) et "Continue" (continuer), et le message est le vôtre : vous le rédigez et il est traduisible.
Laissez-la désactivée pour une fiche marketplace que vos clients anticipent. Activez-la pour un lien d'affiliation, ou partout où vous préférez annoncer clairement le passage vers un autre site.
Vos mots, par boutique et par produit
Définissez une fois un libellé de bouton par défaut pour toute la boutique — laissez le champ vide et les boutons afficheront "More information" (plus d'informations). Puis remplacez-le sur les produits où un verbe précis fonctionne mieux : Vérifier la disponibilité, Réserver un créneau, Télécharger la fiche technique, Acheter sur la marketplace.
Le bouton porte aussi une petite icône de lien externe après son libellé, dessinée en SVG intégré qui hérite de la couleur et de la taille de texte du bouton : le visiteur comprend d'un coup d'œil que le lien mène hors du site.
Trois emplacements, et une alerte quand l'un d'eux ne fonctionnera pas
Placez le bouton à côté du bouton d'ajout au panier, sous la disponibilité du produit, ou en bas de la fiche produit. Chaque emplacement correspond à un hook d'affichage standard de PrestaShop : aucun fichier de thème n'est modifié.
Si votre boutique tourne en mode catalogue alors que l'emplacement choisi est à côté du bouton d'ajout au panier — un bloc que la plupart des thèmes masquent entièrement dans ce mode — la page de configuration vous le signale et vous suggère un emplacement qui s'affichera réellement. Le module vérifie lui-même la condition au lieu de vous laisser chercher pourquoi rien n'apparaît.
Il s'affiche une fois au maximum par page, uniquement à l'emplacement configuré.
Export et import CSV pour le travail en masse
Exportez la table entière, modifiez-la dans un tableur, réimportez-la. Le format est d'une ligne par produit :
id_product;active;url;button_label;confirm;clicks
Chaque ligne est validée à l'entrée, et les lignes rejetées sont signalées avec leur numéro de ligne et le motif : produit inexistant, indicateur différent de 1/0, adresse vide ou URL absolue invalide. Le rapport détaille les dix premiers problèmes puis indique combien d'autres ont été rencontrés. Une ligne dont l'adresse est invalide est importée désactivée plutôt que discrètement abandonnée : vous la voyez et vous la corrigez.
Le compteur de clics est ignoré à l'import : sur un import ordinaire, un aller-retour par le tableur n'écrase pas vos statistiques, les lignes existantes étant mises à jour sur place et conservant leurs compteurs. Une seule exception : "Replace all" (tout remplacer), qui vide la table et efface donc aussi les compteurs. Cette option n'efface toutefois vos données existantes qu'une fois que le fichier envoyé a prouvé qu'il contient des lignes importables : un fichier mal formé ne peut pas vider la table.
Les fichiers exportés par la version 3.x — séparateur virgule, anciens noms de colonnes — sont reconnus et convertis automatiquement.
La version 4 a fermé deux points d'entrée non authentifiés
Cela mérite d'être dit sans détour.
La version 3.x livrait import.php et export.php comme fichiers autonomes accessibles sans aucune authentification. N'importe qui connaissant l'URL pouvait télécharger toute votre table de redirections, ou l'effacer et la remplacer par la sienne. Ces deux fichiers ont disparu. Le CSV fonctionne désormais à l'intérieur de la page de configuration, derrière le jeton de session de votre employé.
Un troisième fichier, redirection.php, relayait les visiteurs sans valider l'URL enregistrée et contournait entièrement la pile de contrôleurs front. Il est remplacé par le véritable contrôleur front décrit plus haut, qui valide la cible et comptabilise le clic.
La mise à jour 4.0.0 supprime ces fichiers obsolètes du disque au lieu de les laisser en place.
Ce que la version 4 a corrigé par ailleurs
L'ancienne page d'administration chargeait jQuery 1.9 depuis un CDN Google — inopérant sur toute boutique appliquant une Content-Security-Policy, et poids inutile partout ailleurs. Toutes les dépendances CDN et jQuery ont été supprimées ; le front office repose sur un seul petit fichier JavaScript natif, chargé uniquement sur les fiches produit qui en ont besoin.
Sur PrestaShop 1.7, le bouton n'apparaissait souvent pas du tout, parce que le module était enregistré sur un alias de hook hérité de la 1.6 ; les boutiques en mode catalogue ne le voyaient qu'en pied de page, à cause d'une condition inversée. Les emplacements sont désormais explicites et c'est vous qui les choisissez.
Pire encore, enregistrer un produit depuis un contexte où le panneau du module n'était pas affiché effaçait silencieusement la redirection de ce produit : actions groupées, édition rapide, imports. Les enregistrements sont maintenant protégés par un champ marqueur, et une sauvegarde qui n'a jamais affiché le panneau laisse la redirection intacte.
La version 3.x affichait aussi une URL leurre remplacée au survol de la souris. Elle ne trompait personne et donnait une impression trompeuse. La version 4 atteint l'objectif légitime — garder la cible hors de votre code source et hors de portée des robots — proprement, avec le lien neutre et la réponse noindex.
La migration depuis la 3.x tient en une étape
Installez la version 4 par-dessus l'ancienne, ou utilisez le bouton de mise à jour du module. La migration transfère sur place chaque redirection enregistrée — cibles, état activé/désactivé, indicateurs de notification —, convertit votre ancien libellé de bouton, supprime les lignes orphelines laissées par la 3.x et efface les fichiers obsolètes, dont les trois points d'entrée vulnérables.
La version 4.0.3 a corrigé un défaut de mise à jour qui mérite d'être nommé : l'étape 4.0.0 conditionnait sa réussite à cinq appels registerHook() enchaînés renvoyant tous vrai. Un seul échec passager — ou un hook déjà enregistré par une tentative précédente incomplète — marquait donc toute l'étape en échec et PrestaShop désactivait le module. Les hooks sont maintenant enregistrés de façon idempotente et l'étape renvoie toujours un succès.
Compatibilité
PrestaShop 1.7 et 8, en huit langues : allemand, anglais, espagnol, français, italien, néerlandais, polonais et turc.
Aucun override, aucune modification du cœur ni du thème. Le bouton utilise les classes de bouton de votre thème et hérite donc de votre style. La désinstallation supprime la table du module — toutes les redirections et tous les compteurs de clics — ainsi que ses réglages ; exportez en CSV au préalable si vous pensez avoir besoin des données plus tard.
Questions fréquentes
Les visiteurs peuvent-ils voir l'adresse externe avant de cliquer ?
Pas dans votre code source. Le bouton pointe vers une adresse neutre de votre propre boutique qui les relaie, et cette réponse est envoyée en noindex, nofollow. La destination n'apparaît dans la barre d'adresse qu'une fois le lien suivi.
Quelqu'un peut-il détourner la redirection vers son propre site ?
Non. Le contrôleur ne relaie que vers l'adresse enregistrée pour ce produit, et uniquement après l'avoir revalidée au moment de la requête. Une requête manipulée ou non configurée atterrit sur votre page 404.
Où activer la redirection pour un produit ?
Catalogue → Produits → ouvrez le produit → onglet Modules. Vous y renseignez l'adresse cible, cochez l'interrupteur, ajoutez éventuellement un libellé de bouton et un message d'avertissement propres au produit, et consultez le nombre de clics.
Pourquoi mon bouton ne s'affiche-t-il pas ?
Trois points, dans l'ordre : l'interrupteur du produit est bien coché ; l'adresse commence par http:// ou https:// (le panneau vous avertit sinon) ; et l'emplacement choisi est bien rendu par votre thème. En cas de doute, utilisez Bas de la fiche produit : tous les thèmes prennent ce hook en charge.
Est-ce que cela fonctionne en mode catalogue ?
Oui, mais pas à l'emplacement à côté du bouton d'ajout au panier, car la plupart des thèmes masquent entièrement ce bloc en mode catalogue. La page de configuration détecte la situation et vous invite à choisir un autre emplacement.
Un aller-retour par le tableur remet-il mes compteurs de clics à zéro ?
Pas sur un import ordinaire : la colonne du compteur est exportée à titre informatif et ignorée à l'import, et les lignes existantes conservent leurs compteurs. En revanche, l'option "Replace all" (tout remplacer) vide la table et efface les compteurs avec elle : ne la cochez que si c'est bien ce que vous voulez.
Je migre depuis la 3.x : vais-je perdre mes redirections ?
Non. La mise à jour transfère sur place chaque redirection, son état activé/désactivé et son indicateur de notification, convertit votre libellé de bouton et nettoie les anciens fichiers 3.x devenus obsolètes.
Le module modifie-t-il mon thème ou surcharge-t-il des fichiers du cœur ?
Non. Trois hooks d'affichage standards pour le bouton, plus les hooks d'enregistrement produit et de médias, et rien d'autre.
-
CompatibilitéPrestashop 1.5
Prestashop 1.6
Prestashop 1.7
Prestashop 8 -
Traductions de Module DisponiblesAllemand
Anglais
Espagnol
Français
Italien
Néerlandais
Polonais
Turc
MEG Venture
4 autres produits dans la même catégorie
| Version | 4.0.3 |
|---|---|
| Dernière mise à jour | 2026-07-30 |
| Journal des modifications | - [2026-07-30] Backfill missing translation keys for product redirect module in multiple languages - [2026-07-24] Add Polish and Turkish translations for redirect product module strings - [2026-07-23] Fix upgrade process to prevent module disablement and update version to 4.0.3 - [2026-07-23] Translate product redirect module strings to Turkish for better localization and user experience. - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Add translation files for FR, DE, PL, NL, TR, IT, ES (7 languages) - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Add missing translation files (fr, de, pl, nl, tr, it, es) - [2026-07-23] Fix invisible "Stay on this page" button in confirm modal (4.0.2) - [2026-07-23] Add an "opens another page" icon to the redirect button (4.0.1) - [2026-07-22] Fix typo in display name for Product Redirect Button - [2026-07-15] Add redirect product module files and functionality - [2026-06-21] Refactor code style and update comments for consistency - [2023-09-21] v3.2.5 - [2023-09-06] v3.2.4 - [2021-04-06] v3.2.3 - [2021-01-23] v3.2.2 - [2021-01-23] Initial commit |
• [2023-09-21] v3.2.5
• [2023-09-06] v3.2.4
• [2021-04-06] v3.2.3
• [2021-01-23] v3.2.2
• [2021-01-23] Initial commit
Commentaires (3)
Votre avis ne peut pas être envoyé
Signaler le commentaire
Signalement envoyé
Votre signalement ne peut pas être envoyé