DataFirefly Cart History & Restore Links : historique des paniers et liens de restauration
Installation, liens de restauration en back-office, page Mes paniers enregistrés, réglages, sécurité des liens et dépannage.
Installation
Installez le module depuis Modules > Gestionnaire de modules > Installer un module en envoyant le fichier ZIP, ou déposez le dossier dfcartrestore dans le répertoire /modules/ de votre boutique puis cliquez sur Installer.
L’installation crée une table de journal (dfcartrestore_log), génère la clé secrète qui signe les liens et ajoute la page Mes paniers enregistrés au compte client. Aucune table native n’est modifiée : les paniers restaurés sont des paniers PrestaShop ordinaires.
Principe de fonctionnement
Un lien de restauration ne transfère jamais un panier. Quand une personne l’ouvre, le module lit les lignes du panier source et les ajoute une par une à son propre panier, comme si elle cliquait sur « Ajouter au panier » pour chaque article.
- Le panier source n’est jamais modifié, qu’il appartienne à un autre client ou qu’il soit lié à une commande.
- Personne n’est connecté au compte du propriétaire du panier, contrairement au lien natif de récupération de panier de PrestaShop.
- Les prix, les promotions, le stock, les quantités minimales et la disponibilité à la commande sont ceux du moment de la restauration.
- Le même lien peut être utilisé plusieurs fois, par plusieurs personnes.
Liens de restauration en back-office
Liste des paniers
Dans Clients > Paniers, la colonne Lien de restauration affiche un bouton Copier le lien pour chaque panier qui contient des produits. Le lien est copié dans le presse-papiers sans ouvrir le panier. Dans l’export CSV de la liste, cette colonne contient l’URL en clair.
Fiche d’un panier
En haut de la fiche du panier, un encart affiche le lien complet avec les boutons Copier le lien et Ouvrir, ainsi que le nombre de fois où le lien a déjà servi. Si une durée de validité est configurée, la date d’expiration est indiquée.
Fiche client
Le bloc Paniers et liens de restauration liste les 10 derniers paniers non vides du client, avec leur date, le nombre d’articles, le total produits, le statut commandé ou non et le bouton de copie.
Le lien est généré dans la langue et pour la boutique du panier : un client italien reçoit un lien vers la version italienne de la boutique.
Ce que voit la personne qui ouvre le lien
Avec la page d’aperçu activée (réglage par défaut), le lien ouvre une page qui liste les articles du panier avec leurs miniatures et leurs quantités. Le visiteur clique sur Ajouter ces articles à mon panier pour lancer la restauration, puis il est redirigé vers le panier ou vers le tunnel de commande selon votre réglage.
Un message récapitule le résultat : nombre de produits ajoutés, bons de réduction appliqués, quantités ajustées au stock et articles qui n’ont pas pu être ajoutés.
Pour un devis préparé par téléphone, créez le panier depuis Commandes > Nouvelle commande, puis copiez son lien depuis la liste des paniers et envoyez-le au client.
Page Mes paniers enregistrés
Le lien Mes paniers enregistrés apparaît dans le compte client et dans le bloc Mon compte du pied de page. La page liste les paniers du client qui contiennent des produits, du plus récent au plus ancien, avec pour chacun :
- la date de dernière modification, le nombre d’articles et le total produits ;
- le statut Commandé avec la référence et un lien vers la commande, ou Non commandé ;
- les miniatures des produits et un détail dépliable, où les articles devenus indisponibles sont signalés ;
- le bouton Restaurer ce panier et, si l’option est active, le bouton Copier le lien de partage.
Le panier en cours du client n’apparaît pas dans la liste. En mode remplacement, une confirmation prévient le client que son panier en cours sera remplacé et qu’il le retrouvera sur cette même page.
Réglages
Compte client
- Afficher l’historique des paniers dans le compte client : active la page Mes paniers enregistrés et ses liens d’accès.
- Comportement de la restauration : Remplacer le panier en cours crée un nouveau panier et laisse l’ancien dans l’historique ; Ajouter au panier en cours fusionne les articles avec ceux déjà présents. Un visiteur non connecté fusionne toujours, car il ne pourrait pas récupérer un panier remplacé.
- Afficher les paniers déjà transformés en commande : permet de recommander les mêmes articles en un clic.
- Paniers par page : de 1 à 50, 10 par défaut.
- Période d’historique (jours) : seuls les paniers modifiés pendant cette période sont listés, 365 par défaut, 0 pour ne pas limiter.
- Permettre aux clients de copier un lien de partage : utile en B2B, quand un acheteur prépare le panier et qu’un collègue passe la commande.
- Après la restauration, rediriger le client vers : page panier ou tunnel de commande. Si des articles ont été ajustés ou ignorés, le client passe toujours par la page panier pour les voir.
Liens de restauration
- Validité des liens (jours) : s’applique aux liens générés à partir de maintenant, 0 pour des liens sans expiration.
- Afficher une page d’aperçu avant la restauration : recommandé, voir la section Sécurité.
- Reprendre les bons de réduction : Jamais, Uniquement quand le client restaure depuis son compte (défaut) ou Toujours. Un bon n’est appliqué que s’il reste valable pour le nouveau panier et son titulaire. Les règles automatiques sans code sont réappliquées par PrestaShop lui-même.
Sécurité des liens
Chaque lien porte l’identifiant du panier et une signature HMAC-SHA256 calculée avec la clé secrète du module. Un identifiant modifié à la main donne un lien invalide.
Le bouton Invalider tous les liens existants régénère la clé secrète : tous les liens partagés jusque-là cessent de fonctionner, les nouveaux liens affichés en back-office fonctionnent normalement.
Les passerelles de messagerie (Outlook Safe Links, Proofpoint, Mimecast) et les aperçus de liens de Slack, Teams ou WhatsApp ouvrent les liens automatiquement. Si vous désactivez la page d’aperçu, chaque ouverture automatique d’un navigateur ordinaire créerait un panier. Les robots reconnus voient toujours la page d’aperçu, même quand elle est désactivée.
Règles appliquées à la restauration
- Produit désactivé, non disponible à la commande ou absent de la boutique : ignoré.
- Déclinaison supprimée : ignorée.
- Quantité inférieure à la quantité minimale : relevée à la quantité minimale.
- Stock insuffisant sans commande hors stock autorisée : quantité réduite au stock disponible si elle respecte encore le minimum, sinon article ignoré.
- Produit personnalisé : textes copiés, fichiers envoyés dupliqués sur le serveur, pour que la suppression de la ligne copiée n’efface jamais le fichier d’une commande.
- Aucun article ajouté : le panier créé pour l’occasion est supprimé et le panier en cours du visiteur est rétabli.
Journal des restaurations
La page de configuration affiche les 30 dernières restaurations de la boutique : date, origine (lien ou compte client), panier source, nouveau panier, client ou visiteur, nombre d’articles ajoutés et ignorés. Les numéros de panier ouvrent leur fiche en back-office.
Pour les développeurs
actionDfcartrestoreAfterRestore: déclenché après chaque restauration réussie, avecid_cart_source,id_cartetorigin(linkouaccount).actionDfcartrestoreCustomizationCopy: déclenché après la copie d’une personnalisation, avecid_customization_source,id_customization,id_cart_sourceetid_cart. Un module qui stocke ses propres données par personnalisation (configurateur, gravure) s’en sert pour les dupliquer.
Dépannage
La colonne ou l’encart n’apparaît pas pour certains employés
PrestaShop ignore les hooks d’un module quand le profil de l’employé connecté n’a pas le droit Voir sur ce module (Paramètres avancés > Équipe > Permissions, section Modules). Donnez ce droit aux profils concernés.
Le lien affiche « Ce lien n’est pas valide »
Le lien a été tronqué par le logiciel de messagerie, ou tous les liens ont été invalidés depuis son envoi. Copiez un nouveau lien depuis le back-office.
Le lien affiche « Ce lien a expiré »
La durée de validité est dépassée. Copiez un nouveau lien, ou augmentez la durée de validité pour les prochains.
Le lien Mes paniers enregistrés n’apparaît pas dans le compte
Vérifiez que l’option du compte client est active, puis videz le cache de la boutique. Certains thèmes n’affichent pas le hook displayCustomerAccount ; la page reste accessible à l’adresse index.php?fc=module&module=dfcartrestore&controller=carts.
Compatibilité
- PrestaShop 8.0 à 9.x, le même ZIP couvre les deux branches.
- Multiboutique, multilingue et multidevise.
- Sans dépendance Composer.
- Interface disponible en français, anglais, espagnol, allemand, italien, néerlandais, polonais et portugais.