Alles wat u wilt weten voordat u installeert.
Een gedetailleerde blik op hoe Gratis Cadeau boven een Winkelwagendrempel: PrestaShop 8 & 9 werkt, waarom we het zo gebouwd hebben en de gedachte achter de bovenstaande functies.
De best meetbare hefboom op de gemiddelde bestelwaarde
In een webshop bepalen twee variabelen de omzet: het aantal bestellingen en de gemiddelde bestelwaarde. Een nieuwe bestelling binnenhalen is duur geworden (advertenties, SEO, retargeting). De bestelling van een bezoeker die toch al op het punt staat te kopen wat hoger krijgen kost daarentegen bijna niets: dat is een upsell op verkeer waarvoor u al hebt betaald. Een cadeau bij een winkelwagendrempel is daarvoor een van de doeltreffendste mechanismen: de bezoeker legt uit eigen beweging nog een paar euro bij om de actie niet mis te lopen. Op voorwaarde dat het mechanisme zichtbaar is, in cijfers wordt uitgedrukt en meteen werkt. Precies dat doet dffreegift.
Het voortgangsblok: de psychologie tot op de cent
Op de winkelwagenpagina toont de module doorlopend een eigen balk met de afbeelding van het cadeauproduct, de naam ervan, en een bericht dat de resterende afstand tot op de cent benoemt. Een gekleurde voortgangsbalk gaat geleidelijk van grijsoranje naar groen naarmate de drempel dichterbij komt. Zodra die wordt gehaald, springt de balk op groen met de melding dat het cadeau is toegevoegd, en bevestigt een pulsanimatie het resultaat. Die opbouw in real time is wat een gewone voorwaardelijke promotie tot een gedragshefboom maakt: de bezoeker ziet de meter vollopen, rekent in gedachten uit wat het hem kost, en gaat overstag.
Onder de motorkap: het native PrestaShop-mechanisme, netjes
De meeste cadeaumodules op de markt sleutelen rechtstreeks aan de productprijzen via de hook actionProductPriceCalculation, maken winkelwagenregels aan met een prijs die op nul is gezet, of voegen tijdelijke SpecificPrice-regels toe. Die aanpak breekt later de compatibiliteit met andere promotiemodules, levert ongerijmdheden op in boekhoudkundige exports en maakt debuggen lastig. dffreegift doet het omgekeerde: bij de installatie maakt hij een gewone CartRule aan (zichtbaar in Catalogus, Kortingen, Winkelwagenregels) met een eigen code en een gift_product op nul. Bij elke keer dat de winkelwagen wordt opgeslagen stemt de module gift_product en gift_product_attribute af op uw instellingen, en koppelt hij de regel aan de winkelwagen of maakt hij die los via de native methoden Cart::addCartRule en Cart::removeCartRule. PrestaShop doet daarna de rest: de cadeauregel invoegen (gift = 1, price = 0), de winkelwagen tonen, de totalen berekenen, omzetten naar een bestelling en de historische momentopname bewaren. Geen enkele ingreep op de prijzen en geen invasieve injectie, en dus native compatibiliteit met uw andere promotiemechanismen.
Drie synchronisatiemomenten, plus zelfherstel
De hoofdlogica draait op de hook actionCartSave, die PrestaShop aanroept telkens wanneer de winkelwagen wordt opgeslagen, dus bij elke toevoeging, wijziging of verwijdering van een product, maar ook bij het inloggen van een klant (het samenvoegen van winkelwagens) en bij bepaalde acties in de backoffice. Een statische vlag tegen recursie voorkomt dat de wijziging die de module zelf doorvoert de hook in een lus opnieuw afvuurt. Daarnaast bewaakt de hook actionObjectCartRuleDeleteBefore het handmatig verwijderen van onze CartRule vanuit de backoffice: haalt een beheerder de regel per ongeluk weg, dan wordt de configuratie teruggezet en maakt de volgende synchronisatie een schone nieuwe regel aan. En bij elke keer dat u de configuratie opslaat, stemt de module gift_product en gift_product_attribute opnieuw af op de bestaande regel. U hoeft dus nooit met de hand aan de regel in het kortingenscherm te komen.
Configuratie: drempel, btw, verzending, voorraad, groepen
Het scherm Modules, DataFirefly Free Gift, Configureren bundelt alles. Eén hoofdschakelaar om het geheel aan of uit te zetten. Het ID van het cadeauproduct (met de hand ingevuld, waarna de naam na het opslaan als hulptekst verschijnt). Een keuzelijst met de combinaties van het product (die zich vult nadat u het product-ID eerst hebt opgeslagen, want dan leest de module de beschikbare varianten uit). Het drempelbedrag, met twee bijbehorende schakelaars: berekening inclusief btw (anders exclusief) en verzendkosten meetellen (anders alleen de producten). Een schakelaar om de voorraad van het cadeau te controleren, die het automatisch toevoegen opschort als het product niet leverbaar is, met respect voor de algemene PrestaShop-instelling voor bestellen zonder voorraad. Een raster met aanvinkvakjes om de actie tot bepaalde klantengroepen te beperken: vinkt u niets aan, dan komt iedereen in aanmerking, ook niet-ingelogde bezoekers. En twee losse schakelaars voor de weergave van het bericht en van de voortgangsbalk.
Typische gebruikssituaties
Een cosmeticawinkel met een comfortabele marge: een parfummonster weggeven boven 40 euro inclusief btw, om winkelwagens van 28 tot 35 euro naar 40 te tillen. Mode en accessoires: een tasje cadeau vanaf 80 euro inclusief btw, berekend zonder verzendkosten, om eerste aankopen te belonen. Zakelijke uitrusting: een sleutelhanger of USB-stick boven 200 euro exclusief btw, beperkt tot de groep Zakelijk. Een marktplaats voor voeding: een gratis proefproduct vanaf 50 euro inclusief btw en inclusief verzendkosten, om de kosten van gratis levering op te vangen. In al die gevallen is het mechanisme hetzelfde: een duidelijke drempel, een aantrekkelijk cadeau, zichtbare voortgang en automatisch toevoegen. dffreegift regelt dat zonder handwerk.
Compatibiliteit met PrestaShop 8 en 9, getest en niet beloofd
De module gebruikt uitsluitend API's die over de versies heen stabiel zijn: Module, Hook, Configuration, CartRule, Cart, HelperForm en Smarty. Er wordt geen gebruikgemaakt van de Symfony-producttabbladen van PrestaShop 9 (die bij veel externe modules voor incompatibiliteiten hebben gezorgd), er wordt niets in de one-page checkout geïnjecteerd, en er is geen afhankelijkheid van klassen die in PS 9 zijn afgeschaft. Het beheerscherm gebruikt HelperForm, een component dat in PS 8 en PS 9 identiek en stabiel is. Aan de storefrontzijde is de hook displayShoppingCart in beide versies aanwezig en werkend, en de helper getCurrentLocale (voor de prijsopmaak) bestaat sinds PrestaShop 1.7.6. U installeert de module vandaag op PS 8 en migreert naar PS 9 wanneer u wilt, zonder aan de module te hoeven raken.
Multishop, meertalig, leesbare code
De module werkt met de multishop-configuratie van PrestaShop op de standaard winkelcontext. De berichten in de storefront zijn te vertalen via het gewone PrestaShop-mechanisme, met FR, EN, ES en DE al ingevuld. Nederlands zit niet in de meegeleverde vertalingen, maar u voert die teksten zelf in vanuit de backoffice. De broncode wordt leesbaar geleverd (PHP niet versleuteld, volgens de gebruikelijke PrestaShop-conventies), met Franstalig commentaar boven elke belangrijke methode. De hoofdlogica staat in een bestand dffreegift.php van minder dan 700 regels, dus in minder dan een uur na te lopen. U kunt hem aanpassen, uitbreiden via uw eigen hooks, of forken voor een specifieke behoefte.
NickelAutomatisch vertaald