WP WordPress Intermédiaire

Predictive LTV & Churn — Documentation complète

Guide d'installation, configuration et utilisation du plugin de scoring LTV prédictif et segmentation RFM automatique pour WooCommerce.

Mis à jour Version du module 1.0.0

Guide complet du plugin Predictive LTV & Churn pour WooCommerce : installation, configuration des Email Service Providers, lecture du tableau de bord, compréhension du modèle prédictif et de la segmentation RFM automatique.

Vue d’ensemble

Predictive LTV & Churn est un plugin WooCommerce qui score chaque client de votre boutique selon deux dimensions : sa valeur vie prédite (Lifetime Value) et sa probabilité de churn (perte). Sur cette base, il classe automatiquement chaque client dans l’un des 9 segments business exploitables, puis synchronise ces informations vers Brevo, Mailchimp ou Klaviyo pour piloter vos campagnes emailing avec finesse.

Le moteur s’inspire du modèle BG/NBD utilisé par les data scientists, mais il fonctionne sans configuration préalable : il apprend en continu la baseline réelle de votre boutique (taux de réachat, panier moyen, intervalle entre commandes) pour donner des prédictions raisonnables dès la première commande.

Cas d’usage typique. Un client passe une première commande. Le plugin la détecte, calcule immédiatement sa LTV prédite (avec confiance faible mais valeur utile), l’assigne au segment « Nouveau client », et l’envoie à Brevo avec les attributs DFPLC_PREDICTED_LTV et DFPLC_SEGMENT. Votre automation Brevo peut alors déclencher une séquence de bienvenue adaptée.

Installation

Prérequis

  • WordPress 6.2 ou supérieur
  • WooCommerce 7.0 ou supérieur (testé jusqu’à 9.4)
  • PHP 7.4 ou supérieur (8.x recommandé)
  • Une clé API pour au moins un ESP parmi Brevo, Mailchimp ou Klaviyo

Étapes d’installation

  1. Téléchargez le fichier ZIP dfpredictivectvchurn.zip depuis votre compte DataFirefly.
  2. Dans l’admin WordPress, allez dans Extensions > Ajouter une extension > Téléverser une extension.
  3. Sélectionnez le ZIP puis cliquez sur Installer maintenant.
  4. Cliquez sur Activer l’extension.
  5. À l’activation, le plugin crée automatiquement 3 tables dédiées dans votre base : wp_dfplc_customer_scores, wp_dfplc_export_queue, wp_dfplc_baseline.
Le plugin déclare formellement sa compatibilité avec le High Performance Order Storage (HPOS) de WooCommerce via FeaturesUtil. Aucun accès direct aux tables wp_postmeta, tout passe par wc_get_orders().

Premier lancement et scoring initial

Après activation, votre tableau de bord est vide : aucun client n’a encore été scoré. Deux options s’offrent à vous.

Option 1 : scoring incrémental automatique

Ne faites rien. Le plugin va scorer les clients au fur et à mesure des nouvelles commandes. C’est la voie la plus douce pour les grosses bases.

Option 2 : scoring rétroactif de l’historique complet

Rendez-vous dans Predictive LTV > Tableau de bord et cliquez sur le bouton Recalculer tous les clients. Le plugin va parcourir votre historique de commandes par batchs de 50 clients, calculer chaque score, mettre à jour la baseline boutique, puis rafraîchir les quintiles RFM. Selon la taille de votre base, comptez :

  • Moins de 500 clients : quelques secondes
  • 500 à 5 000 clients : 30 secondes à 3 minutes
  • Plus de 5 000 clients : 5 à 15 minutes (le traitement continue en arrière-plan)
Sur une boutique avec plus de 20 000 clients, il est recommandé de désactiver temporairement l’option « recalcul temps réel » pendant le scoring initial pour éviter la double charge.

Configuration des Email Service Providers

Le plugin supporte trois ESP simultanément. Vous pouvez en activer un, deux ou les trois. Chaque configuration se fait dans Predictive LTV > Réglages.

Brevo (ex-Sendinblue)

  1. Connectez-vous à votre compte Brevo, allez dans SMTP & API > API Keys.
  2. Créez une clé v3 avec les permissions Contacts minimum.
  3. Créez une liste dédiée (par exemple « DataFirefly LTV »), notez son ID numérique.
  4. Dans le plugin, collez la clé API dans Clé API Brevo et l’ID de liste dans ID de liste Brevo.
  5. Cliquez sur Tester la connexion pour valider les identifiants.

Les attributs suivants seront créés automatiquement sur chaque contact Brevo : DFPLC_PREDICTED_LTV, DFPLC_LTV_CONF, DFPLC_CHURN_PROB, DFPLC_SEGMENT, DFPLC_TOTAL_ORDERS, DFPLC_TOTAL_SPENT, DFPLC_RFM_R, DFPLC_RFM_F, DFPLC_RFM_M, DFPLC_LAST_ORDER.

Mailchimp

  1. Dans Mailchimp, allez dans Account > Extras > API keys, créez une clé.
  2. Repérez le List ID de votre audience (dans Audience > Settings > Audience name and defaults).
  3. Dans le plugin, collez la clé et l’ID de liste.
  4. Cliquez sur Tester la connexion.
Mailchimp limite les noms de merge fields à 10 caractères. Le plugin utilise donc des noms raccourcis : DFPLTV (LTV prédite), DFCONF (confiance), DFCHURN (churn), DFSEG (segment), DFORDERS, DFSPENT, DFRFM (concaténation R+F+M sur 3 chiffres).

Klaviyo

  1. Dans Klaviyo, allez dans Account > Settings > API Keys, créez une Private API Key avec les scopes Profiles: Full Access et Lists: Full Access.
  2. Optionnel : récupérez l’ID de la liste (visible dans l’URL /list/<LIST_ID>) si vous voulez que le plugin abonne les contacts.
  3. Dans le plugin, collez la clé et éventuellement l’ID de liste.
  4. Cliquez sur Tester la connexion.

Comprendre le modèle prédictif

La probabilité que le client soit encore actif

Le plugin calcule p_alive = exp(-days_since_last / expected_interval), où expected_interval est l’intervalle moyen entre deux commandes de ce client (ou la baseline boutique s’il n’a qu’une commande). Cette formule décroît exponentiellement : plus le temps passe depuis la dernière commande, plus la probabilité qu’il soit « perdu » augmente. La probabilité de churn est simplement (1 - p_alive) × 100.

La LTV prédite

La formule est : predicted_ltv = total_spent + p_alive × expected_future_orders × avg_aov_customer. Pour un nouveau client (une seule commande), le plugin utilise la baseline boutique pour estimer les commandes futures. Pour un client avec plusieurs commandes, il extrapole son rythme personnel sur un horizon d’un an.

La confiance

Le score de confiance combine deux composantes : la qualité de l’historique personnel (plus le client a de commandes, mieux c’est) et la richesse de la baseline boutique (plus la boutique a de données, mieux c’est). La formule pondère 0,6 × history_score + 0,4 × baseline_score.

Pour un nouveau client dont la première commande date de moins de 30 jours, la probabilité de churn est neutralisée autour de 50 % pour éviter les faux positifs. Aucun signal fiable ne permet encore de dire s’il reviendra ou non.

Les 9 segments business

Le plugin classe chaque client dans exactement un segment selon une logique de priorité descendante. Les seuils utilisent les quintiles RFM (percentiles 20, 40, 60, 80) calculés sur votre base réelle.

  • Champions : client avec R ≥ 4, F ≥ 4 et M ≥ 4. Top RFM à fidéliser.
  • High-value at risk : LTV prédite ≥ p80 mais R ≤ 3 et churn ≥ 40 %. Signal d’alerte critique.
  • Churn risk : churn ≥ 70 % et M ≥ 3. Client à valeur qui s’éloigne.
  • New customer : 1 commande et moins de 30 jours d’ancienneté.
  • Potential loyalist : 2 commandes ou plus, R ≥ 4. Sur le point de devenir loyal.
  • Loyal : F ≥ 4 mais M ≤ 3. Régulier mais petit panier.
  • Dormant : R ≤ 2 et F ≥ 2. A été bon, ne l’est plus.
  • Lost : R = 1 et churn ≥ 90 %. Perdu, probablement définitivement.
  • Low value : LTV prédite ≤ p25. Faible potentiel économique.
Si votre boutique a moins de 20 clients scorés, la segmentation passe en mode « défaut » et attribue simplement new_customer ou loyal selon le nombre de commandes. Les quintiles ne sont statistiquement significatifs qu’au-delà de ce seuil.

Utilisation du tableau de bord admin

Tableau de bord

Vue synthétique avec quatre KPI : nombre total de clients scorés, LTV moyenne prédite, taux de churn moyen, taille de la file d’export. En dessous, la distribution par segment est affichée en barres colorées, avec la légende associée. La baseline boutique est visible en bas : taux de réachat, panier moyen, intervalle moyen entre commandes.

Clients

Liste paginée avec filtres par segment, tri par LTV prédite, par churn, par nombre de commandes ou par date de dernière commande. Chaque ligne affiche l’email, le segment (avec pastille colorée), la LTV prédite, la confiance, le pourcentage de churn, le score RFM, le nombre de commandes, le CA total et la date de dernière commande.

Exports

Un panneau par ESP configuré, avec deux actions : Tester la connexion pour vérifier les identifiants, et Synchroniser tous les clients pour queuer l’ensemble de la base vers l’ESP en question. Un bouton global Traiter la file d’attente permet de forcer le traitement immédiat (sans attendre le cron horaire).

Réglages

Configuration générale (recalcul temps réel, auto-export, segments à auto-exporter, seuils de churn et de high-value) puis un panneau par ESP avec clé API et ID de liste.

Tâches planifiées

Le plugin programme deux tâches WP-Cron dès son activation.

  • dfplc_daily_recalculation : tourne chaque jour à 3h00. Recalcule la baseline boutique, rafraîchit les quintiles RFM, et rescore jusqu’à 500 clients dont le score date de plus de 24 heures.
  • dfplc_hourly_export : tourne chaque heure. Dépile 100 lignes de la file d’export et pousse les données vers les ESP configurés. Les lignes en échec sont retentées jusqu’à 3 fois avant d’être marquées comme définitivement échouées.
Si vous utilisez un cron système (via wp-cron.php --disable_wp_cron), assurez-vous que votre planification appelle bien WordPress au moins une fois par heure, sinon la file d’export s’accumule.

API REST

Le plugin expose un namespace REST complet dfplc/v1, protégé par la capability manage_woocommerce. Utilisable pour des tableaux de bord externes, des scripts d’automation, ou des dashboards BI.

  • GET /wp-json/dfplc/v1/stats : statistiques globales (totaux, distribution par segment, file d’export, baseline).
  • GET /wp-json/dfplc/v1/customers : liste paginée des clients scorés avec filtres et tri.
  • POST /wp-json/dfplc/v1/recalculate : déclenche un recalcul par batch.
  • POST /wp-json/dfplc/v1/exporter/{provider}/test : teste la connexion d’un ESP.
  • POST /wp-json/dfplc/v1/exporter/{provider}/sync-all : queue toute la base vers un ESP.
  • POST /wp-json/dfplc/v1/queue/process : force le traitement de la file d’export.

L’authentification se fait via un nonce wp_rest pour les appels depuis l’admin WordPress, ou via l’authentification standard REST WordPress (Application Passwords, JWT, etc.) pour les appels externes.

Multilingue et traduction

Le plugin est livré avec cinq catalogues de traduction : français, anglais, espagnol, allemand et italien. Le textdomain est dfpredictivectvchurn. Les fichiers .po se trouvent dans languages/ ; vous pouvez les éditer avec Poedit ou Loco Translate pour ajouter d’autres langues ou personnaliser certaines chaînes.

Loco Translate génère automatiquement les fichiers .mo compilés à chaque sauvegarde. C’est la méthode la plus simple si vous n’êtes pas à l’aise avec la ligne de commande.

Désinstallation

Le fichier uninstall.php est déclenché automatiquement par WordPress lorsque vous supprimez le plugin depuis l’écran Extensions. Il effectue les opérations suivantes :

  • Suppression des 3 tables custom (dfplc_customer_scores, dfplc_export_queue, dfplc_baseline)
  • Suppression de toutes les options préfixées dfplc_
  • Suppression du transient dfplc_quintiles
  • Déprogrammation des deux tâches WP-Cron

Aucune donnée résiduelle ne subsiste après désinstallation.

Dépannage

« Les scores ne se mettent pas à jour »

Vérifiez que WP-Cron est actif (option DISABLE_WP_CRON non définie dans wp-config.php) ou qu’un cron système appelle bien wp-cron.php régulièrement. Vous pouvez aussi forcer un recalcul manuel depuis le tableau de bord.

« La file d’export s’accumule »

Testez la connexion de chaque ESP configuré. Si la clé API est expirée ou révoquée, les appels échouent silencieusement dans le cron. Consultez la colonne last_error de la table wp_dfplc_export_queue pour identifier la cause exacte.

« Mes chiffres semblent incohérents »

Assurez-vous que la baseline a bien été recalculée après votre scoring initial. Si vous avez importé un gros lot de commandes historiques, forcez un recalcul complet depuis le tableau de bord pour rafraîchir toutes les statistiques.

Ressources

Cette page vous a-t-elle été utile ?

Toujours bloqué ? Contactez le support