DataFirefly Pack Variants : documentation
Configurer le choix de déclinaison dans les packs natifs PrestaShop 8, de l'installation à l'import en masse.
Ce que fait le module
Dans PrestaShop, un pack natif impose de choisir une déclinaison précise pour chacun de ses produits, depuis l’onglet Pack du back-office. Le couple produit et déclinaison est écrit en base et le client n’a aucun moyen d’en changer. Vendre un pack contenant un t-shirt en quatre tailles oblige donc à créer quatre packs.
DataFirefly Pack Variants ajoute un sélecteur sur la fiche du pack. Pour chaque produit que vous rendez configurable, le client choisit sa déclinaison. La sélection est validée côté serveur, enregistrée avec la ligne de panier, reprise jusqu’à la facture, et le stock décrémenté est celui de la déclinaison réellement choisie.
Le module ne modifie jamais la table des packs de PrestaShop. La déclinaison que vous avez déclarée en back-office reste en place et sert de valeur par défaut. Si vous désinstallez le module, vos packs redeviennent strictement natifs.
Installation
- Dans le back-office, ouvrez Modules > Gestionnaire de modules, cliquez sur Installer un module et envoyez le ZIP.
- Le module crée ses tables et ajoute un onglet Déclinaisons de packs sous Catalogue.
- Ouvrez la configuration du module pour régler le titre du bloc, sa position et le comportement de la liste native.
Le module s’installe sur PrestaShop 8.0 à 8.x. Il n’exige aucune dépendance Composer et n’oblige à surcharger aucun template de thème.
Configurer un pack
Rendez-vous dans Catalogue > Déclinaisons de packs. Le champ de recherche en haut de page ne liste que les produits marqués comme packs : saisissez un nom, une référence ou un identifiant, puis sélectionnez le pack. La liste des packs déjà configurés apparaît juste en dessous.
L’écran d’édition affiche chaque produit du pack, avec sa quantité, sa déclinaison déclarée et sa vignette. Les produits sans déclinaison sont signalés et ne proposent aucun réglage.
Les trois modes
- Déclinaison fixe : comportement natif, aucun choix côté client. C’est le mode par défaut.
- Le client choisit n’importe quelle déclinaison : toutes les déclinaisons du produit sont proposées.
- Le client choisit parmi les déclinaisons sélectionnées : vous cochez les déclinaisons autorisées dans la liste. Il en faut au moins deux, sinon l’enregistrement est refusé.
Limiter le choix à un groupe d’attributs
Un produit en Taille et Couleur génère vite des dizaines de déclinaisons. La restriction à un groupe d’attributs résout le cas le plus courant : vous choisissez Taille, et les autres attributs restent figés sur les valeurs de la déclinaison déclarée en back-office. Le client ne voit qu’une liste de tailles, la couleur reste celle que vous avez définie pour le pack.
Le bouton Réinitialiser ce pack, en bas de l’écran, supprime toute la configuration du pack et le remet sur ses déclinaisons natives.
Import en masse
Si votre catalogue compte déjà des dizaines de packs, le panneau Import en masse de la page d’accueil du module applique la même règle à tous. Vous choisissez :
- Packs à traiter : uniquement ceux pas encore configurés, ou tous les packs en écrasant les réglages existants.
- Packs actifs uniquement : pour ignorer les packs désactivés.
- Configuration à appliquer : choix libre sur tous les produits, ou réinitialisation sur les déclinaisons fixes natives.
- Restriction à un groupe d’attributs : Taille par exemple, appliquée partout où ce groupe existe.
- Produits sans ce groupe : les laisser fixes, ou leur proposer toutes leurs déclinaisons.
Le bouton Aperçu compte les packs concernés et simule le premier lot sans rien écrire. Le bouton Lancer l’import traite ensuite le catalogue par lots de 25, avec une barre de progression. La pagination se fait par curseur sur l’identifiant produit, ce qui évite les décalages quand l’écriture modifie le périmètre en cours de route et les timeouts sur les gros catalogues.
Réglages généraux
Dans la configuration du module :
- Titre du bloc : le libellé affiché au-dessus des sélecteurs, traduisible par langue.
- Position du bloc : sous les informations produit via le hook natif, ou juste au-dessus du bouton d’ajout au panier par un déplacement JavaScript.
- Masquer la liste native du pack : activé par défaut. Le module affiche lui-même tout le contenu du pack, et conserver la liste native afficherait les déclinaisons déclarées, en contradiction avec le choix du client.
- Sélecteur CSS de la liste native :
.product-packpour Classic et Hummingbird. À changer seulement si votre thème affiche le contenu du pack ailleurs. - Afficher le prix des produits : le prix unitaire de chaque produit du pack.
- Masquer les déclinaisons en rupture : si désactivé, elles restent sélectionnables quand le produit autorise la commande en rupture.
- Masquer le champ de personnalisation natif : à laisser activé, voir la section suivante.
Ce que voit le client
Sur la fiche du pack, le module affiche une carte listant tout le contenu : pour chaque produit configurable une liste déroulante, pour les autres la déclinaison déclarée en clair. Chaque ligne porte la vignette, la quantité et, si l’option est active, le prix unitaire.
Si le client valide sans avoir complété un choix, un message d’erreur apparaît sous le bloc et l’ajout au panier est bloqué. Les déclinaisons en rupture sont désactivées ou masquées selon vos réglages.
Panier, commande et facture
La sélection est enregistrée dans le mécanisme de personnalisation natif de PrestaShop. C’est ce qui permet à deux packs identiques avec des compositions différentes de rester deux lignes de panier distinctes, alors que le cœur regroupe normalement les lignes portant le même produit. Un client qui ajoute deux fois exactement la même composition voit simplement la quantité de la ligne existante passer à deux.
Le récapitulatif du choix apparaît automatiquement dans le panier, la confirmation de commande, les e-mails, l’historique client, le détail de commande en back-office et la facture PDF.
Le module crée un champ de personnalisation texte sur chaque produit pack, marqué comme champ de module. Certains thèmes affichent malgré tout une zone de texte vide pour ce champ. Le réglage Masquer le champ de personnalisation natif s’en charge et doit rester activé, sauf si votre thème masque déjà les champs de module.
Stock
Un pack natif décrémente le stock de la déclinaison écrite dans la table des packs, pas celle que le client a choisie. À la validation de la commande, le module corrige : la déclinaison déclarée est recréditée, la déclinaison choisie est débitée, boutique par boutique.
Cette correction ne s’applique qu’aux packs dont le mode de gestion de stock décrémente les produits qui les composent. Un pack réglé pour ne décrémenter que son propre stock n’est pas concerné, et l’écran d’édition vous en avertit.
Dépannage
Le bloc ne s’affiche pas sur la fiche produit
Le bloc n’apparaît que si le pack compte au moins un produit réellement configurable : mode différent de fixe, produit à déclinaisons, et au moins deux déclinaisons candidates après filtrage de la liste blanche, du groupe d’attributs et du stock. Vérifiez aussi que le hook displayProductAdditionalInfo est bien greffé dans votre thème.
La liste native du pack reste visible
Votre thème n’utilise pas .product-pack. Inspectez la page, relevez la classe ou l’identifiant du conteneur et renseignez-le dans le réglage du sélecteur CSS.
Une zone de texte vide apparaît sur la fiche
C’est le champ de personnalisation du module, rendu par certains thèmes. Activez le réglage prévu pour le masquer.
Le choix n’apparaît pas dans le panier
Videz le cache PrestaShop et vérifiez qu’aucun module tiers ne remplace le formulaire d’ajout au panier. Le module intercepte le clic sur le bouton en phase de capture pour passer avant le script du thème, mais un formulaire entièrement reconstruit par un autre module peut contourner ce point d’accroche.
Limites connues
- L’impact prix des déclinaisons est ignoré. Un pack natif se vend à un prix unique, qu’une personnalisation ne peut pas modifier. L’écran d’édition signale les produits concernés pour que vous puissiez exclure ces déclinaisons de la liste autorisée.
- La facture reste une ligne unique au taux de TVA du pack, avec le détail des choix en récapitulatif de personnalisation. Si chaque composant doit être facturé séparément avec son propre taux, orientez-vous vers DataFirefly Pack Pro ou Pack VAT Pro.
- Cette version cible PrestaShop 8.0 à 8.x. L’écran de gestion des packs ayant changé de socle technique en PrestaShop 9, le portage fera l’objet d’une version dédiée.
Compatibilité
- PrestaShop 8.0.0 à 8.x
- Multiboutique : les réglages sont enregistrés par boutique
- Multilingue : interface du module livrée en français, anglais, espagnol, allemand, italien, néerlandais, polonais et portugais
- Testé sur le thème Classic