Sezonowe dekoracje sklepu według harmonogramu: dokumentacja
Instalacja i konfiguracja sezonowych dekoracji: tworzenie kampanii, planowanie dat, włączanie efektów, banera i palety, bezpieczny podgląd, coroczne powtarzanie i multisklep.
Sezonowe dekoracje według harmonogramu (moduł dfthemescheduler) automatycznie ubierają Twój sklep PrestaShop na każde ważne wydarzenie handlowe. Tworzysz kampanie z datami, na Boże Narodzenie, Black Friday, wyprzedaże czy walentynki, łączące pasek, baner, paletę kolorów, efekty wizualne i blok na stronie głównej. Każda kampania włącza się i wyłącza sama w zaplanowanych terminach, bez żadnego zadania cron.
Prezentacja
Moduł opiera się na prostej logice: kampania to zestaw elementów wizualnych powiązany z zakresem dat. Gdy bieżąca data mieści się w tym zakresie, kampania staje się „live” i jej oprawa jest stosowana na froncie. Poza nim sklep wraca do normalnego wyglądu bez pozostawiania śladów.
W danym momencie wyświetlana jest tylko jedna kampania. Jeśli kilka kampanii nachodzi na siebie, wygrywa ta z najwyższym priorytetem. Możesz więc nałożyć długą kampanię bożonarodzeniową i bardziej priorytetowy szczyt Black Friday w jej środku.
Każda kampania może łączyć, do wyboru, następujące elementy: pasek u góry strony z komunikatem i odliczaniem, baner graficzny per język, paletę siedmiu kolorów, efekt nastrojowy (śnieg, konfetti, serca, liście, gwiazdy, fajerwerki), blok HTML na stronie głównej oraz własny CSS. Wszystkie te elementy są opcjonalne.
Instalacja
Zainstaluj moduł jak każdy inny moduł PrestaShop:
- W zapleczu przejdź do Moduły > Menedżer modułów.
- Kliknij Wgraj moduł i wybierz plik
dfthemescheduler.zip. - Po zakończeniu instalacji kliknij Konfiguruj, aby otworzyć planer kampanii.
Moduł tworzy swoje tabele, rejestruje hooki wyświetlania i dodaje zakładkę administracyjną dostępną przez przycisk Konfiguruj. Żadne zewnętrzne zależności nie są wymagane: ani Composer, ani jQuery, ani usługi zewnętrzne.
Jeśli masz już wersję 1.0.0, po prostu zastąp katalog modułu wersją 1.1.0: skrypt aktualizacji automatycznie dodaje kolumnę pozycji banera i rejestruje nowe hooki. Reinstalacja nie jest potrzebna.
Tworzenie kampanii
Z ekranu konfiguracji kliknij Dodaj kampanię. Formularz jest ułożony od najważniejszego do najbardziej opcjonalnego.
Informacje ogólne
- Nazwa kampanii: etykieta wewnętrzna, na przykład „Boże Narodzenie 2026″ lub „Black Friday”. Nigdy nie jest pokazywana odwiedzającym.
- Włączona: przełącznik główny. Wyłączona kampania nigdy nie jest wyświetlana, nawet w obrębie swojego zakresu dat.
- Priorytet: liczba całkowita. Przy nakładaniu się kampanii wygrywa ta z najwyższym priorytetem. Zostaw 0, jeśli prowadzisz tylko jedną kampanię naraz.
Daty
Pola Data rozpoczęcia i Data zakończenia używają natywnego selektora daty i godziny, z dokładnością do sekundy. Daty są interpretowane według czasu serwera Twojego sklepu.
Jeśli Twoja przeglądarka pokazuje pole tekstowe zamiast selektora, oczekiwany format to RRRR-MM-DD GG:MM:SS, na przykład 2026-11-27 00:00:00.
Coroczne powtarzanie
Zaznacz Powtarzaj co roku, aby kampania wracała automatycznie w tych samych terminach, rok po roku. Porównywane są tylko miesiąc, dzień i godzina: rok jest ignorowany.
Moduł natywnie obsługuje kampanie przechodzące przez Nowy Rok. Kampania od 20 grudnia do 6 stycznia działa bez zarzutu i uruchamia się ponownie każdej zimy, bez konieczności jej dublowania.
Dla kampanii powtarzalnej walidacja „data zakończenia po dacie rozpoczęcia” jest celowo wyłączona, ponieważ koniec może przypadać w następnym roku kalendarzowym.
Pasek u góry strony
Pole Komunikat paska (wielojęzyczne) wyświetla pasek u góry wszystkich stron. Akceptuje podstawowy HTML: linki, pogrubienie. Zostaw je puste, aby ukryć pasek.
Włącz Pokaż odliczanie, aby dodać licznik w czasie rzeczywistym do daty zakończenia kampanii, w formacie „12d 04:31:07″. Dla kampanii powtarzalnej odliczanie automatycznie celuje w najbliższe wystąpienie daty zakończenia.
Kolory paska (tło i tekst) ustawia się w sekcji Paleta.
Baner graficzny
Możesz wgrać inny baner dla każdego języka, z klikalnym linkiem i tekstem alternatywnym. Akceptowane formaty to jpg, png, gif i webp. Zalecana jest duża szerokość (na przykład 1920 × 300).
Pole Pozycja banera określa strefę szablonu, w której obraz się wyświetla:
- Pasek górny: displayBanner: pozycja domyślna, na samej górze strony.
- Pod nagłówkiem, pełna szerokość: displayNavFullWidth: tuż pod menu głównym.
- Nad treścią: displayWrapperTop: nad korpusem strony.
Jeśli baner się nie wyświetla, zwykle oznacza to, że Twój szablon nie obsługuje wybranego hooka. Po prostu wypróbuj inną pozycję z listy.
Paleta kolorów
Kampania udostępnia siedem kolorów: podstawowy, dodatkowy, linki, tło nagłówka, tło stopki, tło paska i tekst paska.
Te siedem wartości jest zawsze eksponowanych jako zmienne CSS (--dfts-primary, --dfts-secondary itd.), które Twój szablon lub własny CSS mogą ponownie wykorzystać.
Włącz Zastosuj paletę do szablonu, aby moduł sam nadał te kolory przyciskom, linkom, nagłówkowi i stopce. Zostaw opcję wyłączoną, jeśli wolisz sterować oprawą wyłącznie przez zmienne CSS i własny arkusz stylów.
Efekty wizualne
Pole Efekt wizualny oferuje sześć animacji w czystym JavaScript, rysowanych na pełnoekranowym canvasie: śnieg, konfetti, serca, jesienne liście, migoczące gwiazdy i fajerwerki. Wybierz Brak, aby wyłączyć efekt.
Intensywność (niska, średnia, wysoka) reguluje gęstość cząsteczek. Liczba cząsteczek jest ograniczona, aby chronić wydajność.
Efekty ładują się tylko wtedy, gdy kampania jest aktywna. Wyłączają się automatycznie dla odwiedzających z włączoną systemową preferencją „ograniczenie ruchu” i wstrzymują się, gdy karta przeglądarki nie jest widoczna.
Blok na stronie głównej i własny CSS
Pole Blok strony głównej (wielojęzyczne, edytor wizualny) wyświetla dowolną treść HTML na stronie głównej przez cały czas trwania kampanii, idealne na ofertę, rozbudowany pasek promocyjny lub komunikat sezonowy.
Pole Własny CSS pozwala pójść dalej. CSS jest oczyszczany przed wstrzyknięciem (próby wyjścia poza kontener stylu są neutralizowane) i ładowany tylko wtedy, gdy kampania jest aktywna. Możesz w nim używać zmiennych --dfts-*.
Bezpieczny podgląd
Każda kampania ma link podglądu chroniony unikalnym tokenem o długości 32 znaków. Z listy kampanii kliknij przycisk Preview: sklep otwiera się z zastosowaną oprawą kampanii, dokładnie tak, jak zobaczą ją odwiedzający w dniu premiery.
Podgląd utrzymuje się podczas nawigacji: możesz przeglądać wszystkie strony sklepu. Stały pasek „Podgląd: {nazwa}, Wyjdź” wyświetla się w lewym dolnym rogu; kliknij Wyjdź, aby wrócić do normalnego widoku.
Podgląd jest całkowicie niewidoczny dla odwiedzających: aktywuje się tylko z tajnym linkiem zawierającym właściwy token. Możesz więc sprawdzić bożonarodzeniową oprawę w środku sierpnia albo udostępnić link klientowi do akceptacji, nie zmieniając niczego dla publiczności.
Planer roczny
Na górze listy kampanii zaplecze wyświetla syntetyczny pulpit: liczbę kampanii, kampanie włączone, kampanię aktualnie „live” oraz najbliższą kampanię do uruchomienia z liczbą pozostałych dni.
Poniżej oś czasu na dwanaście miesięcy przedstawia każdą kampanię jako kolorowy pasek umieszczony według jej dat. Pionowy znacznik wskazuje bieżący dzień, kampanie powtarzalne przechodzące przez Nowy Rok są pokazane w dwóch segmentach, a każdy pasek jest klikalny i otwiera bezpośrednio edycję kampanii.
Duplikowanie, eksport, import
Z poziomu listy akcja Duplikuj tworzy kopię kampanii z nowym tokenem podglądu, domyślnie wyłączoną, której obrazy banerów są fizycznie kopiowane: usunięcie jednej nigdy nie wpływa na drugą. Powiązania ze sklepami są zachowywane.
Przycisk Eksport JSON (na pasku narzędzi) pobiera wszystkie Twoje kampanie do pliku. Formularz Import JSON na pulpicie pozwala wgrać ten plik na innym sklepie. Zaimportowane kampanie przychodzą domyślnie wyłączone; obrazy banerów nie są zawarte w eksporcie.
Multisklep i wielojęzyczność
W kontekście multisklepu każda kampania jest przypisywana do wybranych sklepów przez sekcję Powiązanie ze sklepem formularza. Kampania wyświetla się tylko w sklepach, do których jest przypisana.
Komunikat paska, baner (obraz, link, tekst alternatywny) i blok strony głównej są tłumaczone per język. Uzupełnij każdy język z zakładek językowych formularza.
Integracja dla twórców szablonów
Gdy kampania jest aktywna, moduł dodaje klasy do znacznika body: dfts-active, dfts-campaign-{id}, dfts-effect-{efekt} oraz dfts-preview w trybie podglądu. Możesz dzięki temu precyzyjnie celować swoim CSS.
Zdarzenie JavaScript dfts:ready jest również emitowane na document po zainicjowaniu skryptu, ze szczegółową konfiguracją kampanii. W połączeniu ze zmiennymi CSS --dfts-* pozwala to na integracje szyte na miarę bez ingerencji w moduł.
Wydajność
Moduł jest z założenia lekki. Ustalenie aktywnej kampanii mieści się w jednym zapytaniu SQL memoizowanym na wyświetlenie. CSS i JavaScript frontu ładują się tylko wtedy, gdy kampania jest rzeczywiście aktywna. Nie jest używany żaden override klas: wyłącznie natywne hooki PrestaShop.
Rozwiązywanie problemów
Baner się nie wyświetla
Twój szablon prawdopodobnie nie obsługuje wybranego hooka pozycji. Zmień Pozycję banera na inną wartość z listy.
Kolory nie są stosowane
Sprawdź, czy opcja Zastosuj paletę do szablonu jest włączona. Jeśli tak, a niektóre elementy pozostają bez zmian, Twój szablon używa specyficznych selektorów: dodaj kilka reguł w polu własnego CSS, opierając się na zmiennych --dfts-*.
Efekt się nie animuje
Animacje są celowo wyłączane dla odwiedzających z włączonym ograniczeniem ruchu w systemie operacyjnym i wstrzymywane, gdy karta jest w tle. Sprawdź też, czy wybrany jest efekt inny niż „Brak”.
Dwie kampanie nachodzą na siebie
To oczekiwane zachowanie: wyświetla się tylko jedna kampania, ta z najwyższym priorytetem. Dostosuj priorytety, aby wybrać, która ma pierwszeństwo.
Kampania nie uruchamia się o zaplanowanej godzinie
Daty są interpretowane według czasu serwera, który może różnić się od Twojego czasu lokalnego. Sprawdź strefę czasową sklepu w ustawieniach PrestaShop.