Gewinnspiel-Modul für PrestaShop 8 und 9: Dokumentation
Ein Gewinnspiel mit Teilnahme per Kauf oder Formular, Empfehlungen, überprüfbarer Ziehung und Gewinnanforderung installieren, einrichten und durchführen.
Überblick
Das Modul dfcontest ergänzt Ihren PrestaShop-8- oder -9-Shop um Gewinnspiele. Kunden nehmen automatisch mit einer Bestellung teil oder kostenlos über ein Formular. Die Ziehung ist überprüfbar: Jeder Besucher kann die Berechnung wiederholen und erhält dieselben Gewinner. Das Modul erzeugt die Teilnahmebedingungen, benachrichtigt die Gewinner per E-Mail und erfasst ihre Lieferadresse.
Installation
- Öffnen Sie im Backoffice Module > Modulmanager und klicken Sie auf Modul hochladen.
- Laden Sie die Datei
dfcontest-x.y.z.ziphoch und klicken Sie auf Installieren. - Das Menü Kunden > Gewinnspiele erscheint. Die allgemeinen Einstellungen finden Sie auf der Konfigurationsseite des Moduls.
Für ein Update laden Sie einfach die neue Version hoch: Die Update-Skripte ergänzen fehlende Spalten und Einstellungen, ohne Ihre Gewinnspiele oder Teilnahmen zu verändern.
Modulkonfiguration
Veranstalter
Geben Sie Firmenname, Firmensitz, Registernummer (Handelsregister, SIRET, CIF, KvK…) und die Kontakt-E-Mail für Teilnehmer an. Diese Angaben fließen in die erzeugten Teilnahmebedingungen und die E-Mails ein.
Anzeige
- Gewinnernamen auf öffentlichen Seiten: nur Initialen (M. M.) oder Vorname und Initiale (Max M.).
- Gewinnspiel auf den Seiten teilnahmeberechtigter Produkte anzeigen und erhaltene Teilnahmen im Warenkorb anzeigen, mit dem Betrag, der bis zur nächsten Teilnahme fehlt.
- Akzentfarbe: Farbe von Countdown, Kästen und Rahmen. Leer lassen für das Standardgrün; Schaltflächen behalten die Farben Ihres Themes.
- Teilnahmebestätigung per E-Mail: Teilnahmecode und Link zum Teilen, versendet sobald eine Formular-Teilnahme gültig ist.
- Laufendes Gewinnspiel auf der Startseite hervorheben (Hook
displayHome).
Betrugsschutz
Die Option Wegwerf-E-Mail-Adressen ablehnen sperrt die wichtigsten Dienste für temporäre E-Mail-Adressen (Yopmail, Mailinator, 10 Minute Mail, Guerrilla Mail und weitere). Das Feld Weitere blockierte Domains nimmt eine Domain pro Zeile auf; Subdomains werden ebenfalls blockiert.
Automatische Aufgaben (Cron)
Die Konfigurationsseite zeigt eine signierte Cron-URL. Sie wird nur für den Autopilot benötigt (siehe unten). Rufen Sie sie alle 5 bis 15 Minuten auf, zum Beispiel:
*/10 * * * * curl -s "https://ihr-shop.de/module/dfcontest/cron?token=IHR_TOKEN" > /dev/null
Das Datum des letzten Laufs wird unter der URL angezeigt.
Ein Gewinnspiel anlegen
Öffnen Sie Kunden > Gewinnspiele und dann Neues Gewinnspiel. Das Formular ist in Registerkarten unterteilt.
Allgemein
- Name, sprechende URL, Beschreibung und Gewinn (beschreiben Sie jeden Gewinn mit seinem Handelswert: Dieser Text wird in die Teilnahmebedingungen übernommen).
- Bild: JPG, PNG oder WebP, maximal 4 MB, empfohlene Breite 1600 px.
- Beginn, Ende und angekündigtes Ziehungsdatum.
- Auf der Startseite hervorheben: Laufen mehrere Gewinnspiele, wird das zuerst endende angezeigt.
So nehmen Sie teil
Aktivieren Sie die Teilnahme per Kauf, per Formular oder beides. Die maximale Anzahl an Teilnahmen je Teilnehmer zählt Käufe, Formular und Empfehlungsboni zusammen, je E-Mail-Adresse.
Teilnahmen per Kauf
- 1 Teilnahme je Bestellung oder 1 Teilnahme je Betragsstufe (inkl. MwSt., in der Standardwährung).
- Mindestbestellwert und maximale Teilnahmen je Bestellung.
- IDs der teilnahmeberechtigten Produkte und teilnahmeberechtigte Kategorien: Wenn gesetzt, zählt nur der Betrag dieser Produkte, Rabatte werden anteilig verteilt. Leer lassen für den gesamten Katalog.
Eine Teilnahme entsteht, wenn die Bestellung im Aktionszeitraum auf einen bezahlten Status wechselt. Sie wird entfernt, wenn die Bestellung storniert, erstattet oder mit Zahlungsfehler markiert wird, solange die Teilnahmen nicht versiegelt sind. Eine auf mehrere Sendungen aufgeteilte Bestellung zählt als eine Bestellung.
Teilnahmen per Formular
- Kundenkonto erforderlich: beschränkt das Formular auf angemeldete Kunden.
- Bestätigung per E-Mail (empfohlen): Gäste erhalten einen Link, und ihre Teilnahme zählt erst nach der Bestätigung.
- Telefonnummer: ausgeblendet, optional oder Pflicht.
- Frage: freie Frage, deren Antwort gespeichert und exportiert wird.
- Kontrollkästchen für Newsletter-Anmeldung: standardmäßig nicht angehakt.
- Bonus-Teilnahmen je eingeladenem Freund und maximale Bonus-Teilnahmen je Teilnehmer: aktiviert die Empfehlungen (0 deaktiviert sie).
Ziehung
- Anzahl der Gewinner und Anzahl der Ersatzgewinner (nach den Gewinnern der Reihe nach gezogen).
- Ein Gewinn pro Person: Ein zum zweiten Mal gezogener Teilnehmer wird übersprungen.
- Autopilot: Versiegelung am Enddatum, Ziehung am angekündigten Datum, Gewinner-E-Mails (Cron-URL erforderlich).
- Gewinner ersetzen, die nicht rechtzeitig anfordern: Nach Ablauf der Frist wird der Gewinner als verzichtet markiert und der nächste Ersatzgewinner erhält die E-Mail (Cron-URL erforderlich).
- Frist zur Anforderung des Gewinns in Tagen.
Der Fingerabdruck der Ziehung wird beim ersten Speichern des Gewinnspiels erzeugt und kann danach nicht mehr geändert werden. Nach der Versiegelung sind Daten, Teilnahmeeinstellungen und Anzahl der Gewinner gesperrt.
Teilnahmebedingungen
Bleibt das Feld leer, werden Teilnahmebedingungen in 9 Artikeln aus den Einstellungen des Gewinnspiels und den Veranstalterangaben erzeugt. Sie können einen eigenen Text mit den Variablen {organizer}, {contest_name}, {date_start}, {date_end}, {draw_date}, {nb_winners}, {prize}, {claim_days}, {verify_url}, {commitment} und den weiteren in der Registerkarte aufgeführten verfassen.
Die erzeugten Teilnahmebedingungen sind eine Vorlage. Lassen Sie sie nach dem Recht jedes Landes prüfen, in dem das Gewinnspiel angeboten wird, insbesondere hinsichtlich einer Pflicht zur kostenlosen Teilnahme.
Im Shop
- /contests: Liste der laufenden, kommenden und beendeten Gewinnspiele.
- Gewinnspielseite: Countdown, Gewinne, Teilnahmearten, Formular und nach der Teilnahme Teilnahmecode, Anzahl der Teilnahmen und Link zum Teilen. Nach der Ziehung: Gewinnerliste und ein Hinweis „Sie haben gewonnen“ für den betreffenden Besucher.
- /rules: druckbare Teilnahmebedingungen. /draw: Prüfseite.
- Produktseite und Warenkorb: Hinweis auf teilnahmeberechtigten Produkten und Fortschrittsanzeige.
- Bestellbestätigung: erhaltene Teilnahmen mit ihrem Code.
- Mein Konto > Meine Gewinnspiel-Teilnahmen: Verlauf, Status und Schaltfläche zur Gewinnanforderung für Gewinner.
- Widget: auf der Startseite oder überall mit
{widget name="dfcontest"}oder{widget name="dfcontest" id_contest=3}.
Ablauf der Ziehung
Das Dashboard des Gewinnspiels (Schaltfläche Ansehen in der Liste) zeigt die Ziehung in 4 Schritten.
- Fingerabdruck veröffentlicht: Der SHA-256-Fingerabdruck des geheimen Schlüssels ist seit dem Anlegen des Gewinnspiels öffentlich.
- Teilnahmen versiegeln: nach dem Enddatum verfügbar. Die Liste der gültigen Teilnahmen wird eingefroren und ihr Fingerabdruck veröffentlicht. Im selben Moment legt sich das Modul auf eine zukünftige Runde von drand fest, dem öffentlichen Zufallswert der League of Entropy, der etwa zwei Minuten später oder nach dem angekündigten Ziehungsdatum veröffentlicht wird.
- Ziehung durchführen: Sobald der Wert der Runde veröffentlicht ist, ruft das Modul ihn ab und zieht die Gewinner und danach die Ersatzgewinner. Erreicht Ihr Server drand nicht, öffnen Sie den angezeigten drand-Link, kopieren den Wert
randomnessund fügen ihn in das vorgesehene Feld ein. - Gewinner benachrichtigen: Jeder Gewinner erhält eine E-Mail in der Sprache seiner Teilnahme, mit einem Link, um den Gewinn anzunehmen und vor Fristablauf seine Adresse anzugeben.
Gewinnübergabe verfolgen
Die Gewinnertabelle zeigt für jeden: angefordert (mit Lieferadresse), wartet auf Antwort oder Frist abgelaufen. Die Schaltfläche Erneut senden versendet die E-Mail noch einmal und startet die Frist neu. Als verzichtet markieren entzieht dem Gewinner den Gewinn und gibt ihn an den ersten verfügbaren Ersatzgewinner; senden Sie danach die E-Mails erneut, um ihn zu benachrichtigen. Fordert ein Gewinner seinen Gewinn an, erhält die Kontakt-E-Mail des Veranstalters seine Angaben.
Prüfseite
Die Seite /draw veröffentlicht den Fingerabdruck des Schlüssels, den Fingerabdruck der Liste, die drand-Runde und danach den Schlüssel, den öffentlichen Wert, den Seed und die Gewinner. Ein Teilnehmer kann dort seinen Code in der versiegelten Liste suchen und die Prüfung in seinem Browser starten, die jeden Schritt kontrolliert, ohne etwas an den Shop zu senden. Die JSON-Nachweisdatei lässt sich von der Seite und aus dem Dashboard herunterladen.
Autopilot
Bei einem Gewinnspiel mit der Option Autopilot führt jeder Cron-Lauf Folgendes aus:
- er versiegelt die Teilnahmen, sobald das Enddatum überschritten ist;
- er führt die Ziehung durch, wenn das angekündigte Datum erreicht und der drand-Wert veröffentlicht ist, und benachrichtigt danach die Gewinner;
- ist die Ersatzoption aktiv, markiert er Gewinner als verzichtet, deren Frist ohne Anforderung abgelaufen ist, und benachrichtigt den nächsten Ersatzgewinner.
Auf Gewinnspiele ohne Autopilot hat der Cron keine Wirkung. Er kann beliebig oft laufen.
Exporte und personenbezogene Daten
- Gewinner exportieren (CSV): Rang, Code, Kontaktdaten, Quelle, gezogenes Los, Antwort, Benachrichtigungsdatum, Anforderungsstatus und Lieferadresse.
- Teilnahmen exportieren (CSV): alle Teilnahmen mit Status, Quelle und Newsletter-Einwilligung.
- Mit dem offiziellen Modul psgdpr anonymisiert das Löschen eines Kunden seine Teilnahmen und zieht jene aus nicht versiegelten Gewinnspielen zurück; der DSGVO-Export enthält seine Teilnahmen und seine Gewinnanforderung.
Fehlerbehebung
Eine bezahlte Bestellung hat keine Teilnahme erzeugt
PrestaShop überspringt die Hooks eines Moduls, wenn das Profil des Mitarbeiters, der den Status ändert, dieses Modul nicht sehen darf. Im Dashboard des Gewinnspiels geht die Schaltfläche Bestellungen prüfen die bezahlten Bestellungen des Zeitraums durch und legt fehlende Teilnahmen an.
Ein Gast erhält die Bestätigungs-E-Mail nicht
Auf der Gewinnspielseite erscheint für eine ausstehende Teilnahme die Schaltfläche Link erneut senden (höchstens eine E-Mail alle zwei Minuten). Prüfen Sie auch die E-Mail-Einstellungen des Shops.
Die Ziehung startet nicht
Der Wert der drand-Runde wird erst zu der im Dashboard angezeigten Uhrzeit veröffentlicht. Bleibt drand danach vom Server aus unerreichbar, fügen Sie den vom drand-Link kopierten Wert randomness ein.
Der Cron tut nichts
Prüfen Sie, ob das Gewinnspiel die Option Autopilot hat und der Shop nicht im Wartungsmodus ist, der auch die Cron-URL sperrt. Im Multishop rufen Sie die Cron-URL jedes Shops auf.