Staffelkortingen & promobadges: volledige gids
De staffelkortingen en promobadges configureren op PrestaShop 8 en 9: aanbiedingstypes, targeting, personalisatie van de badge en berekening van de korting in de winkelwagen.
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
dfquantitydeal.ziperin. - Via FTP: pak het archief uit in de map
/modules/van uw winkel en installeer dan DataFirefly – Staffelkortingen & promobadges vanuit het modulebeheer. - Leeg de cache in Geavanceerde instellingen en dan Prestaties.
De installatie maakt acht tabellen aan met het voorvoegsel ps_df_quantity_deal, registreert zeven hooks en voegt het tabblad Staffelkortingen 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 aanbiedingen van toepassing zijn.
- Module inschakelen: schakelt de weergave van de badges en de kortingsberekening uit zonder te deïnstalleren.
- Badges op de lijsten: toont de badge op de miniaturen van de categoriepagina’s, de zoekresultaten en de productblokken.
- Badge op de productpagina: aparte schakelaar, om de badge desgewenst alleen in de lijsten te tonen.
- Aanbiedingstabel op de productpagina: somt de op het product toepasbare aanbiedingen op onder de knop voor het toevoegen aan de winkelwagen.
- Detail van de aanbiedingen in de winkelwagen: voegt onder de winkelwagensamenvatting het bedrag toe dat elke aanbieding oplevert.
- Kortingen incl. btw berekenen: ingeschakeld draagt de winkelwagenregel een bedrag inclusief btw. Uitgeschakeld is het bedrag exclusief btw en past PrestaShop de btw toe volgens uw regels.
- Label van de winkelwagenkorting: tekst op de kortingsregel van de winkelwagen en de bestelling. Standaard “Staffelkortingen”.
- Lettergrootte van de badge: in pixels, standaard 13.
Een aanbieding aanmaken
Open Catalogus en dan Staffelkortingen, en klik op Nieuwe aanbieding. Het formulier is verdeeld over drie tabbladen.
Tabblad Aanbieding
- Naam van de aanbieding: vertaald veld, gebruikt in de back-office lijst en in de aanbiedingstabel van de productpagina.
- Aanbiedingstype: de vijf hieronder beschreven mechanismen. Het formulier verbergt de overbodige velden afhankelijk van het gekozen type.
- Gekochte hoeveelheid (X) en Gratis hoeveelheid (Y): voor het type X gekocht + Y gratis, en alleen X voor de setprijs.
- Rang van het gekorte artikel (N): 2 voor “het 2e voor -25%”, 3 voor “het 3e voor -50%”.
- Kortingswaarde: percentage, kortingsbedrag of vaste prijs afhankelijk van het type. Het veldlabel verandert automatisch.
- Herhaalbare aanbieding: ingeschakeld wordt de aanbieding zo vaak toegepast als de hoeveelheid toelaat. Uitgeschakeld geldt ze maar één keer per winkelwagen.
- Groepering van de hoeveelheden: per product, per variant, of mix and match.
- Prioriteit: de laagste waarden komen eerst.
- Aanbieding inschakelen: equivalent van de activeringsknop in de lijst.
Tabblad Voorwaarden
- Bereik: hele catalogus, geselecteerde producten, geselecteerde categorieën of geselecteerde merken. Het bijbehorende selectieveld verschijnt volgens de keuze.
- Betrokken producten: typ minstens twee tekens om de zoekopdracht te starten. Ze doorzoekt de naam, de referentie en het ID. Klik op een resultaat om het aan de lijst toe te voegen.
- Betrokken categorieën: categorieboom met selectievakjes. Een product uit een van de aangevinkte categorieën activeert de aanbieding.
- Betrokken merken: lijst met fabrikanten van de winkel.
- Klantgroepen: laat alles uitgevinkt om de aanbieding op alle groepen toe te passen, bezoekers inbegrepen.
- Producten die al in de aanbieding zijn uitsluiten: producten met een specifieke prijs vallen buiten de berekening.
- Begindatum en Einddatum: laat leeg voor een permanente aanbieding. Een losse datum wordt aangevuld met 00:00:00 voor het begin en 23:59:59 voor het einde.
- Winkels: alleen zichtbaar als de multistore-modus actief is.
Tabblad Badge & weergave
- Badgetekst: vertaald veld. Laat leeg voor een automatische generatie op basis van de aanbiedingswaarden.
- Achtergrondkleur en Tekstkleur: kleurkiezers, standaard rood en wit.
- Vorm: vierkant, afgeronde hoeken, pil, schuin lint, ronde stip.
- Positie op de miniatuur: linksboven, rechtsboven, linksonder, rechtsonder, of inline weergave onder de prijs.
- Tonen op de lijsten, op de productpagina, in de aanbiedingstabel: drie schakelaars per aanbieding, als aanvulling op de globale instellingen.
- Beschrijving van de aanbieding: vertaalde rich text, getoond onder de verklarende zin in de aanbiedingstabel.
De vijf aanbiedingstypes
X gekocht + Y gratis
Het klassieke formaat van de 2+1, 3+1 of 4+2. De engine verdeelt de in aanmerking komende eenheden van de winkelwagen in sets van X plus Y. Voor elke volledige set zijn de Y goedkoopste eenheden gratis.
Voorbeeld: aanbieding 4+2, zes artikelen van 4,49 € in de winkelwagen. Eén volledige set, twee gratis eenheden, korting van 8,98 €. Met slechts vijf artikelen is geen enkele set volledig en is de korting nul.
Het N-de voor -X%
De engine verdeelt de eenheden in sets van N. In elke set krijgt de eenheid van rang N het kortingspercentage. Aangezien de eenheden op aflopende prijs zijn gesorteerd, is het gekorte artikel het goedkoopste van de set.
Voorbeeld: aanbieding “het 2e voor -25%”, vier artikelen van 20 €. Twee sets van twee, twee artikelen gekort met 5 €, totale korting van 10 €.
Het N-de voor -X €
Zelfde verdeling, maar de korting is een vast bedrag. Ze is begrensd op de artikelprijs: een korting van 30 € op een artikel van 8 € geeft 8 € korting, geen 30 €.
Het N-de voor een vaste prijs
Het artikel van rang N wordt teruggebracht naar de prijs die u vaststelt. De korting is het verschil. Voor “het 2e voor 1 €” op twee artikelen van 12 € is de korting 11 €.
Setprijs
Voor elke set van X eenheden wordt het totaal teruggebracht naar de prijs die u aankondigt. Bij een aanbieding 3 voor 10 € met zes artikelen van 5 € vormt de engine twee sets en past ze in totaal 10 € korting toe.
Welk artikel is gratis
De engine sorteert de in aanmerking komende eenheden op aflopende prijs en past dan het voordeel toe op de goedkoopste van elke set. Dat is de regel die de grootdistributie gebruikt en die de klant verwacht.
Bij een 3+1-set met artikelen van 20 €, 15 €, 10 € en 5 € is het gratis artikel dat van 5 €. De klant betaalt 45 € in plaats van 50 €.
Groepering van de hoeveelheden
- Per product: alle varianten van eenzelfde referentie tellen samen. Zes flessen van dezelfde douchegel activeren een 4+2-aanbieding, ook als het drie verschillende geuren zijn.
- Per variant: elke variant telt voor zichzelf. Er zijn zes eenheden van dezelfde geur nodig om dezelfde aanbieding te activeren.
- Mix and match: alle eenheden van de aan de aanbieding gekoppelde producten voeden dezelfde telling. Nuttig voor een 4+2 over een volledig assortiment.
Prioriteit en combinatie tussen aanbiedingen
De aanbiedingen worden geëvalueerd in volgorde van hun prioriteit, van de laagste naar de hoogste. Elke aanbieding verbruikt de eenheden die ze gebruikt, en de volgende aanbieding werkt op de rest. Eenzelfde eenheid wordt nooit twee keer gekort.
Voorbeeld: zeven artikelen in de winkelwagen, een 4+2-aanbieding op prioriteit 10. Zes eenheden worden door de set verbruikt, de zevende blijft beschikbaar voor een aanbieding op prioriteit 20 die hetzelfde product zou targeten.
Zet uw gulste aanbiedingen op een lage prioriteit als u wilt dat ze eerst worden toegepast. Bij gelijke prioriteit volgt de volgorde het ID van de aanbieding.
De badge
Tekstvariabelen
Het veld Badgetekst accepteert vijf variabelen, bij de weergave vervangen door de waarden van de aanbieding.
{x}: gekochte hoeveelheid{y}: gratis hoeveelheid{n}: rang van het gekorte artikel{value}: kortingswaarde, zonder overbodige nullen{price}: kortingswaarde geformatteerd als prijs, in de valuta van de klant
U kunt de tekst ook vast schrijven: “4+2 gratis”, “3+1 cadeau”, “het 2e voor -25%”. Het veld is vertaald, dus elke taal heeft haar eigen formulering.
Blijft het veld leeg, dan genereert de module een kort label op basis van het type en de waarden: 4+2 voor een aanbieding X gekocht Y gratis, -25% x2 voor een N-de met percentage.
Positie en integratie in de miniatuur
De badge wordt gerenderd in het prijsblok, via de hook displayProductPriceBlock. Een frontscript verplaatst hem daarna naar de container van de miniatuur om hem over de afbeelding te tonen. De plaatsing wordt herhaald na de Ajax-verversingen van de facetzoekfunctie, de paginering en de quick view.
De modus Inline (onder de prijs) schakelt deze verplaatsing uit en laat de badge in de flow, onder de prijs. Kies deze modus als uw thema een niet-standaard miniatuurstructuur gebruikt.
Berekening van de korting in de winkelwagen
Bij elke wijziging van de winkelwagen herberekent de engine het totaal van de kortingen en synchroniseert ze een privé-winkelwagenregel. Haar interne code begint met DFQD gevolgd door het winkelwagen-ID. De klant ziet maar één kortingsregel en hoeft geen enkele code in te voeren.
De regel wordt alleen bijgewerkt als het bedrag is veranderd, wat voorkomt dat ze bij elke paginalading opnieuw wordt aangemaakt. Valt het totaal terug op nul, dan wordt de regel van de winkelwagen losgekoppeld en verwijderd.
Bij het valideren van de bestelling wordt de regel uitgeschakeld en wordt haar einddatum in het verleden gezet zodat ze niet opnieuw kan worden gebruikt. Ze blijft aan de bestelling gekoppeld, dus zichtbaar in uw boekhoudexports en bruikbaar voor een creditnota.
Het kortingsbedrag kan het producttotaal van de winkelwagen niet overschrijden. PrestaShop begrenst in dat geval automatisch.
De weergave aan uw thema aanpassen
Drie templates zijn overschrijfbaar. Kopieer ze van /modules/dfquantitydeal/views/templates/hook/ naar /themes/uw-thema/modules/dfquantitydeal/views/templates/hook/.
badge.tpl: de badge zelfoffers.tpl: de aanbiedingstabel van de productpaginacart.tpl: de samenvatting onder de winkelwagen
De CSS is geïsoleerd onder het voorvoegsel dfqd. 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.
Multistore en meertalig
Elke aanbieding is gekoppeld aan de winkels die u in het tabblad Voorwaarden aanvinkt. Een op één winkel aangemaakte aanbieding verschijnt niet op de andere zolang ze er niet aan is gekoppeld.
De velden Naam, Badgetekst en Beschrijving zijn vertaald in de geïnstalleerde talen. De getoonde badge volgt de taal van de klant.
Probleemoplossing
De badge verschijnt niet
- Controleer of de module en de aanbieding actief zijn, en of de datum van vandaag binnen de geldigheidsperiode valt.
- Controleer het bereik: een product moet expliciet aan de aanbieding zijn gekoppeld, of tot een aangevinkte categorie of merk behoren.
- Controleer de weergaveschakelaars, in de globale instellingen en in het tabblad Badge van de aanbieding.
- Is de klantgroep beperkt, test dan met een account uit de juiste groep.
- Leeg de Smarty-cache en de cache van uw server.
De korting wordt niet op de winkelwagen toegepast
De hoeveelheid moet de drempel van de aanbieding bereiken volgens de gekozen groeperingsmodus. In de modus Per variant activeren zes eenheden verdeeld over drie varianten geen 4+2-aanbieding. Controleer ook of het product niet is uitgesloten door de optie op producten die al in de aanbieding zijn.
Twee aanbiedingen zitten elkaar in de weg
Dit gedrag is verwacht: een door de eerste aanbieding verbruikte eenheid valt buiten de berekening van de tweede. Wilt u dat een aanbieding vóór de andere gaat, verlaag dan haar prioriteit.
De badge verschijnt op de verkeerde plek
Sommige aangepaste thema’s gebruiken niet de standaard miniatuurstructuur. Zet de positie op Inline (onder de prijs), of overschrijf badge.tpl om de badge te plaatsen waar u wilt.
Deïnstallatie
Het deïnstalleren verwijdert de acht tabellen van de module, haar configuratiesleutels en het tabblad in het menu Catalogus. De winkelwagenregels die al aan geplaatste bestellingen zijn gekoppeld, blijven behouden om uw boekhoudkundige geschiedenis niet te wijzigen.