Productpacks & bundels: volledige gids
Packs en bundels aanmaken op PrestaShop 8 en 9: samenstelling, vier prijsmodi, weergave op de productpagina's, gedrag in de winkelwagen en aanpassing aan het thema.
Installatie
De module installeert zoals elke andere PrestaShop-module, via de back-office of via FTP.
- Klik vanuit Modules en dan Modulebeheer op Een module installeren en sleep het bestand
dfpackpro.ziperin. - Via FTP: pak het archief uit in de map
/modules/van uw winkel en installeer dan DataFirefly – Packs & Bundles vanuit het modulebeheer. - Leeg de cache in Geavanceerde instellingen en dan Prestaties.
De installatie maakt zes tabellen aan met het voorvoegsel ps_dfpackpro, registreert de nodige hooks en voegt het tabblad Packs & Bundles (DF) toe aan het menu Catalogus.
De module installeert geen enkele klasse- of controller-override. Het deïnstalleren verwijdert de tabellen, de configuratiesleutels en het tabblad.
Algemene instellingen
De knop Configureren van de modulefiche opent de instellingen die op alle packs van toepassing zijn.
- Positie van het blok op de productpagina: onder het aankoopblok, onderaan de pagina, of beide. Het blok somt de packs op die het bekeken product bevatten.
- Packblok actief: schakelt de cross-sell-weergave uit zonder te deïnstalleren. De packpagina’s blijven bereikbaar.
- Maximumaantal getoonde packs: standaard 3.
- Sortering van de packs: positie, aanmaakdatum, of willekeurig.
- Eenheidsprijzen tonen: detailleert de prijs van elk onderdeel op de packpagina.
- Besparing tonen: badge en bespaard bedrag, op het productpaginablok en de packpagina.
- Beschikbaarheid tonen: voorraadstatus van het pack, berekend uit de voorraden van de onderdelen.
- Strikte winkelwagenmodus: verwijdert de klant een onderdeel, dan worden het hele pack en zijn korting verwijderd. Uitgeschakeld wordt de verwijdering geaccepteerd en blijft de korting op de rest behouden.
- Na het toevoegen aan de winkelwagen: redirect naar de winkelwagen, of bevestiging ter plekke.
- Accentkleur: kleur van de badges, knoppen en randen van de moduleblokken.
- Etalageproduct in de catalogus: schakelt het voor elk pack gegenereerde etalageproduct in (lijsten, zoekfunctie, sitemap).
- Prijsbasis van de etalage: inclusief btw voor een B2C-winkel, exclusief btw voor een winkel die prijzen zonder btw toont.
- Packsamenvatting op de factuur-PDF: blok toegevoegd aan het einde van de factuur, de enige plek die PrestaShop beschikbaar stelt.
- Packsamenvatting op de bevestiging en in de bestelgeschiedenis.
- Variantselector op de packpagina: zoals de productpagina (één selector per attribuut: dropdown, kleurstalen of knoppen, volgens het type van elke attribuutgroep), één dropdown met alle varianten, of klikbare afbeeldingsminiaturen. In elke modus wisselt het kiezen van een variant de productfoto naar de gekoppelde afbeelding, en is de standaardvariant van een onderdeel met vrije keuze uitverkocht, dan opent de pagina op een variant met voorraad.
- Weergave van de packpagina: eigen packpagina, of productpagina van de winkel. Zie de sectie “Het pack tonen als productpagina”.
- Pack in de winkelwagen: één regel per product, of één regel voor het pack. Zie de sectie “Eén regel voor het pack in de winkelwagen”.
Een pack aanmaken
Open Catalogus en dan Packs & Bundles (DF), en klik op Nieuw pack.
Packinformatie
- Naam: vertaald veld, getoond op het productpaginablok, de packpagina en de winkelwagenbadge.
- URL-alias: automatisch gegenereerd uit de naam als u het leeg laat. Het vormt het adres van de packpagina.
- Beschrijving: vertaalde rich text, getoond op de packpagina.
- Badge: korte vertaalde tekst, getoond op de kaarten van het cross-sell-blok. Laat leeg om het besparingspercentage te tonen.
- Prijsmodus: de vier hieronder beschreven modi. Het formulier verbergt de overbodige velden volgens de gekozen modus.
- Bestaande promoties overerven: ingeschakeld dienen de lopende cataloguskortingen als vertrekprijs voor de packberekening.
- Geldigheidsdatums: laat leeg voor een permanent pack. Buiten de periode verdwijnt het pack van de front.
- Actief: equivalent van de activeringsknop in de lijst.
Onderdelen
Het paneel Onderdelen beheert de inhoud van het pack.
- Productzoekfunctie: typ minstens twee tekens. De zoekopdracht doorzoekt de naam, de referentie en het ID. Klik op een resultaat om het toe te voegen.
- Variant: bij een product met varianten toont de kiezer de varianten met hun prijs. De gekozen variant wordt de standaardvariant.
- Variantkeuze door de klant: ingeschakeld kiest de klant zijn variant op de packpagina en in het productpaginablok. Uitgeschakeld ligt de variant vast.
- Hoeveelheid: aantal eenheden van het onderdeel in het pack. Een pack kan ook maar één product in hoeveelheid bevatten, voor een setverkoop.
- Aanpasbare hoeveelheid: de klant kan de hoeveelheid van dit onderdeel op de packpagina aanpassen.
- Optioneel: de klant kan dit onderdeel uitvinken, de prijs wordt herberekend.
- Korting per product: in percentage of in bedrag, alleen zichtbaar in de modus Korting per product. Een korting van 100% maakt het onderdeel gratis.
- Volgorde: pijlen omhoog en omlaag om de weergave te ordenen.
De prijssimulator onder de tabel herberekent bij elke wijziging live de totaalprijs, de packprijs en de besparing.
De knop Dupliceren in de lijst kopieert een volledig pack met zijn onderdelen, praktisch om eenzelfde mechanisme over meerdere assortimenten uit te rollen.
De packeditor
Het formulier is ingedeeld in zes stappen: informatie (naam, referentie, badge, zichtbaarheid, vriendelijke URL, geldigheidsperiode), producten, prijs, afbeeldingen, beschrijving en catalogus. De taalkeuze bovenaan stap 1 en 5 schakelt alle vertaalde velden om. Rechts wordt de samenvatting bij elke wijziging bijgewerkt: prijs van de los gekochte producten, korting, packprijs incl. en excl. btw, en de btw-uitsplitsing per tarief zoals die op de factuur verschijnt.
Afbeeldingen voeg je toe door slepen en neerzetten of met een klik. Sleep de miniaturen om de volgorde te wijzigen: de eerste wordt de cover. De categorieboom van stap 6 bepaalt waar het pack in de catalogus verschijnt, de eerste aangevinkte categorie wordt de standaardcategorie.
De vier prijsmodi
Zonder korting
Het pack verkoopt de onderdelen tegen hun huidige prijs. Nuttig voor een puur gemakspack, of om alleen de samenstelling in de kijker te zetten.
Globale korting in percentage
Het percentage wordt op de prijs van elk onderdeel toegepast. Een pack van -15% kort elke regel met 15%.
Korting per product
Elk onderdeel draagt zijn eigen korting, in percentage of in bedrag. Dit is de modus voor aanbiedingen van het type machine plus gratis verbruiksartikel: de machine op 0%, het verbruiksartikel op 100%.
Vaste prijs
U kondigt de packprijs aan, inclusief btw in de standaardvaluta. Het verschil tussen de som van de huidige prijzen en de aangekondigde prijs wordt proportioneel over elke regel verdeeld, exclusief btw. Elk product behoudt zijn btw-tarief.
Voorbeeld: een pack van 49 € met een product A van 40 € incl. btw en een product B van 30 € incl. btw. De huidige som is 70 €, de korting 21 €. A draagt 12 € korting, B 9 €, proportioneel aan hun gewicht in het totaal. De factuur blijft exact, ook als A op 21% btw zit en B op 9%.
Het blok op de productpagina’s
Elk product dat tot een pack behoort, toont een blok “Dit product is ook beschikbaar in een pack”. Elke kaart toont de miniaturen van de onderdelen, de packnaam, de doorgestreepte totaalprijs, de packprijs, de besparingsbadge en de voorraadstatus.
- Pack bekijken opent de packpagina.
- Toevoegen voegt het pack direct aan de winkelwagen toe, in zijn standaardconfiguratie. De knop wordt Configureren wanneer het pack keuzes bevat: vrije variant, optioneel onderdeel of aanpasbare hoeveelheid.
De positie van het blok, het aantal kaarten en hun sortering stelt u in via de moduleconfiguratie.
De packpagina
Elk pack heeft zijn pagina op het adres /pack/12-mijn-alias, met het pack-ID en de alias in de huidige taal. De pagina somt de onderdelen op met hun variantkiezers, de selectievakjes van de optionele producten en de hoeveelheidsvelden wanneer die open staan.
Elke wijziging herberekent via Ajax de totaalprijs, de packprijs, de besparing en de beschikbaarheid, zonder de pagina te herladen. De toevoegknop verstuurt de huidige selectie naar de winkelwagen.
De beschikbaarheid wordt berekend uit de werkelijke voorraden: het pack is verkoopbaar als elk vereist onderdeel in de gevraagde hoeveelheid beschikbaar is, rekening houdend met de toestemmingen voor bestellen zonder voorraad van elk product.
De winkelwagen
Bij het toevoegen van een pack wordt elk onderdeel een echte winkelwagenregel, gefactureerd tegen zijn packprijs via een tot die winkelwagen beperkte specifieke prijs. Er wordt geen enkel spookproduct aangemaakt.
Packbadge
Elke regel die tot een pack behoort, toont een badge met de packnaam, een link naar zijn pagina en een knop Het hele pack verwijderen. Het verwijderen wist alle regels van het pack en hun kortingen in één actie.
Extra hoeveelheden
De packprijs dekt alleen de hoeveelheden van het pack. Verhoogt de klant de hoeveelheid van een regel, dan past de module een gewogen gemiddelde eenheidsprijs toe: packhoeveelheid tegen packprijs, surplus tegen normale prijs.
Voorbeeld: pack van 2 eenheden voor 8 € bij een normale prijs van 10 €. De klant zet de regel op 5 eenheden. De eenheidsprijs wordt (2 x 8 + 3 x 10) / 5 = 9,20 €, ofwel een totaal van 46 €. De korting blijft begrensd op de 2 eenheden van het pack.
Strikte modus
Ingeschakeld verwijdert het wissen van een onderdeel het hele pack en zijn korting. Dat verhindert de korting te behouden door een deel van de set terug te leggen. Uitgeschakeld wordt de verwijdering geaccepteerd en blijft de korting op de resterende regels behouden.
Eenzelfde product kan in dezelfde winkelwagen tot meerdere packs behoren. Elk pack wordt apart gevolgd en de gemiddelde prijs houdt rekening met het geheel.
Bestellingen en boekhouding
Elk product van het pack komt op zijn eigen bestelregel, tegen zijn packprijs. Facturen, leveringsbonnen, creditnota’s en gedeeltelijke retours werken native, artikel per artikel. Uw boekhoud- en ERP-exports zien alleen echte referenties uit uw catalogus.
De factuur toont de prijs zonder pack (cataloguspromoties inbegrepen) en de pack-eenheidsprijs per regel, plus een blok Packdetails aan het einde van de factuur: totaal zonder pack, korting in bedrag en percentage, packtotaal. Dezelfde samenvatting verschijnt op de bevestigingspagina en in de bestelgeschiedenis van de klant. Het detail van elke bestelling in de back-office toont een samenvatting van de bestelde packs. De packlijst toont een verkoopteller per pack.
Het etalageproduct in de catalogus
Elk pack genereert een automatisch gesynchroniseerd etalageproduct: een echt catalogusproduct zonder belastingregel, met de referentie DFPACK gevolgd door het pack-ID. Het verschijnt in categorielijsten, de native zoekfunctie, de facetfilters en de sitemap, met de galerij van het pack, het native doorgestreepte totaal en de promobadge. De getoonde voorraad volgt de berekende packbeschikbaarheid.
Afhankelijk van de instelling “Weergave van de packpagina” verwijst de etalagepagina met een 301 door naar de packpagina, of toont ze het pack zelf als productpagina. Afhankelijk van de instelling “Pack in de winkelwagen” wordt een winkelwagenregel die ernaar verwijst omgezet in productregels, elk met zijn eigen btw-tarief, of wordt ze één packregel met de inhoud. Ze wordt geresynchroniseerd bij elke opslag van het pack, bij elke wijziging of voorraadbeweging van een onderdeelproduct en na elke bestelling.
Bewerk het etalageproduct niet rechtstreeks in de catalogus: de volgende synchronisatie zou uw wijzigingen overschrijven. Alles wordt aangestuurd vanuit het packformulier.
Native PrestaShop-packs importeren
De knop Import PrestaShop packs in de packlijst zet uw native packs om: onderdelen met varianten en hoeveelheden, categorieën, afbeeldingen en prijs inbegrepen (vaste-prijsmodus). Het native packproduct wordt na de import gedeactiveerd zodat het niet met de etalage concurreert; heractiveer het in de catalogus indien nodig. De referentie PSPACK bewaart de herkomst: de import opnieuw uitvoeren importeert hetzelfde pack nooit twee keer. Packs genest in andere packs worden genegeerd.
Het pack tonen als productpagina
Met de instelling “Weergave van de packpagina” op “Productpagina van de winkel” verschijnt het pack op de pagina van zijn etalageproduct, opgebouwd door je thema zoals elk ander product: galerij, kruimelpad, prijs, hoeveelheid, winkelwagenknop, tabbladen, reviews. Het blok “Dit pack bevat” staat boven de hoeveelheid, met de producten, hun variantselectors, de optionele producten en de besparing.
Wanneer de klant een variant wijzigt, worden de prijs, de doorgestreepte prijs en het kortingspercentage van het thema bijgewerkt. De winkelwagenknop van het thema voegt het pack met de selectie van de klant toe, en het hoeveelheidsveld bepaalt het aantal packs. Links naar het pack (cross-sell-blok, pagina /packs, winkelwagenbadge) wijzen naar deze pagina, en de oude /pack/-adressen verwijzen er met een 301 naar door.
De snelle weergave van productlijsten blijft een eenvoudig productvenster: toevoegen vanuit die weergave voegt het pack toe in zijn standaardconfiguratie.
Eén regel voor het pack in de winkelwagen
Met de instelling “Pack in de winkelwagen” op “Eén regel voor het pack” komt het pack als één regel in de winkelwagen, onder de packnaam, met de inhoud eronder: “1 x T-shirt (Maat: S, Kleur: Wit)”. Twee verschillende selecties geven twee regels, hetzelfde pack twee keer toegevoegd met dezelfde selectie verhoogt de hoeveelheid van de regel.
De prijs van de regel is de som van de productprijzen, berekend met het btw-tarief van elk product: de totalen excl. btw, incl. btw en btw van winkelwagen en bestelling kloppen exact. Op de factuur toont de packregel zijn basisprijs en korting, en de btw wordt per tarief uitgesplitst. De inhoud van het pack verschijnt ook in de checkout, het besteldetail, de e-mails en op de factuur, en de kaart “Packs in deze bestelling” in de back-office toont de te verzamelen producten en varianten.
De voorraad van elk product wordt bij de bestelling afgeboekt, teruggeboekt als de bestelling naar “Geannuleerd” of “Betalingsfout” gaat, en opnieuw afgeboekt als ze weer wordt geactiveerd.
Gedeeltelijke retouren met terugboeking in voorraad boeken alleen het etalageproduct terug. Je boekhoudexports zien één DFPACK-referentie met meerdere btw-tarieven op dezelfde regel: vereist je boekhouding één regel per tarief, houd dan de modus “Eén regel per product” aan.
Multistore en meertalig
Elk pack is gekoppeld aan de winkels van de aanmaakcontext en kan winkel per winkel worden beheerd. De velden Naam, URL-alias, Beschrijving en Badge zijn vertaald in de geïnstalleerde talen. De front volgt de taal van de klant, ook in de alias van de packpagina.
De weergave aan uw thema aanpassen
Drie templates zijn overschrijfbaar. Kopieer ze van /modules/dfpackpro/views/templates/ naar /themes/uw-thema/modules/dfpackpro/views/templates/ met behoud van de submappen.
hook/product_packs.tpl: het cross-sell-blok van de productpagina’sfront/pack.tpl: de packpaginahook/cart_line_badge.tpl: de packbadge in de winkelwagen
De CSS is geïsoleerd onder het voorvoegsel dfpackpro en de accentkleur wordt gedragen door de CSS-variabele --dfpackpro-accent. Richt u voor een kleine aanpassing op de classes vanuit het stylesheet van uw thema in plaats van views/css/front.css te wijzigen, dat bij een update zou worden overschreven.
Probleemoplossing
Het blok verschijnt niet op de productpagina
- Controleer of het pack actief is en of de datum van vandaag binnen de geldigheidsperiode valt.
- Controleer of het bekeken product daadwerkelijk tot de onderdelen van het pack behoort.
- Controleer de instelling Packblok actief en de gekozen positie in de configuratie.
- Leeg de Smarty-cache en de cache van uw server.
Het pack wordt als niet beschikbaar getoond
De beschikbaarheid is het minimum van de voorraden van de vereiste onderdelen, gedeeld door hun hoeveelheid in het pack. Eén enkel uitverkocht onderdeel zonder toestemming voor bestellen zonder voorraad volstaat om het pack onbeschikbaar te maken. Uitgevinkte optionele onderdelen tellen niet mee.
De winkelwagenbadge verschijnt op de verkeerde plek
De badge wordt door het thema in de actiekolom gerenderd en daarna via JavaScript naar het informatieblok van het product verplaatst. Op een sterk aangepast thema zonder de standaardcontainers blijft de badge op zijn oorspronkelijke positie. Overschrijf cart_line_badge.tpl om hem in uw structuur te integreren.
De packprijs wordt op te veel eenheden toegepast
Dit geval wordt gedekt door de gewogen gemiddelde prijs: controleer de op de regel getoonde eenheidsprijs, die moet tussen de packprijs en de normale prijs liggen zodra de hoeveelheid die van het pack overschrijdt. Is dat niet het geval, leeg dan de cache en wijzig de hoeveelheid om een herberekening te activeren.
De packpagina geeft een 404 terug
Controleer of het pack actief is en binnen zijn geldigheidsperiode valt. Na een aliaswijziging redirect het oude adres met een 301 naar het nieuwe zolang het pack-ID correct is.
Deïnstallatie
Het deïnstalleren verwijdert de zes tabellen van de module, haar configuratiesleutels en het tabblad in het menu Catalogus. Geplaatste bestellingen behouden hun regels en hun prijzen, uw boekhoudkundige geschiedenis wordt niet gewijzigd.