Moduł konkursów i losowań dla PrestaShop 8 i 9: dokumentacja
Instalacja, konfiguracja i prowadzenie konkursu z udziałem przez zakup lub formularz, poleceniami, weryfikowalnym losowaniem i odbiorem nagrody.
Wprowadzenie
Moduł dfcontest dodaje konkursy i losowania do sklepu PrestaShop 8 lub 9. Klienci biorą udział automatycznie przy zamówieniu albo bezpłatnie przez formularz. Losowanie jest weryfikowalne: każdy odwiedzający może powtórzyć obliczenie i otrzymać tych samych zwycięzców. Moduł generuje regulamin, wysyła e-maile do zwycięzców i zbiera ich adresy dostawy.
Instalacja
- W panelu administracyjnym otwórz Moduły > Menedżer modułów i kliknij Załaduj moduł.
- Prześlij plik
dfcontest-x.y.z.zip, a następnie kliknij Zainstaluj. - Pojawi się menu Klienci > Konkursy. Ustawienia ogólne znajdują się na stronie konfiguracji modułu.
Aby zaktualizować, wystarczy przesłać nową wersję: skrypty aktualizacji dodają brakujące kolumny i ustawienia, nie zmieniając konkursów ani zgłoszeń.
Konfiguracja modułu
Organizator
Podaj pełną nazwę firmy, adres siedziby, numer rejestrowy (KRS, NIP, SIRET, KvK…) i kontaktowy adres e-mail dla uczestników. Dane te trafiają do wygenerowanego regulaminu i e-maili.
Wyświetlanie
- Nazwiska zwycięzców na stronach publicznych: tylko inicjały (J. K.) albo imię i inicjał (Jan K.).
- Pokazuj konkurs na kartach produktów objętych konkursem i pokazuj uzyskane zgłoszenia w koszyku, wraz z kwotą brakującą do kolejnego zgłoszenia.
- Kolor akcentu: kolor odliczania, ramek i obramowań. Pozostaw puste dla domyślnej zieleni; przyciski zachowują kolory motywu.
- Potwierdzenie zgłoszenia e-mailem: kod zgłoszenia i link do udostępniania wysyłane, gdy zgłoszenie z formularza staje się ważne.
- Wyróżnij trwający konkurs na stronie głównej (hak
displayHome).
Ochrona przed nadużyciami
Opcja Odrzucaj jednorazowe adresy e-mail blokuje główne usługi tymczasowych adresów (Yopmail, Mailinator, 10 Minute Mail, Guerrilla Mail i inne). Pole Inne zablokowane domeny przyjmuje jedną domenę w wierszu; subdomeny też są blokowane.
Zadania automatyczne (cron)
Strona konfiguracji pokazuje podpisany adres URL crona. Jest potrzebny tylko dla autopilota (patrz niżej). Wywołuj go co 5 do 15 minut, na przykład:
*/10 * * * * curl -s "https://twoj-sklep.pl/module/dfcontest/cron?token=TWOJ_TOKEN" > /dev/null
Data ostatniego uruchomienia jest widoczna pod adresem URL.
Tworzenie konkursu
Otwórz Klienci > Konkursy, a następnie Nowy konkurs. Formularz jest podzielony na zakładki.
Ogólne
- Nazwa, przyjazny URL, opis i nagroda (opisz każdą nagrodę i jej wartość rynkową: ten tekst trafia do regulaminu).
- Obraz: JPG, PNG lub WebP, maksymalnie 4 MB, zalecana szerokość 1600 px.
- Początek, koniec i zapowiedziana data losowania.
- Wyróżnij na stronie głównej: jeśli trwa kilka konkursów, wyświetlany jest ten, który kończy się najwcześniej.
Jak wziąć udział
Włącz udział przez zakup, przez formularz lub oba sposoby. Maksymalna liczba zgłoszeń na uczestnika liczy łącznie zakupy, formularz i bonusy za polecenia, dla każdego adresu e-mail.
Zgłoszenia z zakupów
- 1 zgłoszenie za zamówienie lub 1 zgłoszenie za każdy próg kwoty (z VAT, w walucie domyślnej).
- Minimalna kwota zamówienia i maksymalna liczba zgłoszeń na zamówienie.
- ID produktów objętych konkursem i kategorie objęte konkursem: jeśli są ustawione, liczy się tylko kwota tych produktów, a rabaty są rozkładane proporcjonalnie. Pozostaw puste dla całego katalogu.
Zgłoszenie powstaje, gdy zamówienie przechodzi w status opłacony w czasie trwania konkursu. Jest usuwane, gdy zamówienie zostanie anulowane, zwrócone lub oznaczone błędem płatności, dopóki zgłoszenia nie są zapieczętowane. Zamówienie podzielone na kilka przesyłek liczy się jako jedno.
Zgłoszenia z formularza
- Wymagane konto klienta: formularz tylko dla zalogowanych klientów.
- Potwierdzenie e-mailem (zalecane): goście otrzymują link, a zgłoszenie liczy się dopiero po potwierdzeniu.
- Numer telefonu: ukryty, opcjonalny lub wymagany.
- Pytanie: dowolne pytanie, którego odpowiedź jest zapisywana i eksportowana.
- Pole zapisu do newslettera: domyślnie niezaznaczone.
- Zgłoszenia bonusowe za zaproszonego znajomego i maksymalna liczba zgłoszeń bonusowych na uczestnika: włączają polecenia (0 je wyłącza).
Losowanie
- Liczba zwycięzców i liczba zwycięzców rezerwowych (losowanych kolejno po zwycięzcach).
- Jedna nagroda na osobę: uczestnik wylosowany po raz drugi jest pomijany.
- Autopilot: zapieczętowanie w dniu zakończenia, losowanie w zapowiedzianym terminie, e-maile do zwycięzców (wymagany adres URL crona).
- Zastępuj zwycięzców, którzy nie odbiorą nagrody na czas: po upływie terminu zwycięzca jest oznaczany jako rezygnujący, a kolejna osoba rezerwowa otrzymuje e-mail (wymagany adres URL crona).
- Dni na odbiór nagrody.
Odcisk losowania powstaje przy pierwszym zapisaniu konkursu i nie może się później zmienić. Po zapieczętowaniu daty, ustawienia udziału i liczba zwycięzców są zablokowane.
Regulamin
Jeśli pole pozostanie puste, regulamin w 9 paragrafach jest generowany z ustawień konkursu i danych organizatora. Możesz wpisać własny tekst ze zmiennymi {organizer}, {contest_name}, {date_start}, {date_end}, {draw_date}, {nb_winners}, {prize}, {claim_days}, {verify_url}, {commitment} i pozostałymi wymienionymi w zakładce.
Wygenerowany regulamin jest szablonem. Zleć jego sprawdzenie pod kątem prawa każdego kraju, w którym konkurs jest dostępny. W Polsce loterie promocyjne wymagają zezwolenia, a konkurs oparty na losowaniu może zostać uznany za grę hazardową.
W sklepie
- /contests: lista trwających, nadchodzących i zakończonych konkursów.
- Strona konkursu: odliczanie, nagrody, sposoby udziału, formularz, a po zgłoszeniu kod zgłoszenia, liczba zgłoszeń i link do udostępniania. Po losowaniu: lista zwycięzców i komunikat „Wygrana” dla odwiedzającego, którego dotyczy.
- /rules: regulamin do wydruku. /draw: strona weryfikacji.
- Karta produktu i koszyk: informacja przy produktach objętych konkursem i komunikat o postępie.
- Potwierdzenie zamówienia: uzyskane zgłoszenia z kodem.
- Moje konto > Moje zgłoszenia w konkursach: historia, status i przycisk odbioru nagrody dla zwycięzców.
- Widżet: na stronie głównej lub w dowolnym miejscu przez
{widget name="dfcontest"}albo{widget name="dfcontest" id_contest=3}.
Przebieg losowania
Panel konkursu (przycisk Zobacz na liście) przedstawia losowanie w 4 krokach.
- Opublikowany odcisk: odcisk SHA-256 tajnego klucza jest publiczny od utworzenia konkursu.
- Zapieczętowanie zgłoszeń: dostępne po dacie zakończenia. Lista ważnych zgłoszeń zostaje zamrożona, a jej odcisk opublikowany. W tej samej chwili moduł zobowiązuje się do przyszłej rundy drand, publicznej losowości League of Entropy, publikowanej około dwie minuty później albo po zapowiedzianej dacie losowania.
- Przeprowadzenie losowania: gdy wartość rundy zostanie opublikowana, moduł ją pobiera i losuje zwycięzców, a potem osoby rezerwowe. Jeśli serwer nie może połączyć się z drand, otwórz wskazany link drand, skopiuj wartość
randomnessi wklej ją w przewidziane pole. - Powiadomienie zwycięzców: każdy zwycięzca otrzymuje e-mail w języku swojego zgłoszenia, z linkiem do przyjęcia nagrody i podania adresu przed upływem terminu.
Śledzenie wydawania nagród
Tabela zwycięzców pokazuje dla każdego: odebrana (z adresem dostawy), oczekuje na odpowiedź lub termin minął. Przycisk Wyślij ponownie ponownie wysyła e-mail i liczy termin od nowa. Oznacz rezygnację odbiera nagrodę zwycięzcy i przekazuje ją pierwszej dostępnej osobie rezerwowej; następnie wyślij e-maile ponownie, aby ją powiadomić. Gdy zwycięzca odbierze nagrodę, kontaktowy e-mail organizatora otrzymuje jego dane.
Strona weryfikacji
Strona /draw publikuje odcisk klucza, odcisk listy, rundę drand, a następnie klucz, wartość publiczną, ziarno i zwycięzców. Uczestnik może wyszukać swój kod na zapieczętowanej liście i uruchomić sprawdzenie w przeglądarce, które weryfikuje każdy krok, niczego nie wysyłając do sklepu. Plik dowodu JSON można pobrać ze strony i z panelu.
Autopilot
Dla konkursu z opcją Autopilot każde uruchomienie crona:
- pieczętuje zgłoszenia po upływie daty zakończenia;
- przeprowadza losowanie po osiągnięciu zapowiedzianej daty i opublikowaniu wartości drand, a następnie wysyła e-maile do zwycięzców;
- przy włączonej opcji zastępowania oznacza rezygnację zwycięzców, których termin minął bez odbioru nagrody, i powiadamia kolejną osobę rezerwową.
Cron nie wpływa na konkursy bez autopilota. Może działać tak często, jak chcesz.
Eksport i dane osobowe
- Eksportuj zwycięzców (CSV): miejsce, kod, dane kontaktowe, źródło, wylosowany los, odpowiedź, data powiadomienia, status odbioru i adres dostawy.
- Eksportuj zgłoszenia (CSV): wszystkie zgłoszenia ze statusem, źródłem i zgodą na newsletter.
- Z oficjalnym modułem psgdpr usunięcie klienta anonimizuje jego zgłoszenia i wycofuje te z niezapieczętowanych konkursów; eksport RODO obejmuje jego zgłoszenia i odbiór nagrody.
Rozwiązywanie problemów
Opłacone zamówienie nie utworzyło zgłoszenia
PrestaShop pomija haki modułu, gdy profil pracownika zmieniającego status nie ma uprawnień do wyświetlania tego modułu. W panelu konkursu przycisk Sprawdź zamówienia przegląda opłacone zamówienia z okresu konkursu i tworzy brakujące zgłoszenia.
Gość nie otrzymuje e-maila potwierdzającego
Na stronie konkursu przy oczekującym zgłoszeniu pojawia się przycisk Wyślij link ponownie (najwyżej jeden e-mail co dwie minuty). Sprawdź też ustawienia poczty sklepu.
Losowanie nie startuje
Wartość rundy drand jest publikowana dopiero o godzinie widocznej w panelu. Jeśli po tym czasie drand nadal jest nieosiągalny z serwera, wklej wartość randomness skopiowaną z linku drand.
Cron nic nie robi
Sprawdź, czy konkurs ma włączoną opcję Autopilot i czy sklep nie jest w trybie konserwacji, który blokuje też adres URL crona. W multisklepie wywołuj adres URL crona każdego sklepu.