SW Shopware 6 Débutant

Compteur de Paniers Shopware 6 : installation et configuration

Installer, amorcer l'index et configurer le badge « Dans + de 20 paniers » sur Shopware 6.5, 6.6 et 6.7.

Mis à jour Version du module 1.0.0

Le plugin DfCartPopularity affiche sur la fiche produit un badge indiquant le nombre de paniers contenant actuellement le produit, par exemple « Dans + de 20 paniers ». Le comptage repose sur vos vraies données de panier.

Prérequis

  • Shopware 6.5, 6.6 ou 6.7 en installation auto-hébergée (le SaaS Shopware Cloud n’accepte pas les plugins serveur)
  • PHP 8.1 ou supérieur
  • Accès SSH pour les commandes console et la compilation du thème

Installation

Déposez le ZIP via Extensions puis Mes extensions, ou copiez le dossier dans custom/plugins/, puis lancez :

bin/console plugin:refresh
bin/console plugin:install --activate DfCartPopularity
bin/console cache:clear
./bin/build-storefront.sh

La compilation du storefront est nécessaire une fois, pour intégrer la feuille de style du badge. Sur un environnement piloté par un pipeline de déploiement, cette étape fait généralement déjà partie du processus standard.

Amorcer l’index

À l’installation, l’index est vide : les compteurs partent de zéro et se remplissent à mesure que les clients modifient leur panier. Pour afficher des chiffres crédibles dès le premier jour, lancez la reconstruction :

bin/console df:cart-popularity:rebuild

La commande lit les paniers déjà stockés dans la boutique et alimente l’index. Elle est idempotente et peut être relancée sans risque. L’option --truncate vide l’index avant reconstruction.

Les paniers déjà transformés en commande sont supprimés par Shopware de la table des paniers. La reconstruction ne voit donc que les paniers actifs, ce qui est exactement le périmètre attendu.

Configuration

Paramètres, Système, Plugins, DataFirefly Cart Popularity, puis Configurer. Chaque option est surchargeable canal de vente par canal de vente.

Affichage

  • Activer le badge : le suivi des paniers continue même badge désactivé, les données sont donc prêtes le jour où vous l’activez.
  • Seuil minimum (défaut 5) : en dessous de ce nombre de paniers, rien ne s’affiche.
  • Mode d’affichage : palier arrondi ou nombre exact.
  • Pas du palier (défaut 10) : un comptage de 23 s’affiche en « + de 20 ». Si le comptage est inférieur au pas, le plugin bascule automatiquement sur le nombre exact plutôt que d’annoncer un palier faux.
  • Emplacement : au-dessus ou sous le bloc d’achat.
  • Style du badge : fond léger, contour ou texte simple.

Règles de comptage

  • Fenêtre temporelle (défaut 7 jours) : seuls les paniers mis à jour dans cette fenêtre sont comptés. La valeur 0 désactive la fenêtre.
  • Paniers actifs uniquement : exclut les paniers déjà transformés en commande.
  • Limiter au canal de vente : évite qu’un pic sur une boutique gonfle le compteur d’une autre.
  • Agréger les déclinaisons : toutes les variantes d’un produit partagent le compteur du parent. Désactivez cette option si chaque déclinaison doit avoir son propre compteur.

Performance et rétention

  • Durée de vie du cache (défaut 900 secondes) : la requête de comptage n’est exécutée qu’une fois par durée de vie et par produit. La valeur 0 désactive le cache. Le cache est vidé automatiquement à chaque enregistrement de la configuration.
  • Rétention (défaut 60 jours) : les enregistrements plus anciens sont supprimés. Le nettoyage s’exécute automatiquement, au maximum une fois par heure, sans dépendre du message queue.

Personnaliser le texte

Le libellé du badge vit dans les snippets Shopware. Paramètres, Snippets, puis recherchez dfCartPopularity. Trois clés sont disponibles :

  • dfCartPopularity.badge.textTier : mode palier, contient le placeholder du nombre
  • dfCartPopularity.badge.textExact : mode exact, contient le placeholder du nombre
  • dfCartPopularity.badge.textSingular : mode exact avec un seul panier

Le placeholder s’écrit %count% et doit être conservé dans votre formulation. Les traductions anglaise, allemande, française, espagnole, italienne et polonaise sont fournies.

Comment fonctionne le comptage

Shopware sérialise le panier complet dans une colonne payload de la table cart, souvent compressée. Aucune requête SQL ne peut donc savoir ce que contient un panier sans le désérialiser. Le plugin maintient sa propre table df_cart_popularity associant un jeton de panier, un produit, un canal de vente, une quantité et un indicateur de commande.

Cette table est synchronisée à chaque persistance de panier via CartSavedEvent, en deux requêtes indexées. L’événement CartConvertedEvent marque les lignes comme commandées au moment du passage en commande. L’affichage effectue alors un simple comptage distinct sur un index composite, mis en cache.

Aucune donnée personnelle n’est enregistrée : l’index ne contient que le jeton de panier, qui est un identifiant technique pseudonyme, la référence produit, le canal de vente et des horodatages.

Commandes CLI

bin/console df:cart-popularity:rebuild
bin/console df:cart-popularity:rebuild --truncate
bin/console df:cart-popularity:cleanup
bin/console df:cart-popularity:cleanup --days=30

Dépannage

Le badge ne s’affiche pas

Vérifiez dans l’ordre : le badge est activé pour le canal de vente concerné, le nombre de paniers atteint le seuil, la fenêtre temporelle n’exclut pas tous les paniers, et le storefront a bien été recompilé après l’installation. Videz aussi le cache HTTP si la page est servie depuis le cache.

Le badge s’affiche sans style

La feuille de style du plugin est intégrée à la compilation du thème. Relancez ./bin/build-storefront.sh ou bin/console theme:compile.

La commande de reconstruction indique des paniers ignorés

Ces paniers utilisent un format de payload que la commande ne sait pas lire, typiquement un stockage de panier externalisé. Ils seront indexés normalement dès la prochaine modification par le client, le suivi par événement fonctionnant indépendamment du mode de stockage.

Désinstallation

La désinstallation avec suppression des données utilisateur supprime la table df_cart_popularity et la configuration du plugin. En conservant les données utilisateur, la table reste en place et les compteurs repartent tels quels en cas de réinstallation.

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

Toujours bloqué ? Contactez le support