PS PrestaShop Beginner

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.

Bijgewerkt Moduleversie 1.0.0

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

  1. Download het bestand dfsavecart.zip vanuit uw DataFirefly-account.
  2. Ga in de PrestaShop-backoffice naar Modules > Modulebeheer.
  3. Klik op Een module uploaden en kies de ZIP.
  4. PrestaShop installeert de module automatisch: de tabel ps_df_savecart wordt aangemaakt en de hooks worden geregistreerd.
  5. 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 (hook displayShoppingCart) 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

  1. De klant legt producten in zijn winkelwagen en opent de winkelwagenpagina.
  2. Hij ziet het blok « Bewaar deze winkelwagen voor later » met een e-mailveld (vooraf ingevuld als hij is ingelogd).
  3. Hij vult zijn e-mailadres in, vinkt de toestemming aan indien gevraagd en klikt op De link versturen.
  4. Hij ontvangt een e-mail met een overzicht van de winkelwagen (producten, aantallen, geschat totaal), de vervaldatum en een knop Mijn winkelwagen herstellen.
  5. 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 (kolom email).

Er zijn drie mogelijkheden, van de eenvoudigste naar de meest geautomatiseerde:

  1. Handmatige knop: op de configuratiepagina van de module, « De verlopen vermeldingen opruimen ».
  2. Module CronJobs: installeer de gratis CronJobs-module van PrestaShop; de hook actionCronJob van de module wordt dan automatisch aangeroepen en start het opruimen.
  3. 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 displayShoppingCartFooter niet. 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.

Was deze pagina nuttig?

Loopt u nog vast? Neem contact op met support