dfsavecart: winkelwagen bewaren via een magic link
Installatie, configuratie en gebruik van de module om de winkelwagen via een magic link te bewaren, voor PrestaShop 8 en 9.
Overzicht
dfsavecart voegt de functie « Bewaren voor later » toe aan de winkelwagenpagina van uw PrestaShop 8- of 9-winkel. De bezoeker, ingelogd of als gast, vult zijn e-mailadres in en krijgt een beveiligde link (een « magic link ») die zijn winkelwagen exact herstelt, met dezelfde producten en dezelfde aantallen, op elk toestel en op elk moment binnen de ingestelde geldigheidsduur.
De module is niet opdringerig: hij raakt het bestelproces, het afrekenen en de andere modules niet aan. Hij werkt met het native e-mailsysteem van PrestaShop en dus met uw bestaande SMTP.
Vereisten
- PrestaShop 8.0.x tot 9.x
- PHP 8.1 of hoger
- MySQL 5.7+ of MariaDB 10.3+
- Werkende e-mailverzending (Geavanceerde parameters > E-mail: test de verzending vóór u de module installeert)
Installatie
- Download het bestand
dfsavecart.zipvanuit uw DataFirefly-account. - Ga in de PrestaShop-backoffice naar Modules > Modulebeheer.
- Klik op Een module uploaden en kies de ZIP.
- PrestaShop installeert de module automatisch: de tabel
ps_df_savecartwordt aangemaakt en de hooks worden geregistreerd. - Klik op Configureren om bij de instellingen te komen.
Er wordt geen enkele class- of controller-override geïnstalleerd: het verwijderen verloopt netjes en laat niets achter (de tabel en de instellingen worden gewist).
Configuratie
Alle instellingen staan op één pagina: Modules > Modulebeheer > dfsavecart > Configureren.
Hoofdinstellingen
- De module inschakelen: hoofdschakelaar. Staat die uit, dan verdwijnt het blok aan de frontzijde zonder dat u de module hoeft te verwijderen.
- Positie van de knop: Onder aan de winkelwagen (aanbevolen, hook
displayShoppingCartFooter), In de winkelwagen (hookdisplayShoppingCart) of Beide. De keuze hangt van uw thema af: controleer na een wijziging hoe de winkelwagenpagina eruitziet. - Geldigheidsduur van de link: 1 tot 365 dagen, standaard 30. Daarna verloopt de link en wordt de vermelding opgeruimd.
Beveiliging en antispam
- Limiet per e-mailadres per dag: het maximale aantal verzendingen naar hetzelfde adres binnen 24 voortschrijdende uren (standaard 10). Zet 0 om dit uit te schakelen. De teller berust op een gezouten hash van het e-mailadres: het adres wordt daarvoor niet in leesbare vorm bewaard.
- Link voor eenmalig gebruik: staat dit aan, dan wordt de link na het eerste herstel ongeldig. Handig voor vertrouwelijke winkelwagens (B2B, offertes).
Gedrag bij het herstellen
- De huidige winkelwagen legen vóór het herstel: standaard aan. Staat dit uit, dan komen de producten uit de link bij de lopende winkelwagen (samentellen).
AVG en e-mail
- AVG-toestemming vragen: toont een verplicht selectievakje vóór de verzending (standaard aan, aanbevolen).
- Blinde kopie naar de handelaar sturen: zet het contactadres van de winkel bij elke verzending in bcc, voor interne opvolging.
- Onderwerp van de e-mail (per taal): aan te passen voor elke actieve taal van de winkel. Beschikbare variabelen:
{shop_name}en{firstname}.
Werking aan klantzijde
- De klant legt producten in zijn winkelwagen en opent de winkelwagenpagina.
- Hij ziet het blok « Bewaar deze winkelwagen voor later » met een e-mailveld (vooraf ingevuld als hij is ingelogd).
- Hij vult zijn e-mailadres in, vinkt de toestemming aan indien gevraagd en klikt op De link versturen.
- Hij ontvangt een e-mail met een overzicht van de winkelwagen (producten, aantallen, geschat totaal), de vervaldatum en een knop Mijn winkelwagen herstellen.
- Een klik op die knop herstelt de exacte winkelwagen en leidt naar de winkelwagenpagina, met een bevestigingsmelding.
Bijzondere gevallen bij het herstellen
- Uitgeschakeld of verwijderd product: de regel wordt overgeslagen en de klant krijgt een melding met de niet-beschikbare producten.
- Onvoldoende voorraad: de hoeveelheid wordt tot het beschikbare maximum teruggebracht, met een melding over die aanpassing.
- Verlopen of al gebruikte link (bij eenmalig gebruik): er verschijnt een sobere foutpagina, met links naar de huidige winkelwagen en de startpagina.
- Taal en valuta: die van de oorspronkelijke winkelwagen worden hersteld.
E-mails
De HTML- en tekstsjablonen worden geleverd in het Frans, Engels, Spaans en Duits, in modules/dfsavecart/mails/{iso}/savecart.html en savecart.txt. De gebruikte taal is die van de winkelwagen op het moment van bewaren.
Beschikbare variabelen in de sjablonen: {firstname}, {shop_name}, {restore_link}, {cart_items_html}, {cart_items_txt}, {cart_total} en {expiry_date}.
Wilt u de sjablonen blijvend aanpassen, kopieer ze dan naar de mailmap van uw thema in plaats van die van de module te wijzigen: die laatste worden bij een update overschreven.
Beveiliging
- Token van 256 bits: gegenereerd met
random_bytes(32), de cryptografisch veilige generator van PHP. Dat geeft 64 hexadecimale tekens in de URL. - Opslag als hash: alleen de SHA-256-afdruk van het token staat in de database. Raakt de database gecompromitteerd, dan valt geen enkele link te reconstrueren.
- CSRF: het AJAX-endpoint voor het bewaren controleert het sessietoken van PrestaShop.
- Strikte validatie: het formaat van het token wordt aan serverzijde gecontroleerd (
[a-f0-9]{64}) vóór elke databasequery.
AVG
- Instelbare uitdrukkelijke toestemming vóór het versturen van de e-mail.
- Voor de antispamlimiet wordt het e-mailadres niet leesbaar bewaard: er wordt alleen een gezouten hash gebruikt (met de geheime sleutel van de winkel).
- Verlopen vermeldingen worden automatisch verwijderd (opruimen), zie het volgende onderdeel.
- Er gaat geen enkel gegeven naar een externe dienst: alles blijft in uw PrestaShop-database.
- Vraagt een klant om verwijdering, wis dan zijn regels in de tabel
ps_df_savecart(kolomemail).
Verlopen links opruimen
Er zijn drie mogelijkheden, van de eenvoudigste naar de meest geautomatiseerde:
- Handmatige knop: op de configuratiepagina van de module, « De verlopen vermeldingen opruimen ».
- Module CronJobs: installeer de gratis CronJobs-module van PrestaShop; de hook
actionCronJobvan de module wordt dan automatisch aangeroepen en start het opruimen. - Crontab van het systeem: plan een regelmatige aanroep van de cron van uw winkel, volgens uw serverconfiguratie.
Statistieken
De configuratiepagina toont vier tellers in real time: totaal bewaard, actief (niet verlopen), verlopen (wachtend op opruiming) en hersteld (links die minstens één keer zijn gebruikt). De verhouding hersteld op totaal geeft u het conversiepercentage van de functie.
Multistore
De module werkt in multistore: elke bewaring onthoudt de identificatie van de oorspronkelijke winkel, die bij het herstellen wordt gebruikt. De configuratie verloopt via de standaard winkelcontext van PrestaShop.
Problemen oplossen
De e-mail komt niet aan
- Controleer de algemene e-mailverzending van de winkel: Geavanceerde parameters > E-mail > De verzending testen.
- Controleer de spammap van de ontvanger.
- Raadpleeg de logboeken: Geavanceerde parameters > Logboeken (de fouten van de module dragen het voorvoegsel
[dfsavecart]).
Het blok verschijnt niet op de winkelwagenpagina
- Controleer of de module in zijn configuratie is ingeschakeld.
- Controleer of de winkelwagen minstens één product bevat (bij een lege winkelwagen blijft het blok verborgen).
- Controleer de gekozen positie: sommige thema’s implementeren de hook
displayShoppingCartFooterniet. Schakel dan over op « In de winkelwagen » of « Beide ». - Leeg de cache: Geavanceerde parameters > Prestaties > Cache legen.
Melding « Ongeldig beveiligingstoken »
- De winkelwagenpagina heeft te lang opengestaan en de sessie is verlopen: ververs de pagina en probeer opnieuw.
Melding « Te veel aanvragen voor dit adres »
- De dagelijkse antispamlimiet voor dat e-mailadres is bereikt. Verhoog de limiet in de configuratie of wacht 24 uur.
Verwijderen
Bij het verwijderen worden de tabel ps_df_savecart (alle bewaarde winkelwagens gaan verloren) en alle configuratiesleutels gewist. Er blijft niets achter in de database en niets in de bestanden.