Pre-order Manager — Guide complet
Installation, configuration des précommandes avec acompte, conversion automatique, relances et API REST.
Présentation
DataFirefly Pre-order Manager transforme n’importe quel produit WooCommerce (simple ou variable) en précommande professionnelle. Le client paie un acompte ou le montant total à la commande ; à la date de disponibilité (ETA), le plugin convertit automatiquement la précommande : passage en traitement pour les paiements complets, génération d’une commande de solde avec lien de paiement pour les acomptes. Relances automatiques, plafond de stock futur, badge personnalisable et API REST complètent le workflow.
Installation
- Téléchargez le fichier
dfpreorder.zipdepuis votre compte DataFirefly. - Dans votre administration WordPress, allez dans Extensions → Ajouter → Téléverser une extension.
- Sélectionnez le ZIP puis cliquez sur Installer maintenant, et activez l’extension.
- Un nouveau sous-menu WooCommerce → Pré-commandes apparaît : c’est le centre de contrôle du plugin.
Prérequis : WordPress 6.0+, WooCommerce 7.0+ et PHP 7.4 minimum. Le plugin déclare la compatibilité HPOS et blocs Cart & Checkout — aucun réglage supplémentaire n’est nécessaire.
Réglages globaux
Ouvrez WooCommerce → Pré-commandes → onglet Réglages. Les options sont regroupées en six blocs :
- Activation — interrupteur global du module, et politique de panier mixte (autoriser ou non le mélange de précommandes et de produits standards dans le même panier).
- Conversion automatique — active la conversion quotidienne à l’ETA, définit un délai de grâce (0 à 90 jours) après l’ETA, et le restock des unités réservées à l’annulation.
- Affichage du badge — texte (par défaut « Précommande »), couleur de fond, couleur du texte, et emplacements (listes boutique et/ou fiche produit).
- Libellés — texte du bouton d’ajout au panier (« Précommander » par défaut) et libellé précédant l’ETA (« Disponible le »).
- E-mails clients — activation des e-mails de disponibilité et de solde à régler.
- Relances de solde impayé — activation des relances et échéances en jours séparées par des virgules (par défaut
7,14,30). - Frais de port — option de report des frais de port sur la commande de solde (voir la section dédiée plus bas).
Configurer un produit en précommande
- Ouvrez le produit dans l’éditeur WooCommerce et repérez l’onglet Pré-commande dans les données produit.
- Cochez Activer la précommande.
- Choisissez le mode de paiement : « Paiement total » (le client paie tout à la commande) ou « Acompte » (pourcentage ou montant fixe, le solde étant facturé à la disponibilité).
- Renseignez la date ETA (date de disponibilité prévue). Un champ texte optionnel permet d’afficher un libellé libre à la place de la date (ex. « Disponible début juillet »).
- Définissez éventuellement un plafond de stock futur : le nombre maximum d’unités précommandables. Le compteur d’unités réservées s’affiche à côté du champ.
- Personnalisez si besoin le texte du badge pour ce produit, et le comportement de conversion automatique (hériter du réglage global, forcer oui, forcer non).
- Enregistrez : le badge et l’encart ETA apparaissent immédiatement sur la fiche produit.
Pour les produits variables, chaque variation peut avoir sa propre date ETA et son propre plafond de stock (dans les options de la variation). La date de la variation prime sur celle du parent.
Cycle de vie d’une précommande
Voici le déroulement complet du workflow, étape par étape :
- Commande initiale — le client ajoute le produit au panier. En mode acompte, le prix affiché au panier et au checkout est le montant de l’acompte, avec la mention du solde restant. Il paie via la passerelle de paiement habituelle.
- Enregistrement — au paiement, la commande passe au statut
wc-preorder, une ligne est créée dans la table interne du plugin, et le client reçoit l’e-mail de confirmation de précommande. - Attente — la précommande apparaît dans WooCommerce → Pré-commandes → onglet Liste avec son statut, sa date ETA et ses montants.
- Conversion à l’ETA — le cron quotidien (03:00, heure du site) détecte les précommandes arrivées à échéance (ETA + délai de grâce éventuel) :
- Mode paiement total : la commande passe en « En cours » et le client reçoit l’e-mail de disponibilité.
- Mode acompte : une commande de solde est générée automatiquement (statut « En attente de paiement ») et le client reçoit l’e-mail « Solde à régler » avec un bouton de paiement direct.
- Paiement du solde — le client règle via le lien e-mail (URL de paiement WooCommerce native, sécurisée par order key, sans login requis) ou depuis Mon compte. Au paiement, la précommande est marquée terminée et la commande d’origine passe en « En cours » dès que toutes ses lignes précommande sont résolues.
Gestion depuis l’administration
L’onglet Liste de la page Pré-commandes affiche toutes les précommandes avec filtre par statut, recherche par ID de commande ou de produit, et pagination. Quatre statuts existent : En attente (bleue), Solde en attente (ambre), Terminée (verte) et Annulée (grise). Sur chaque ligne, deux actions :
- Convertir — force la conversion immédiate sans attendre l’ETA (utile quand le stock arrive en avance).
- Annuler — annule la précommande, libère les unités réservées (si l’option restock est active) et bascule la commande en « Annulée » si elle était encore au statut précommande.
Le bouton « Lancer la conversion maintenant » en haut de page déclenche immédiatement le contrôle quotidien sans attendre le cron de 03:00.
Côté client : Mon compte
Sur la page Mon compte → Détail de la commande :
- La commande d’origine affiche un encart « Solde de votre précommande » listant les commandes de solde liées, leur montant, leur statut, et un bouton « Payer le solde » pour celles encore impayées.
- La commande de solde affiche en retour un encart « Précommande d’origine » avec un lien vers la commande initiale.
E-mails clients
Quatre e-mails transactionnels sont fournis, chacun en version HTML et texte brut, éditables depuis WooCommerce → Réglages → E-mails :
- Confirmation de précommande — envoyé à l’enregistrement de la précommande, avec un avertissement acompte le cas échéant.
- Précommande disponible — envoyé à la conversion en mode paiement total.
- Solde à régler — envoyé à la génération de la commande de solde, avec le montant en évidence et le bouton de paiement direct.
- Rappel de solde — relances envoyées aux échéances configurées si le solde reste impayé.
Relances automatiques
Lorsque l’option est active, le cron quotidien scanne les commandes de solde encore impayées (statuts en attente, en pause ou échouée) et envoie une relance à chaque échéance configurée. Le champ accepte une liste de jours séparés par des virgules — par exemple 7,14,30 pour relancer 7, 14 puis 30 jours après la création de la commande de solde. Chaque échéance n’est déclenchée qu’une seule fois par commande ; le suivi est stocké dans la meta de la commande de solde.
Frais de port sur la commande de solde
Par défaut, la commande de solde ne contient aucun frais de port (ils ont été réglés sur la commande d’origine). Si votre acompte couvre uniquement la réservation du produit et que vous facturez le port à l’expédition, activez l’option « Reporter les frais de port sur le solde » : les lignes de port de la commande d’origine seront dupliquées sur la commande de solde, avec méthode et taxes intactes.
Cette option duplique les frais. Activez-la uniquement si la commande d’acompte est facturée sans frais de port — par exemple via une méthode « Livraison gratuite » conditionnée à la présence de produits en précommande dans le panier. Sinon, le client paiera le port deux fois.
Shortcodes
[dfpo_badge product_id="123"]— affiche le badge Précommande du produit indiqué (ou du produit courant si omis).[dfpo_eta product_id="123"]— affiche la date de disponibilité formatée avec son libellé.[dfpo_remaining product_id="123"]— affiche le nombre d’unités encore précommandables lorsqu’un plafond est défini.
API REST
Toutes les routes sont sous le namespace dfpo/v1 et nécessitent la capacité manage_woocommerce (authentification par clé API WooCommerce ou application password) :
GET /wp-json/dfpo/v1/preorders— liste paginée (paramètresstatus,page,per_page).GET /wp-json/dfpo/v1/preorders/{id}— détail d’une précommande.POST /wp-json/dfpo/v1/preorders/{id}/convert— force la conversion (paramètreforcebooléen).POST /wp-json/dfpo/v1/preorders/{id}/cancel— annule et libère le stock réservé.POST /wp-json/dfpo/v1/run-conversion— déclenche le contrôle de conversion immédiatement.
Hooks développeurs
dfpo_preorder_registered(action) — après création d’une ligne précommande.dfpo_preorder_converted_full(action) — après conversion d’un paiement total.dfpo_preorder_converted_deposit(action) — après génération de la commande de solde.dfpo_preorder_balance_paid(action) — après encaissement du solde.dfpo_email_preorder_balance_reminder(action) — au déclenchement d’une relance (permet de brancher un SMS ou autre canal).dfpo_badge_html(filtre) — pour modifier le HTML du badge.
Dépannage
- La conversion ne se déclenche pas — vérifiez que WP-Cron fonctionne sur votre hébergement (certains hébergeurs le désactivent ; utilisez alors un cron système appelant
wp-cron.php). Vous pouvez toujours convertir manuellement depuis l’onglet Liste. - Le prix au panier semble incorrect après modification du produit — videz le panier de test et les caches (objet et page). Le plugin lit le prix original directement en base pour éviter les effets de cache.
- L’e-mail de solde n’arrive pas — vérifiez que l’e-mail « Solde à régler » est activé dans WooCommerce → Réglages → E-mails, et testez la délivrabilité générale de votre site (SMTP recommandé).
- Le badge n’apparaît pas — vérifiez l’interrupteur global du module, les emplacements de badge dans les réglages, et que le thème appelle bien les hooks WooCommerce standards (
woocommerce_single_product_summary,woocommerce_after_shop_loop_item_title).
Désinstallation
La désactivation du plugin conserve toutes les données. La suppression du plugin depuis Extensions supprime définitivement les tables internes, les options et les meta produits du plugin. Les commandes WooCommerce (origine et solde) ne sont jamais supprimées.