PS PrestaShop Intermédiaire

DataFirefly Auto Clearance : déstockage automatique des invendus

Installation, paliers de remise, règles par catégorie, protection des prix, tâche cron, tableau de bord et dépannage.

Mis à jour Version du module 1.1.0

Installation

Installez le module depuis Modules > Gestionnaire de modules > Installer un module en envoyant le fichier ZIP, ou déposez le dossier dfclearance dans le répertoire /modules/ de votre boutique puis cliquez sur Installer.

À l’installation, le module :

  • crée une catégorie Déstockage (Outlet dans les autres langues) sous l’accueil, que vous pouvez renommer ou remplacer par une catégorie existante ;
  • ajoute l’onglet Catalogue > Déstockage auto, qui liste les produits en outlet ;
  • crée ses tables (produits en outlet, exclusions, journal, ventes outlet) ;
  • reste désactivé : aucun prix ni aucune catégorie ne change tant que vous n’avez pas activé l’exécution automatique.

Si vous mettez à jour depuis la version 1.0.0, envoyez simplement le nouveau ZIP : le script de mise à jour ajoute la table des ventes, les nouveaux réglages et les nouveaux hooks sans toucher à vos réglages existants.

Premiers pas

La page de configuration affiche une liste de démarrage en quatre étapes tant que le module n’est pas pleinement en service :

  1. Réglez vos paliers dans l’onglet Paliers et prix. Les valeurs par défaut sont 10 % à 90 jours, 20 % à 150 jours et 35 % à 240 jours.
  2. Lancez une simulation avec le bouton Simuler en haut de page. Le rapport liste les produits qui entreraient dans l’outlet, les remises qui changeraient et les produits qui en sortiraient. Rien n’est écrit.
  3. Activez l’exécution automatique, première option de l’onglet Paliers et prix.
  4. Planifiez la tâche cron avec l’URL de l’onglet Tâche cron.

Après une simulation, le bouton Appliquer maintenant exécute réellement le traitement si le module est activé.

Paliers et prix

Paliers par défaut

Chaque palier associe un nombre de jours sans vente à une remise en pourcentage. Le premier palier est le seuil d’entrée dans l’outlet. Chaque palier doit donner une remise supérieure au précédent. Une frise sous le tableau montre la progression et signale les paliers incohérents avant l’enregistrement.

Le nombre de jours sans vente se calcule depuis la dernière commande valide contenant le produit, toutes déclinaisons confondues. Un produit jamais vendu compte depuis sa date de création.

Progression des paliers

  • Jours sans vente : le compteur repart après chaque vente, y compris une vente en outlet.
  • Temps passé en outlet : les paliers continuent même si le produit se vend.

Dans les deux cas, la remise d’un produit en outlet ne redescend jamais.

Paliers par catégorie

Le bouton Ajouter une règle par catégorie crée un jeu de paliers propre à une catégorie. La règle s’applique à la catégorie et à toutes ses sous-catégories, et remplace les paliers par défaut pour les produits concernés. Quand un produit correspond à plusieurs règles, la première de la liste l’emporte. Pour un produit déplacé dans l’outlet, le module utilise les catégories qu’il avait avant son entrée.

Mode de gestion des catégories

  • Ajout (recommandé) : le produit est ajouté à l’outlet et reste dans ses catégories.
  • Ajout en catégorie par défaut : l’outlet devient aussi la catégorie par défaut, visible dans le fil d’Ariane.
  • Déplacement : le produit n’apparaît plus que dans l’outlet. Ses catégories sont sauvegardées et restaurées à sa sortie.

Les modes Ajout en catégorie par défaut et Déplacement modifient l’URL du produit si la catégorie fait partie du format d’URL de vos produits. PrestaShop redirige l’ancienne URL, mais vérifiez ce point avant de les utiliser sur un catalogue bien référencé.

Protection des prix

  • Remise maximale (60 % par défaut) : plafond appliqué à tous les paliers.
  • Protection de marge : le prix outlet ne descend jamais sous le prix d’achat HT augmenté de la marge minimale (5 % par défaut). Les produits sans prix d’achat ne sont pas limités. Si aucune remise n’est possible, le produit n’entre pas dans l’outlet.
  • Terminaison du prix : Exact, x,99, x,90 ou x,00. Le module arrondit le prix outlet TTC du pays par défaut vers la terminaison la plus proche. Si aucune terminaison ne reste à moins de 5 points de la remise du palier, il garde le pourcentage exact.

L’encart Aperçu avec un produit à calcule en direct le prix à chaque palier pour le prix de votre choix, arrondi et remise maximale compris.

Éligibilité

Conditions d’entrée

  • Stock minimum pour entrer : indiquez 2 ou plus pour garder la dernière unité au prix normal.
  • Ignorer les produits déjà en promotion : un produit portant une remise active pour tous les clients n’entre pas dans l’outlet, pour éviter le cumul.
  • Catégories et marques exclues : les produits concernés n’entrent jamais. Un champ de filtre aide à retrouver une catégorie dans une longue liste.

Les produits virtuels, désactivés ou à prix nul sont toujours ignorés.

Conditions de sortie

  • Sortir de l’outlet en rupture de stock : le produit retrouve ses catégories et son prix normal une fois épuisé.
  • Sortir de l’outlet au réassort : le produit sort quand son stock dépasse la quantité qu’il avait en entrant.
  • Un produit désactivé ou exclu sort aussi à l’exécution suivante.

Délai avant retour en outlet

Un produit qui sort de l’outlet, retiré à la main, réassorti ou exclu puis réautorisé, ne peut pas y revenir avant ce délai (30 jours par défaut, 0 pour le désactiver). Avec 30 jours, le prix barré affiché correspond toujours au prix le plus bas des 30 derniers jours, comme l’exige la directive européenne Omnibus. Le délai ne s’applique pas après un changement de catégorie outlet.

Nouveaux produits par exécution

Limite le nombre de produits qui entrent dans l’outlet à chaque exécution (200 par défaut). Le reste est traité aux exécutions suivantes. Chaque exécution dispose aussi d’un budget de temps pour rester sous les limites de l’hébergement.

Pause

Renseignez une date de début et une date de fin pour suspendre le déstockage pendant les soldes ou une opération Black Friday. Pendant la pause, aucun produit n’entre dans l’outlet et aucune remise n’augmente. Les sorties continuent de s’appliquer et les prix outlet en place ne bougent pas. L’en-tête du module affiche la pause en cours.

Tâche cron

L’onglet Tâche cron fournit l’URL à appeler une fois par jour, de préférence la nuit, avec un bouton de copie. Paramètres disponibles :

  • &simulate=1 : exécution à blanc, rien n’est modifié ;
  • &all_shops=1 : traite toutes les boutiques d’une installation multiboutique.

Exemple de ligne crontab ou cPanel :

0 3 * * * curl -s "https://votre-boutique.fr/module/dfclearance/cron?token=VOTRE_JETON" > /dev/null

La date du dernier appel est affichée. Si l’exécution automatique est activée et que le cron n’a pas été appelé depuis plus de 48 heures, une alerte apparaît en haut de la page. Le bouton Nouveau jeton invalide l’URL actuelle.

Si la boutique est en maintenance, ajoutez l’adresse IP de votre serveur à la liste des IP de maintenance, sinon l’appel est bloqué.

Tableau de bord

L’onglet Tableau de bord affiche :

  • le nombre de produits et d’unités en outlet ;
  • le stock à écouler en valeur d’achat et sa valeur au prix outlet ;
  • le chiffre d’affaires outlet HT des 30 derniers jours, avec le nombre de commandes et d’unités, et depuis l’installation ;
  • le stock écoulé en valeur d’achat ;
  • la remise moyenne des produits en outlet ;
  • un graphique du chiffre d’affaires outlet jour par jour, les mouvements des 30 derniers jours, la répartition des produits par remise et les cinq meilleures ventes outlet.

Les ventes sont enregistrées au moment de la commande, pour les produits alors en outlet. Seules les commandes valides sont comptées, et les montants sont convertis dans la devise par défaut. Les chiffres démarrent à l’installation du module : il n’y a pas d’historique rétroactif.

Produits à venir et exclusions

L’onglet À venir liste les produits qui atteindront leur seuil d’entrée dans les 7, 14, 30 ou 60 prochains jours, avec la remise qu’ils recevront, leur stock et sa valeur d’achat. Les produits marqués « prochaine exécution » ont déjà dépassé leur seuil. Le bouton Exclure les retire définitivement du déstockage.

L’onglet Produits exclus accepte des identifiants ou des références séparés par des virgules. Exclure un produit déjà en outlet le fait sortir immédiatement. Le bouton Retirer l’exclusion le rend de nouveau éligible, après le délai avant retour en outlet.

Badge et e-mails

Badge

Le badge s’affiche sur les miniatures et les fiches produits, à côté du badge de réduction natif. Vous pouvez choisir sa couleur et son texte dans chaque langue, avec un aperçu en direct.

Rapport par e-mail

Une fois activé, un rapport est envoyé après chaque exécution réelle qui fait entrer ou sortir des produits, ou qui change une remise. Il liste les produits concernés avec leur remise et le motif. Laissez le champ destinataires vide pour utiliser l’adresse e-mail de la boutique, ou saisissez plusieurs adresses séparées par des virgules. Le bouton d’envoi de test envoie le résultat d’une simulation.

Liste des produits en outlet

Catalogue > Déstockage auto liste les produits en outlet avec leur remise, leur prix normal TTC, leur prix outlet TTC, leur stock, leur date d’entrée et leur prochaine étape (par exemple « 35 % dans 38 jours »). Depuis cette liste, vous pouvez :

  • retirer un produit de l’outlet, qui ne pourra pas revenir avant la fin du délai avant retour ;
  • lancer une exécution manuelle ;
  • exporter la liste en CSV.

Comment la remise est appliquée

La remise est un prix spécifique natif PrestaShop, pour tous les clients, toutes les devises et tous les pays. Le thème affiche donc le prix barré et le badge de réduction habituels. Sans terminaison de prix, la remise est un pourcentage. Avec une terminaison, c’est un montant TTC calculé pour le pays par défaut, et les thèmes affichent alors l’économie en montant plutôt qu’en pourcentage.

Le module met à jour l’index des prix du module de recherche à facettes quand celui-ci le permet, pour que le filtre par prix reste juste. Si le prix de base d’un produit change pendant qu’il est en outlet, le prix spécifique est recalculé à l’exécution suivante.

Désinstallation et réinitialisation

Le bouton Sortir tous les produits, dans l’onglet Tâche cron, retire tous les produits de l’outlet, restaure leurs catégories et supprime leurs prix outlet. Le délai avant retour s’applique ensuite. La désinstallation du module fait la même chose avant de supprimer ses tables. La catégorie outlet n’est pas supprimée.

Dépannage

Aucun produit n’entre dans l’outlet

Lancez une simulation. La section Produits ignorés liste les produits que la marge plancher empêche de remiser. Les autres filtres ne produisent pas de ligne dans le rapport : vérifiez le stock minimum, l’option qui ignore les produits déjà en promotion, les catégories et marques exclues, le délai avant retour et une éventuelle pause. Vérifiez enfin que le premier palier n’est pas plus long que l’ancienneté de vos produits.

Un produit retiré à la main ne revient pas

C’est le délai avant retour en outlet. Réduisez-le ou mettez-le à 0 si vous ne vendez pas dans l’Union européenne.

Le prix outlet ne se termine pas par ,99

Sur un produit peu cher, aucune terminaison ne reste à moins de 5 points de la remise du palier : le module garde alors le pourcentage exact. Dans les autres pays que le pays par défaut, un taux de TVA différent décale aussi la terminaison.

Le cron ne tourne pas

Ouvrez l’URL cron dans un navigateur : elle doit renvoyer un résultat JSON. Une erreur 503 indique généralement le mode maintenance, une erreur 403 un jeton invalide.

Compatibilité

  • PrestaShop 8.0 à 9.x, le même ZIP couvre les deux branches.
  • Multiboutique et multilingue.
  • Sans dépendance Composer.
  • Remise appliquée par produit, toutes déclinaisons confondues.
  • Interface disponible en français, anglais, espagnol, allemand, italien, néerlandais, polonais et portugais.
Cette page vous a-t-elle été utile ?

Toujours bloqué ? Contactez le support