Gestion DLC & DLUO : documentation
Lots DLC/DLUO, cartons fournisseur, coûts, FEFO, remises par paliers, import CSV, contrôle du stock et cron.
Installation et mise à jour
Le module s’installe comme tout module PrestaShop, sans dépendance ni Composer.
- Ouvrez Modules → Gestionnaire de modules.
- Cliquez sur Installer un module et déposez le fichier ZIP.
- Cliquez ensuite sur Configurer.
Le module crée trois tables (lots, mouvements, conditionnements fournisseur) et deux onglets dans le menu Catalogue : Lots DLC/DLUO et Conditionnements fournisseur.
Depuis une version précédente, déposez simplement le nouveau ZIP. Vos lots et leur historique sont conservés. Si vous utilisiez la remise unique de la version 1.0.0, elle devient le premier palier de remise.
Si les onglets n’apparaissent pas tout de suite, videz le cache depuis Paramètres avancés → Performances puis reconnectez-vous.
DLC et DLUO : ce que fait le module
La DLC (à consommer jusqu’au) concerne les denrées périssables : au-delà, le produit ne doit plus être vendu. La DLUO / DDM (à consommer de préférence avant) signale une perte de qualité : le produit reste vendable si le client est informé.
- Un lot DLC périmé n’est jamais attribué à une commande, même si le cron n’a pas encore tourné dans la journée.
- Les actions automatiques à l’échéance (retrait du stock, désactivation du produit) ne concernent que les DLC.
- Un lot DLUO échu est seulement désactivé ; il reste utilisable pour une commande tant qu’il est actif.
Choisissez le type de date avec soin à la création du lot : c’est lui qui déclenche, ou non, les actions automatiques.
Configurer le module
La page de configuration affiche l’URL du cron, un état rapide des lots et quatre blocs de réglages.
Affichage sur la fiche produit
- Afficher la date sur la fiche produit : date du lot en stock le plus proche pour la déclinaison choisie par le client.
- Seuil du badge date courte : en dessous de ce nombre de jours, un badge « Date courte » s’affiche. Par défaut : 10 jours.
Promotions automatiques sur les dates courtes
- Activer les promotions automatiques : désactiver supprime toutes les remises créées par le module.
- Paliers de remise : jusqu’à 10 lignes « quand le lot expire dans X jours » / « remise Y % ». Voir la section Remises par paliers.
Stock et coûts
- Quand un lot DLC est périmé : désactiver le lot uniquement, désactiver le lot et retirer sa quantité restante du stock (recommandé), ou retirer le stock et désactiver le produit s’il ne reste aucun lot valide.
- Ajouter la quantité reçue au stock PrestaShop par défaut : valeur proposée à chaque création de lot. Laissez sur Non tant que vous saisissez des lots pour du stock déjà compté dans PrestaShop.
- Reporter le coût des lots sur chaque ligne de commande : voir Coût d’achat et marges.
- Remettre les unités dans leurs lots quand une commande est annulée : voir Annulation et réactivation.
- Imprimer les numéros de lot sur les bons de livraison (activé par défaut) et sur les factures (désactivé par défaut).
Alertes e-mail
- Seuil d’alerte avant expiration : fenêtre surveillée par l’e-mail récapitulatif. Par défaut : 30 jours.
- E-mail destinataire : laissez vide pour utiliser l’adresse de la boutique.
Conditionnements fournisseur
Si vous achetez par cartons et vendez à l’unité, déclarez le conditionnement une fois dans Catalogue → Conditionnements fournisseur :
- produit et, si besoin, déclinaison ;
- libellé (par exemple « Carton de 12 ») ;
- référence fournisseur et EAN du carton ;
- nombre d’unités par carton et coût habituel du carton (HT) ;
- référence et EAN de l’unité vendue. Laissés vides, ils reprennent ceux du produit ou de la déclinaison.
Le coût unitaire calculé s’affiche en direct. Un produit peut avoir plusieurs conditionnements.
Créer et recevoir un lot
Dans Catalogue → Lots DLC/DLUO, cliquez sur Ajouter un lot, ou utilisez le bouton du même nom dans le panneau Lots de la fiche produit.
Réception à l’unité
- Recherchez le produit (2 caractères minimum) et choisissez la déclinaison, ou laissez « Toutes les déclinaisons ».
- Laissez Reçu à l’unité.
- Renseignez numéro de lot, type de date, date limite, quantité reçue et coût d’achat unitaire HT.
- Choisissez Ajouter cette quantité au stock PrestaShop : Oui pour une nouvelle livraison, Non pour un stock déjà compté.
Réception en cartons
- Après le produit, choisissez Reçu en cartons fournisseur.
- Sélectionnez le conditionnement, indiquez les cartons reçus et le coût par carton (HT), prérempli avec le coût habituel.
- La quantité et le coût unitaire sont calculés et verrouillés : 3 cartons de 12 à 30 € donnent 36 unités à 2,50 €.
La référence fournisseur du lot est préremplie avec celle du carton. Vous pouvez la remplacer par votre numéro de bon de livraison fournisseur.
Modifier, désactiver, supprimer
- Le produit d’un lot ne peut plus être changé après création.
- Modifier la quantité enregistre un mouvement d’ajustement, sans toucher au stock PrestaShop.
- Un numéro de lot ne peut exister qu’une fois par produit.
- Un lot déjà vendu ne peut pas être supprimé : désactivez-le.
Importer des lots en CSV
Bouton Importer des lots (CSV) dans la liste des lots. Un fichier exemple est téléchargeable sur la page.
- Séparateur point-virgule, virgule ou tabulation ; première ligne = noms des colonnes ; 5 000 lignes et 5 Mo maximum.
- Le produit est retrouvé par
reference,ean13ouid_product. Une référence de déclinaison fonctionne aussi dansreference. combination_referenceoucombination_ean13rattache le lot à une déclinaison.- Obligatoires :
lot_numberetexpiry_date(AAAA-MM-JJ ou JJ/MM/AAAA). date_type: dlc ou dluo (dlc par défaut).quantityetunit_costpour une réception à l’unité.boxes,box_referenceetbox_costpour une réception en cartons : la quantité et le coût unitaire sont calculés à partir du conditionnement.supplier_refetnotesont facultatifs.
reference;lot_number;date_type;expiry_date;quantity;unit_cost
CROQ-2KG;L2026-118;dluo;2027-03-31;24;6.40
PATE-12;L2026-204;dlc;15/01/2027;;
Un numéro de lot déjà présent pour le produit est ignoré. Le rapport liste chaque ligne en erreur avec sa raison ; les autres lignes sont importées.
Tableau de bord et vues filtrées
En tête de liste, les cartes sont cliquables et filtrent la liste : lots périmés encore actifs, lots proches de l’échéance, lots avec une remise en cours, valeur d’achat à risque et valeur d’achat du stock en lots. Le filtre reste actif pendant la pagination ; Afficher tous les lots le retire.
Le déstockage FEFO
À la validation d’une commande, pour chaque produit :
- les lots de la déclinaison commandée passent en premier, puis ceux rattachés au produit ;
- les lots sont consommés de la date la plus proche à la plus lointaine ;
- les lots DLC périmés sont exclus.
Une commande de 10 unités face à un lot de 4 et un lot de 8 prend les 4 premières puis 6 dans le lot suivant. Chaque prélèvement est enregistré avec la commande.
Coût d’achat et marges
Avec l’option Reporter le coût des lots sur chaque ligne de commande, le module calcule le coût moyen pondéré des lots consommés et l’écrit comme prix d’achat de la ligne de commande. Les statistiques de marge de PrestaShop utilisent alors le coût réel. Les lots sans coût sont ignorés dans ce calcul.
Remises par paliers
Exemple : 10 % à 90 jours, 20 % à 60 jours, 30 % à 30 jours.
- La remise appliquée est le pourcentage le plus élevé parmi les paliers atteints : elle ne baisse jamais à l’approche de la date.
- Elle ne concerne que le lot qui sortira en premier, par produit ou par déclinaison.
- C’est une règle de prix catalogue PrestaShop standard, qui se termine à la date limite.
- Quand le lot est épuisé, la remise passe au lot suivant ou disparaît.
- Les remises sont recalculées à chaque enregistrement des réglages ou d’un lot, puis chaque jour par le cron.
Ces règles sont soumises aux priorités habituelles de PrestaShop. Si vous appliquez déjà des remises catalogue larges, vérifiez les priorités avant d’activer les paliers.
Préparation : commande et bon de livraison
Dans le détail d’une commande en back-office, le bloc Lots expédiés (FEFO) indique pour chaque produit le lot, la date, la quantité et le coût. Les mêmes lots sont imprimés sur le bon de livraison, et sur la facture si l’option est activée.
Annulation et réactivation
Quand une commande passe au statut Annulé, ses unités retournent dans leurs lots d’origine. Si elle repasse ensuite dans un statut valide, ses unités sont de nouveau prélevées en FEFO. Le cycle peut se répéter sans double comptage.
Les retours partiels avec remise en stock ne sont pas réaffectés automatiquement à un lot. Ils apparaissent dans le Contrôle du stock, où vous créez le lot correspondant.
Contrôle du stock
Le bouton Contrôle du stock compare les unités en lots avec le stock PrestaShop :
- un écart positif signifie que des unités n’ont pas de lot : Créer un lot pour les unités manquantes ouvre le formulaire prérempli ;
- un écart négatif signifie que les lots contiennent plus que le stock : corrigez les lots ou le stock.
Les produits ayant des lots au niveau produit sont comparés sur leur stock total ; ceux dont les lots sont tous rattachés à des déclinaisons sont comparés déclinaison par déclinaison.
Panneau Lots dans la fiche produit
La fiche produit du back-office affiche les lots du produit, leur état, leur coût et leur remise, ainsi que le total des lots comparé au stock PrestaShop. Le bouton Ajouter un lot présélectionne le produit. Sur PrestaShop 8.1 et 9, le panneau se trouve dans l’onglet Modules de la fiche produit.
Tâche cron
Le déstockage, la traçabilité et l’import fonctionnent sans cron. Les paliers de remise, le traitement des lots périmés et l’alerte e-mail demandent un appel quotidien de l’URL affichée dans la configuration :
https://votre-boutique.com/index.php?fc=module&module=dfdlc&controller=cron&token=VOTRE_JETON
La réponse JSON détaille les lots désactivés, les unités retirées, les produits désactivés, les remises créées, mises à jour ou retirées, et les alertes envoyées.
Alertes e-mail
À chaque exécution du cron, un e-mail récapitulatif liste les lots dont la date entre dans la fenêtre d’alerte : numéro, produit, type, date et quantité. Chaque lot n’est signalé qu’une fois. Les modèles sont fournis en 8 langues dans le dossier mails/.
Affichage sur la fiche produit
Via le hook displayProductAdditionalInfo, la fiche affiche « À consommer jusqu’au » ou « À consommer de préférence avant » avec la date du lot le plus proche pour la déclinaison choisie. Sous le seuil, le badge « Date courte » apparaît avec la remise. Une remise de palier hors de ce seuil est signalée par « offre date courte ». Le gabarit views/templates/hook/product-expiry.tpl peut être surchargé dans votre thème.
Traçabilité et rappel de lot
Le formulaire d’un lot affiche son historique : réception, commandes, annulations, ajustements, retrait pour péremption, avec lien vers chaque commande. Exporter en CSV sort l’historique du lot ; Exporter les mouvements dans la liste sort l’historique complet. Ces données servent de base à une procédure de rappel.
Questions fréquentes
Le module remplace-t-il le stock PrestaShop ?
Non. Le stock PrestaShop reste la référence pour la vente ; le module le ventile en lots datés et signale les écarts.
Que se passe-t-il si mes lots ne couvrent pas tout le stock ?
La commande se passe normalement : le module prélève ce qui est disponible dans les lots. Le Contrôle du stock montre les unités sans lot.
Le module est-il compatible multiboutique ?
Oui. Chaque lot appartient à la boutique où il a été créé.
Que se passe-t-il à la désinstallation ?
Les trois tables sont supprimées avec leur contenu. Sauvegardez votre base si vous prévoyez une réinstallation.