Wo WooCommerce Débutant

Smart Bundle Engine — Documentation

Installation, analyse de co-occurrence, contrôle de marge et affichage des bundles WooCommerce.

Mis à jour Version du module 1.0.0

Présentation

Smart Bundle Engine analyse l’historique de vos commandes WooCommerce pour détecter les produits réellement achetés ensemble, génère automatiquement les bundles correspondants et les affiche sur la fiche produit, dans le panier et dans l’email post-achat — avec un contrôle de marge qui plafonne automatiquement la remise si nécessaire.

Installation

  1. Téléchargez le fichier df-smart-bundle.zip depuis votre compte client DataFirefly.
  2. Dans votre administration WordPress, allez dans Extensions → Ajouter → Téléverser une extension.
  3. Sélectionnez le ZIP puis cliquez sur Installer maintenant, et activez l’extension.
  4. Un nouveau menu Smart Bundles apparaît dans la barre latérale de l’administration.

Prérequis : WordPress 6.0+, WooCommerce 7.0+, PHP 7.4+. La compatibilité HPOS (High-Performance Order Storage) est déclarée nativement.

À l’activation, le plugin crée 4 tables dédiées (df_sbe_cooccurrence, df_sbe_bundles, df_sbe_bundle_items, df_sbe_analysis_state) et planifie le cron d’analyse.

Démarrage rapide

  1. Allez dans Smart Bundles → Analyse et cliquez sur Lancer l’analyse maintenant.
  2. Une fois l’analyse terminée, le tableau Top affinités d’achat affiche les paires détectées avec leurs métriques (occurrences, confiance, lift).
  3. Si la génération automatique est activée (par défaut), les bundles sont créés automatiquement — consultez-les dans Smart Bundles → Bundles.
  4. Visitez une fiche produit concernée côté boutique : le bloc « Acheté fréquemment avec » apparaît sous le résumé produit.

Astuce : l’analyse a besoin d’au moins quelques dizaines de commandes contenant plusieurs produits pour produire des affinités exploitables. Si votre historique est mince, abaissez temporairement le seuil de co-occurrences minimum à 2 dans les réglages.

Analyse de co-occurrence

Le moteur parcourt les commandes terminées et en traitement sur la fenêtre d’analyse configurée (180 jours par défaut), par lots de 200 commandes. Pour chaque commande contenant plusieurs produits, toutes les paires sont extraites et comptabilisées.

Les trois métriques

  • Occurrences — nombre de commandes contenant la paire A+B.
  • Confiance — P(B|A) en pourcentage : dans quel pourcentage des commandes contenant A retrouve-t-on B. Une confiance de 20 signifie que B apparaît dans 20 % des commandes contenant A.
  • Lift — rapport entre la fréquence observée de la paire et la fréquence attendue si A et B étaient indépendants. Un lift supérieur à 1 indique une affinité réelle ; supérieur à 2, une affinité forte.

Planification

L’analyse tourne automatiquement via WP-Cron (hook df_sbe_run_analysis). Chaque exécution traite jusqu’à 25 lots de 200 commandes, puis reprend au prochain déclenchement grâce à un curseur persistant — aucune commande n’est traitée deux fois. Le bouton Réinitialiser l’état vide les tables d’analyse et repart de zéro.

Attention : si WP-Cron est désactivé sur votre serveur (DISABLE_WP_CRON), assurez-vous qu’un cron système appelle wp-cron.php régulièrement, sinon l’analyse ne tournera que lors des exécutions manuelles.

Génération automatique des bundles

Après chaque analyse complète, le moteur sélectionne les paires qui dépassent vos seuils et crée les bundles correspondants. Trois réglages contrôlent la sélection :

  • Co-occurrences minimum (3 par défaut) — nombre minimum de commandes contenant la paire.
  • Confiance minimum (10 % par défaut) — seuil de confiance en dessous duquel la paire est ignorée.
  • Bundles max par produit (3 par défaut) — évite la sur-saturation d’un même produit.

Les paires retenues sont classées par score (lift × occurrences). Les bundles créés automatiquement reçoivent l’origine « Auto » ; les bundles déjà existants avec les mêmes produits ne sont jamais dupliqués. Les bundles manuels sont toujours conservés lors des re-analyses.

Gestion des bundles

L’écran Smart Bundles → Bundles liste tous les bundles avec leurs produits, remise, marge minimum, contextes d’affichage, vues et conversions. Vous pouvez filtrer par statut, origine (auto/manuel) ou recherche libre.

Créer ou modifier un bundle

  1. Cliquez sur Nouveau bundle ou Éditer sur un bundle existant.
  2. Recherchez et ajoutez les produits (minimum 2) — la quantité de chaque article est ajustable, l’ordre se réorganise par glisser-déposer.
  3. Définissez la remise (pourcentage ou montant fixe) et la marge minimum.
  4. Cochez les contextes d’affichage souhaités : fiche produit, panier, email.
  5. La priorité détermine l’ordre d’affichage quand plusieurs bundles sont éligibles (plus élevé = premier).

Sur un bundle existant, un tableau Aperçu de tarification affiche en direct le sous-total, le coût estimé, la remise demandée vs appliquée, le prix final et la marge réelle.

Contrôle de marge

Chaque bundle possède un seuil de marge minimum (en % du prix final). Le moteur calcule le prix plancher correspondant :

prix_min_final = coût_total / (1 − marge_min / 100)

Si la remise demandée ferait passer le prix final sous ce plancher, elle est automatiquement plafonnée à la remise maximale compatible. La remise affichée en boutique est donc toujours sûre.

Source du coût

Le coût de chaque produit est déterminé dans cet ordre :

  1. Méta produit — la clé _df_cost_price par défaut, configurable dans les réglages (compatible avec Cost of Goods et les autres plugins de prix de revient).
  2. Ratio de repli — pour les produits sans coût renseigné, un pourcentage du prix de vente est supposé (50 % par défaut).

Astuce : renseignez les coûts réels sur vos produits les plus vendus en priorité — le plafonnement de marge sera alors exact sur les bundles qui comptent le plus.

Affichage en boutique

Fiche produit

Le bloc s’insère sur le hook woocommerce_after_single_product_summary avec une priorité configurable (15 par défaut, juste avant les produits liés). Il affiche les vignettes produits reliées par des « + », le sous-total barré, le prix bundle et le bouton d’ajout en un clic.

Panier

Les suggestions apparaissent sous le tableau du panier (woocommerce_after_cart_table). Les bundles dont tous les produits sont déjà dans le panier sont automatiquement masqués.

Email post-achat

Un bloc de suggestion est inséré dans les emails Commande terminée et Commande en traitement (clients uniquement), en variantes HTML et texte brut, avec un lien de retour direct vers la boutique.

Chaque contexte est activable indépendamment et son titre est personnalisable dans les réglages.

Application de la remise

Le plugin ne modifie jamais les prix des produits. Lorsqu’un bundle est ajouté au panier, chaque article porte un marqueur interne ; dès que tous les articles du bundle sont présents, la remise est appliquée comme fee négative WooCommerce (« Réduction bundle »). Cette approche :

  • préserve les prix de ligne et les rapports de vente ;
  • reste compatible avec les taxes, frais de port et codes promo ;
  • retire automatiquement la remise si un article du bundle est supprimé du panier.

Suivi des performances

Chaque affichage d’un bundle incrémente son compteur de vues ; chaque commande contenant un bundle complet incrémente ses conversions (au passage en statut « en traitement » ou « terminée », avec une garde contre le double comptage). Le taux de conversion par bundle est affiché dans la liste des bundles, et l’écran Analyse présente les statistiques globales : commandes analysées, paires détectées, bundles actifs, vues et conversions cumulées.

Référence des réglages

Analyse de co-occurrence

  • Fenêtre d’analyse (jours) — 180 par défaut. Commandes terminées et en traitement sur cette période.
  • Co-occurrences minimum — 3 par défaut.
  • Confiance minimum (%) — 10 par défaut.
  • Génération automatique de bundles — activée par défaut.
  • Bundles max par produit — 3 par défaut.

Tarification & marge

  • Remise par défaut (%) — 10, appliquée aux bundles générés automatiquement.
  • Marge minimum par défaut (%) — 20.
  • Clé meta du prix de revient_df_cost_price.
  • Ratio coût de repli (%) — 50.

Affichage

  • Contextes — fiche produit / panier / email, activables séparément.
  • Priorité du hook fiche produit — 15 par défaut.
  • Titres — un titre personnalisable par contexte.

Multilingue

Le plugin est fourni avec 5 langues (FR, EN, ES, DE, IT) au format .po/.mo plus un fichier .pot pour vos propres traductions (textdomain df-smart-bundle). Compatible Polylang et WPML — la langue affichée suit la locale du site ou de l’utilisateur.

Désinstallation

La désactivation du plugin retire simplement le cron planifié — vos données sont conservées. La suppression du plugin (via Extensions → Supprimer) exécute uninstall.php qui supprime définitivement les 4 tables, toutes les options et les métadonnées de commande créées par le plugin (compatible HPOS).

Dépannage

Aucun bundle n’est généré

  • Vérifiez que l’analyse a bien tourné : Smart Bundles → Analyse doit afficher un nombre de commandes analysées supérieur à zéro.
  • Abaissez les seuils (co-occurrences minimum, confiance minimum) si votre historique est réduit.
  • Vérifiez que la génération automatique est activée dans les réglages.

Le bundle n’apparaît pas en boutique

  • Le bundle doit être actif et le contexte concerné coché.
  • Un bundle dont la remise calculée est nulle (plafonnement de marge total) est masqué sur la fiche produit.
  • Dans le panier, un bundle déjà complet est masqué par design.
  • Purgez le cache de page si vous utilisez un plugin de cache.

La remise appliquée est inférieure à la remise configurée

C’est le plafonnement de marge qui agit : le coût total du bundle ne permet pas la remise demandée sans passer sous la marge minimum. Vérifiez les coûts produits ou ajustez le seuil de marge du bundle.

FAQ

Le plugin fonctionne-t-il avec les produits variables ?

L’analyse et les bundles opèrent au niveau du produit parent. Les variations d’un même produit sont comptabilisées ensemble.

Puis-je exclure certains produits de l’analyse ?

Pas dans la version 1.0.0 — supprimez ou désactivez simplement les bundles indésirables ; ils ne seront pas recréés si vous les supprimez après désactivation de la génération automatique.

Les bundles sont-ils compatibles avec les codes promo ?

Oui. La remise bundle est une fee négative indépendante des coupons WooCommerce ; les deux se cumulent.

Quel est l’impact sur les performances ?

L’analyse tourne en tâche de fond par lots. Côté boutique, les requêtes de bundles sont légères (tables indexées) et les assets ne sont chargés que sur les pages produit et panier.

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

Toujours bloqué ? Contactez le support