PS PrestaShop Intermédiaire

Packs de produits & bundles : documentation

Créer des packs et bundles sur PrestaShop 8 et 9 : composition, quatre modes de prix, affichage sur les fiches produits, comportement au panier et adaptation au thème.

Mis à jour Version du module 2.5.1

Installation

Le module s’installe comme n’importe quel module PrestaShop, par le back-office ou par FTP.

  1. Depuis Modules puis Gestionnaire de modules, cliquez sur Installer un module et déposez le fichier dfpackpro.zip.
  2. Par FTP, décompressez l’archive dans le dossier /modules/ de votre boutique, puis installez DataFirefly – Packs & Bundles depuis le gestionnaire de modules.
  3. Videz le cache dans Paramètres avancés puis Performances.

L’installation crée six tables préfixées ps_dfpackpro, enregistre les hooks nécessaires et ajoute l’onglet Packs & Bundles (DF) dans le menu Catalogue.

Le module n’installe aucun override de classe ni de contrôleur. La désinstallation supprime les tables, les clés de configuration et l’onglet.

Réglages généraux

Le bouton Configurer de la fiche module ouvre les réglages qui s’appliquent à tous les packs.

  • Position du bloc sur la fiche produit : sous le bloc d’achat, en pied de fiche, ou les deux. Le bloc liste les packs contenant le produit consulté.
  • Bloc packs actif : coupe l’affichage cross-sell sans désinstaller. Les pages packs restent accessibles.
  • Nombre maximum de packs affichés : 3 par défaut.
  • Tri des packs : position, date de création, ou aléatoire.
  • Afficher les prix unitaires : détaille le prix de chaque composant sur la page pack.
  • Afficher l’économie : badge et montant économisé, sur le bloc fiche produit et la page pack.
  • Afficher la disponibilité : état de stock du pack, calculé depuis les stocks des composants.
  • Mode panier strict : si le client retire un composant, tout le pack et sa remise sont retirés. Désactivé, le retrait est accepté et la remise conservée sur le reste.
  • Après l’ajout au panier : redirection vers le panier, ou confirmation sur place.
  • Couleur d’accent : couleur des badges, boutons et bordures des blocs du module.
  • Produit vitrine dans le catalogue : active la génération du produit vitrine de chaque pack (listings, recherche, sitemap).
  • Base de prix de la vitrine : TTC pour une boutique B2C, HT pour une boutique qui affiche les prix hors taxes.
  • Récapitulatif packs sur la facture PDF : bloc ajouté en fin de facture, seul emplacement exposé par PrestaShop.
  • Récapitulatif packs sur la confirmation et l’historique de commande.
  • Sélecteur de déclinaisons sur la page pack : comme la fiche produit (un sélecteur par attribut : liste, pastilles couleur ou boutons, selon le type de chaque groupe d’attributs), liste de toutes les déclinaisons, ou vignettes images cliquables. Dans tous les modes, choisir une déclinaison bascule la photo du produit sur l’image associée, et si la variante par défaut d’un composant à choix libre est épuisée, la page s’ouvre sur une déclinaison en stock.
  • Affichage de la page du pack : page pack dédiée, ou fiche produit de la boutique. Voir la section « Afficher le pack comme une fiche produit ».
  • Pack dans le panier : une ligne par produit, ou une seule ligne pour le pack. Voir la section « Une seule ligne pour le pack dans le panier ».

Créer un pack

Ouvrez Catalogue puis Packs & Bundles (DF), et cliquez sur Nouveau pack.

Informations du pack

  • Nom : champ traduit, affiché sur le bloc fiche produit, la page pack et le badge panier.
  • Alias URL : généré automatiquement depuis le nom si vous le laissez vide. Il compose l’adresse de la page pack.
  • Description : texte riche traduit, affiché sur la page pack.
  • Badge : texte court traduit, affiché sur les cartes du bloc cross-sell. Laissez vide pour afficher le pourcentage d’économie.
  • Mode de prix : les quatre modes décrits plus bas. Le formulaire masque les champs inutiles selon le mode choisi.
  • Hériter des promotions existantes : activé, les remises catalogue en cours servent de prix de départ au calcul du pack.
  • Dates de validité : laissez vide pour un pack permanent. Hors période, le pack disparaît du front.
  • Actif : équivalent du bouton d’activation dans la liste.

Composants

Le panneau Composants gère le contenu du pack.

  • Recherche produit : tapez au moins deux caractères. La recherche porte sur le nom, la référence et l’ID. Cliquez sur un résultat pour l’ajouter.
  • Déclinaison : pour un produit à déclinaisons, le sélecteur liste les variantes avec leur prix. La variante choisie devient celle par défaut.
  • Choix de la déclinaison par le client : activé, le client sélectionne sa variante sur la page pack et dans le bloc fiche produit. Désactivé, la variante est imposée.
  • Quantité : nombre d’unités du composant dans le pack. Un pack peut ne contenir qu’un seul produit en quantité, pour une vente par lot.
  • Quantité modifiable : le client peut ajuster la quantité de ce composant sur la page pack.
  • Optionnel : le client peut décocher ce composant, le prix se recalcule.
  • Remise par produit : en pourcentage ou en montant, visible uniquement en mode Remise par produit. Une remise de 100 % rend le composant offert.
  • Ordre : flèches haut et bas pour ordonner l’affichage.

Le simulateur de prix sous le tableau recalcule en direct le prix total, le prix pack et l’économie à chaque modification.

Le bouton Dupliquer de la liste copie un pack complet avec ses composants, pratique pour décliner une même mécanique sur plusieurs gammes.

L’éditeur de pack

Le formulaire est organisé en six étapes : informations (nom, référence, badge, visibilité, URL simplifiée, période de validité), produits, prix, images, description et catalogue. Le sélecteur de langue en haut des étapes 1 et 5 bascule tous les champs traduits. À droite, le récapitulatif se met à jour à chaque modification : prix des produits achetés séparément, remise, prix du pack TTC et HT, et ventilation de la TVA par taux telle qu’elle apparaîtra sur la facture.

Les images se déposent par glisser-déposer ou par clic. Faites glisser les vignettes pour changer leur ordre : la première devient la couverture. L’arbre des catégories de l’étape 6 détermine où le pack apparaît dans le catalogue, la première catégorie cochée devenant sa catégorie par défaut.

Les quatre modes de prix

Sans remise

Le pack vend les composants à leur prix courant. Utile pour un pack de pure commodité, ou pour ne mettre en avant que la composition.

Remise globale en pourcentage

Le pourcentage s’applique au prix de chaque composant. Un pack à -15 % remet chaque ligne de 15 %.

Remise par produit

Chaque composant porte sa propre remise, en pourcentage ou en montant. C’est le mode des offres du type machine plus consommable offert : la machine à 0 %, le consommable à 100 %.

Prix fixe

Vous annoncez le prix du pack, TTC dans la devise par défaut. L’écart entre la somme des prix courants et le prix annoncé est réparti proportionnellement sur chaque ligne, en hors taxes. Chaque produit conserve son taux de TVA.

Exemple : un pack à 49 € composé d’un produit A à 40 € TTC et d’un produit B à 30 € TTC. La somme courante fait 70 €, la remise 21 €. A supporte 12 € de remise, B 9 €, proportionnellement à leur poids dans le total. La facture reste exacte même si A est à 20 % de TVA et B à 5,5 %.

Le bloc sur les fiches produits

Chaque produit appartenant à un pack affiche un bloc « Ce produit est aussi disponible en pack ». Chaque carte présente les miniatures des composants, le nom du pack, le prix total barré, le prix pack, le badge d’économie et l’état de stock.

  • Voir le pack ouvre la page pack.
  • Ajouter ajoute directement le pack au panier, dans sa configuration par défaut. Le bouton devient Configurer quand le pack contient des choix à faire : déclinaison libre, composant optionnel ou quantité modifiable.

La position du bloc, le nombre de cartes et leur tri se règlent dans la configuration du module.

La page pack

Chaque pack a sa page à l’adresse /pack/12-mon-alias, avec l’identifiant du pack et l’alias de la langue en cours. La page liste les composants avec leurs sélecteurs de déclinaison, les cases des produits optionnels et les champs de quantité quand ils sont ouverts.

Chaque modification recalcule en Ajax le prix total, le prix pack, l’économie et la disponibilité, sans recharger la page. Le bouton d’ajout envoie la sélection courante au panier.

La disponibilité est calculée depuis les stocks réels : le pack est vendable si chaque composant requis est disponible dans la quantité demandée, en tenant compte des autorisations de commande hors stock de chaque produit.

Le panier

À l’ajout d’un pack, chaque composant devient une vraie ligne de panier, facturée à son prix pack via un prix spécifique limité à ce panier. Aucun produit fantôme n’est créé.

Badge de pack

Chaque ligne appartenant à un pack affiche un badge avec le nom du pack, un lien vers sa page et un bouton Retirer le pack entier. Le retrait supprime toutes les lignes du pack et leurs remises en une action.

Quantités supplémentaires

Le prix pack ne couvre que les quantités du pack. Si le client augmente la quantité d’une ligne, le module applique un prix unitaire moyen pondéré : quantité pack au prix pack, surplus au prix normal.

Exemple : pack de 2 unités à 8 € pour un prix normal de 10 €. Le client passe la ligne à 5 unités. Le prix unitaire devient (2 x 8 + 3 x 10) / 5 = 9,20 €, soit un total de 46 €. La remise reste bornée aux 2 unités du pack.

Mode strict

Activé, la suppression d’un composant retire tout le pack et sa remise. Cela empêche de conserver la remise en rendant une partie du lot. Désactivé, le retrait est accepté et la remise conservée sur les lignes restantes.

Un même produit peut appartenir à plusieurs packs dans le même panier. Chaque pack est suivi séparément et le prix moyen tient compte de l’ensemble.

Commandes et comptabilité

Chaque produit du pack arrive sur sa propre ligne de commande, à son prix pack. Factures, bons de livraison, avoirs et retours partiels fonctionnent nativement, article par article. Vos exports comptables et ERP ne voient que des références réelles de votre catalogue.

La facture affiche le prix hors pack (promotions catalogue incluses) et le prix unitaire pack par ligne, plus un bloc Détail des packs en fin de facture : total hors pack, remise en montant et en pourcentage, total pack. Le même récapitulatif apparaît sur la page de confirmation et dans l’historique de commande du client. Le détail de chaque commande dans le back-office affiche un récapitulatif des packs commandés. La liste des packs affiche un compteur de ventes par pack.

Le produit vitrine dans le catalogue

Chaque pack génère un produit vitrine synchronisé automatiquement : un vrai produit du catalogue, sans règle de taxe, référence DFPACK suivie de l’identifiant du pack. Il apparaît dans les listings de catégories, la recherche native, les filtres à facettes et le sitemap, avec la galerie du pack, le prix total barré et le badge promo natifs. Son stock affiché suit la disponibilité calculée du pack.

Selon le réglage « Affichage de la page du pack », la fiche de la vitrine redirige en 301 vers la page pack, ou affiche elle-même le pack comme une fiche produit. Selon le réglage « Pack dans le panier », une ligne de panier qui la référence est convertie en lignes produits, chacune avec son propre taux de TVA, ou devient une ligne pack unique avec son contenu. Elle est resynchronisée à chaque sauvegarde du pack, à chaque modification ou mouvement de stock d’un produit composant et après chaque commande.

Ne modifiez pas le produit vitrine directement dans le catalogue : la prochaine synchronisation écraserait vos changements. Tout se pilote depuis le formulaire du pack.

Importer les packs natifs PrestaShop

Le bouton Import PrestaShop packs de la liste des packs convertit vos packs natifs : composants avec déclinaisons et quantités, catégories, images et prix repris (mode prix fixe). Le produit pack natif est désactivé après import pour ne pas faire doublon avec la vitrine ; réactivez-le dans le catalogue si besoin. La référence PSPACK garde la trace de l’origine : relancer l’import n’importe jamais deux fois le même pack. Les packs imbriqués dans d’autres packs sont ignorés.

Afficher le pack comme une fiche produit

Avec le réglage « Affichage de la page du pack » sur « Fiche produit de la boutique », le pack s’affiche sur la fiche de son produit vitrine, construite par votre thème comme tous les autres produits : galerie, fil d’Ariane, prix, quantité, bouton d’ajout au panier, onglets, avis. Le bloc « Ce pack contient » est placé au-dessus de la quantité, avec les produits, leurs sélecteurs de déclinaisons, les produits optionnels et l’économie réalisée.

Quand le client change une déclinaison, le prix, le prix barré et le pourcentage de remise du thème se mettent à jour. Le bouton d’ajout au panier du thème ajoute le pack avec la sélection du client, et le champ quantité fixe le nombre de packs. Les liens vers le pack (bloc cross-sell, page /packs, badge du panier) pointent vers cette fiche, et les anciennes adresses /pack/ y redirigent en 301.

L’aperçu rapide des listes de produits reste une fenêtre produit simple : un ajout depuis cet aperçu ajoute le pack dans sa configuration par défaut.

Une seule ligne pour le pack dans le panier

Avec le réglage « Pack dans le panier » sur « Une ligne pour le pack », le pack entre dans le panier comme une seule ligne, sous le nom du pack, avec son contenu listé en dessous : « 1 x T-shirt (Taille : S, Couleur : Blanc) ». Deux sélections différentes donnent deux lignes, un même pack ajouté deux fois avec la même sélection augmente la quantité de la ligne.

Le prix de la ligne est la somme des prix des produits, calculée avec le taux de TVA de chacun : les totaux HT, TTC et TVA du panier et de la commande sont exacts. Sur la facture, la ligne pack affiche son prix de base et sa remise, et la TVA est ventilée par taux. Le contenu du pack apparaît aussi au checkout, dans le détail de commande, les emails et la facture, et la carte « Packs de cette commande » du back-office indique les produits et déclinaisons à préparer.

Le stock de chaque produit est décrémenté à la commande, puis restitué si la commande passe en « Annulé » ou « Erreur de paiement », et repris si elle est réactivée.

Les retours partiels avec réintégration en stock ne restituent que le produit vitrine. Vos exports comptables voient une référence DFPACK avec plusieurs taux de TVA sur une même ligne : si votre comptabilité exige une ligne par taux, gardez le mode « Une ligne par produit ».

Multi-boutique et multilingue

Chaque pack est associé aux boutiques du contexte de création et peut être géré boutique par boutique. Les champs Nom, Alias URL, Description et Badge sont traduits dans les langues installées. Le front reprend la langue du client, y compris dans l’alias de la page pack.

Adapter l’affichage à votre thème

Trois templates sont surchargeables. Copiez-les depuis /modules/dfpackpro/views/templates/ vers /themes/votre-theme/modules/dfpackpro/views/templates/ en conservant les sous-dossiers.

  • hook/product_packs.tpl : le bloc cross-sell des fiches produits
  • front/pack.tpl : la page pack
  • hook/cart_line_badge.tpl : le badge de pack dans le panier

Le CSS est isolé sous le préfixe dfpackpro et la couleur d’accent est portée par la variable CSS --dfpackpro-accent. Pour un ajustement ponctuel, ciblez les classes depuis la feuille de style de votre thème plutôt que de modifier views/css/front.css, qui serait écrasé à la mise à jour.

Dépannage

Le bloc n’apparaît pas sur la fiche produit

  1. Vérifiez que le pack est actif et que la date du jour est dans la période de validité.
  2. Vérifiez que le produit consulté fait bien partie des composants du pack.
  3. Contrôlez le réglage Bloc packs actif et la position choisie dans la configuration.
  4. Videz le cache Smarty et le cache de votre serveur.

Le pack est affiché indisponible

La disponibilité est le minimum des stocks des composants requis, divisés par leur quantité dans le pack. Un seul composant épuisé sans autorisation de commande hors stock suffit à rendre le pack indisponible. Les composants optionnels décochés ne comptent pas.

Le badge panier apparaît au mauvais endroit

Le badge est rendu dans la colonne des actions par le thème, puis déplacé en JavaScript dans le bloc d’informations du produit. Sur un thème très personnalisé sans les conteneurs standards, le badge reste affiché à sa position d’origine. Surchargez cart_line_badge.tpl pour l’intégrer à votre structure.

Le prix pack s’applique à trop d’unités

Ce cas est couvert par le prix moyen pondéré : vérifiez le prix unitaire affiché sur la ligne, il doit être entre le prix pack et le prix normal dès que la quantité dépasse celle du pack. Si ce n’est pas le cas, videz le cache et modifiez la quantité pour déclencher un recalcul.

La page pack renvoie une 404

Vérifiez que le pack est actif et dans sa période de validité. Après un changement d’alias, l’ancienne adresse redirige en 301 vers la nouvelle tant que l’identifiant du pack est correct.

Désinstallation

La désinstallation supprime les six tables du module, ses clés de configuration et l’onglet du menu Catalogue. Les commandes passées conservent leurs lignes et leurs prix, votre historique comptable n’est pas altéré.

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

Toujours bloqué ? Contactez le support