Documentation du module Précommande PrestaShop (dfpreorder)
Installer et configurer dfpreorder : règles de précommande, affichage en fiche produit, allocation du stock reçu, gestion des retards et tâche cron.
<p>Le module <strong>DataFirefly Pre-Orders</strong> (dfpreorder) permet de vendre des produits avant leur arrivée en stock sur PrestaShop 8 et 9. Cette page couvre l’installation, la configuration, la création des règles, la gestion des arrivages et le dépannage.</p>
<h2>Installation</h2>
<ol>
<li>Téléchargez le ZIP depuis votre compte client DataFirefly.</li>
<li>Dans le back-office, allez dans <em>Modules > Gestionnaire de modules > Installer un module</em> et envoyez le ZIP.</li>
<li>À l’installation, le module crée ses tables, ses deux statuts de commande et deux onglets de menu : <em>Catalogue > Précommandes</em> pour les règles et <em>Commandes > Précommandes</em> pour le suivi.</li>
<li>Ouvrez la configuration du module pour vérifier les réglages généraux et copier l’URL du cron.</li>
</ol>
<p>Le module fonctionne sur PrestaShop 8.0 à 9.x avec le même ZIP, en multiboutique et en multilingue. Les chaînes sont livrées en français, anglais, espagnol, allemand, italien, néerlandais, polonais et portugais.</p>
<h2>Réglages généraux</h2>
<p>Dans la configuration du module :</p>
<ul>
<li><strong>Libellé du bouton par défaut</strong> et <strong>libellé du badge</strong>, par langue. Chaque règle peut les remplacer.</li>
<li><strong>Paniers mêlant précommandes et articles en stock</strong> : autoriser sans message, autoriser avec un avertissement précisant que la commande partira en une seule fois, ou interdire le mélange.</li>
<li><strong>Case de consentement au paiement</strong> : ajoute une case obligatoire au checkout quand le panier contient une précommande. Le texte accepte le jeton <code>%date%</code>, remplacé par la date d’expédition estimée la plus tardive du panier. La date du consentement est conservée sur chaque ligne de précommande.</li>
<li><strong>E-mails</strong> de confirmation et de disponibilité, activables séparément.</li>
<li><strong>Allocation automatique</strong> du stock reçu et <strong>statut de commande</strong> à appliquer une fois toutes les lignes allouées.</li>
<li><strong>Formulaire Me prévenir</strong> sur les produits non commandables.</li>
<li><strong>Données structurées PreOrder</strong>, désactivées par défaut : à n’activer que si votre thème ou votre module SEO ne génère pas déjà le JSON-LD produit.</li>
</ul>
<h2>Créer une règle de précommande</h2>
<p>Allez dans <em>Catalogue > Précommandes</em> puis <em>Ajouter une règle</em>. Une règle vise un produit, ou une déclinaison précise.</p>
<h3>Les trois modes</h3>
<ul>
<li><strong>En rupture de stock</strong> : la précommande démarre quand le stock atteint zéro et s’arrête au réassort. C’est le mode adapté aux ruptures fournisseur.</li>
<li><strong>Forcée</strong> : le produit reste en précommande tant que la règle est active, même avec du stock. C’est le mode d’un lancement produit.</li>
<li><strong>Fenêtre de dates</strong> : la précommande s’ouvre et se ferme aux dates saisies. La fermeture est appliquée par la tâche cron et, en secours, à chaque consultation de la fiche produit.</li>
</ul>
<h3>Les autres champs</h3>
<ul>
<li><strong>Date d’expédition estimée</strong> : affichée en fiche produit, au panier, dans l’espace client, sur la facture et dans les e-mails.</li>
<li><strong>Quantité maximale</strong> et <strong>maximum par client</strong> : 0 signifie illimité. Les limites sont vérifiées côté serveur à chaque enregistrement du panier.</li>
<li><strong>Remise de précommande</strong> en pourcentage ou en montant : disponible en modes forcée et fenêtre de dates, où la période est connue à l’avance. Elle crée un prix spécifique supprimé à la fin de la règle.</li>
<li><strong>Libellé du bouton</strong> et <strong>message</strong> par langue, propres à la règle.</li>
<li><strong>Compte à rebours</strong> (jusqu’à la fermeture ou jusqu’à la sortie) et <strong>barre des unités réservées</strong>, qui nécessite une quantité maximale.</li>
</ul>
<h3>Créer beaucoup de règles d’un coup</h3>
<p>Le bouton <em>Affectation en masse et import CSV</em> ouvre deux formulaires. Le premier crée une règle par produit correspondant à une catégorie, une marque ou un fournisseur, les critères se cumulant. Le second importe un CSV dont les colonnes sont : <code>product</code> (ID ou référence), <code>combination</code> (facultatif), <code>mode</code>, <code>release_date</code>, <code>max_qty</code>, <code>max_per_customer</code>, <code>date_start</code>, <code>date_end</code>. Les règles existantes sont mises à jour.</p>
<h2>Ce que voit le client</h2>
<p>Sur un produit en précommande, le bouton d’ajout au panier prend le libellé choisi, un badge apparaît sur les images de liste et de fiche, et un encart affiche la date estimée, votre message, le compte à rebours et la barre des unités réservées. Le bloc se met à jour au changement de déclinaison.</p>
<p>Au panier, chaque ligne concernée est signalée avec la date estimée. Au checkout, la case de consentement rappelle la date. Après la commande, le client suit ses précommandes dans <em>Mon compte > Mes précommandes</em> et peut demander l’annulation des lignes encore en attente.</p>
<h2>Suivi et allocation du stock</h2>
<p><em>Commandes > Précommandes</em> regroupe le suivi.</p>
<h3>Tableau de bord</h3>
<p>Les indicateurs affichent les unités en attente, le nombre de commandes concernées, le chiffre d’affaires réservé TTC, les unités déjà allouées et les demandes d’annulation. Le tableau par produit indique, pour chaque produit ou déclinaison, les unités en attente, le stock PrestaShop, les unités allouables tout de suite et la quantité à commander au fournisseur. Le bouton d’export CSV reprend ces colonnes.</p>
<h3>Allouer un arrivage</h3>
<p>Une précommande décrémente le stock au moment de la commande, ce qui le rend négatif. Les unités physiquement disponibles pour les précommandes valent donc : unités en attente + stock actuel. Après un réassort, le bouton <em>Allouer (plus anciennes d’abord)</em> sert les commandes dans l’ordre d’ancienneté, ou <em>Choisir les commandes</em> ouvre l’écran d’allocation où les lignes proposées sont précochées et modifiables.</p>
<p>Quand toutes les lignes en précommande d’une commande sont allouées, la commande passe au statut configuré (par défaut <em>Précommande : prête à expédier</em>) et le client reçoit un e-mail. Vous préparez ensuite la commande normalement.</p>
<div class= »df-callout note »><p>L’allocation automatique sert les précommandes sans validation manuelle, mais jamais avant la date annoncée pour une règle en mode forcé ou fenêtre de dates.</p></div>
<h2>Gérer un retard</h2>
<p>Ouvrez la règle, changez la date d’expédition estimée et laissez l’option <em>Prévenir les clients si la date change</em> activée. Les précommandes en attente sont mises à jour et chaque client concerné reçoit un e-mail avec la nouvelle date et un lien pour demander l’annulation. Le nombre de clients prévenus s’affiche après l’enregistrement, et l’historique des dates annoncées apparaît sous le formulaire.</p>
<p>Les demandes d’annulation arrivent dans le tableau de bord. <em>Confirmer l’annulation</em> libère les unités réservées ; le remboursement reste à effectuer depuis la page de la commande avec votre moyen de paiement. <em>Conserver la précommande</em> remet les lignes en attente.</p>
<h2>Tâche cron</h2>
<p>La configuration du module affiche une URL à token. Programmez-la toutes les 15 minutes chez votre hébergeur. Elle ouvre et ferme les fenêtres de dates à l’heure prévue et, si l’allocation automatique est activée, sert les précommandes dont le stock est arrivé.</p>
<h2>Questions fréquentes</h2>
<h3>Le client paie-t-il l’intégralité ?</h3>
<p>Oui, en version 1.0. La gestion d’un acompte suivi du paiement du solde à la disponibilité est prévue pour la version 1.1.</p>
<h3>Pourquoi une commande passe-t-elle en « Précommande : en attente de stock » ?</h3>
<p>Le module bascule la commande dans ce statut dès qu’elle est payée et qu’elle contient au moins une ligne en précommande. Le statut est payé et non expédiable, ce qui évite qu’une commande incomplète parte en préparation.</p>
<h3>Une règle sur une seule déclinaison affecte-t-elle les autres ?</h3>
<p>PrestaShop ne gère le réglage « autoriser les commandes en rupture » qu’au niveau du produit. Le module le règle donc au niveau produit, puis bloque en front et au panier les déclinaisons en rupture qui n’ont pas de règle, pour conserver le comportement d’origine de la boutique.</p>
<h3>Le compte à rebours n’apparaît pas</h3>
<p>Il s’affiche seulement si la date de fermeture (mode fenêtre) ou la date d’expédition estimée est dans le futur, et si l’option est activée sur la règle.</p>
<h3>Le bouton garde son libellé d’origine</h3>
<p>Le module remplace le texte du bouton d’ajout au panier des thèmes standards. Sur un thème très personnalisé, contactez le support avec l’URL de la fiche : le sélecteur du bouton peut être adapté.</p>