DataFirefly Live Shopping: kompletny przewodnik
Instalacja, konfiguracja i prowadzenie sprzedaży na żywo: natywne wideo (HLS / MP4 / embed), Studio w czasie rzeczywistym, oferty flash, czat, przypomnienia e-mail, powtórki i natywny koszyk dla PrestaShop 1.7, 8 i 9.
Wprowadzenie
Moduł DataFirefly Live Shopping (dflive) zamienia sklep PrestaShop w platformę sprzedaży wideo na żywo. Prowadzisz transmisję, przypinasz produkty w czasie rzeczywistym, uruchamiasz oferty flash, klienci dodają produkty do koszyka bez opuszczania transmisji, a sesja pozostaje dostępna jako powtórka. Wszystko działa w Twoim sklepie: bez zewnętrznej platformy live shoppingu i bez abonamentu.
Trzy filary: natywne wideo (HLS, MP4 lub embed), Studio w czasie rzeczywistym w panelu do prowadzenia transmisji oraz warstwa zakupowa (przypinanie produktów, oferty flash, natywny koszyk, czat, reakcje, social proof, przypomnienia e-mail).
Zgodność
- PrestaShop od 1.7.0 do 1.7.8, 8.x i 9.x (od wersji 1.1.0 modułu)
- PHP od 5.6 do 8.3, zależnie od wersji PrestaShop
- Motywy Classic i Hummingbird oraz motywy na nich oparte
- Jeden sklep i multistore
- Wielojęzyczność (5 języków w zestawie: FR, EN, ES, DE, IT)
- Brak zależności (ani Composera, ani frameworka);
hls.jsjest wbudowany w moduł - Zgodny z hostingiem współdzielonym (synchronizacja przez polling AJAX, bez WebSocket i SFU)
Interfejs modułu jest przetłumaczony na francuski, angielski, hiszpański, niemiecki i włoski. W sklepie po polsku teksty modułu wyświetlają się po francusku (język źródłowy), dopóki ich nie przetłumaczysz w Międzynarodowe > Tłumaczenia. Dlatego poniżej przyciski podano z ich oryginalną francuską nazwą. W PrestaShop 1.7.0–1.7.5 część tekstów (system XLF) pozostaje po francusku także w pozostałych językach.
Wymagania
Moduł odpowiada za odtwarzanie wideo i całą warstwę zakupową, ale źródło wideo zapewniasz Ty. W zależności od trybu:
- HLS: strumień
.m3u8z własnego serwera HLS, Mux lub Cloudflare Stream, zasilany enkoderem takim jak OBS. - MP4: adres publicznie dostępnego pliku
.mp4. - Embed: transmisja YouTube, Twitch lub Vimeo (adres lub kod
<iframe>).
Aby działały przypomnienia, sklep musi mieć skonfigurowaną wysyłkę e-maili (Zaawansowane > E-mail).
Zalecany jest HTTPS: autoodtwarzanie i pełny ekran działają lepiej w sklepie obsługiwanym przez HTTPS, co dotyczy już prawie wszystkich sklepów produkcyjnych.
Instalacja
- W panelu otwórz Moduły > Menedżer modułów.
- Kliknij Załaduj moduł i wybierz plik
dflive.zip. - Po instalacji otwórz Sprzedaż > Live Shopping > Lives & Replays.
Podczas instalacji moduł tworzy swoje tabele (sesje, produkty sesji, wiadomości, zdarzenia, obecność, przypomnienia), rejestruje zakładki w Sprzedaż, dodaje trasy /live i /live/{id}-{slug} oraz włącza widget strony głównej.
Aktualizacja z wersji 1.0.0
- W Moduły > Menedżer modułów załaduj nowy plik
dflive.zip(lub podmień foldermodules/dfliveprzez FTP). - Kliknij Aktualizuj w wierszu modułu, jeśli PrestaShop to zaproponuje.
Skrypt aktualizacji 1.1.0 uruchamia się automatycznie, bez utraty danych. Skrypt:
- dodaje potrzebne kolumny (ochrona przed floodem dla gości, język i sklep przypomnień);
- przypisuje istniejące transmisje do wszystkich sklepów;
- zastępuje puste daty zapisane jako
0000-00-00wartościami pustymi (NULL); - usuwa niepotrzebny już hook
displayHeader.
Jeśli korzystasz z CCC (łączenie CSS i JS), po aktualizacji wyczyść pamięć podręczną PrestaShop (Zaawansowane > Wydajność > Wyczyść pamięć podręczną), aby wczytały się nowe pliki odtwarzacza.
Tworzenie transmisji
W Sprzedaż > Live Shopping > Lives & Replays kliknij Dodaj nowy. Formularz ma zakładki:
Ogólne
- Tytuł i opis transmisji (wielojęzyczne).
- Prowadzący: nazwa wyświetlana jako host w czacie i pod wideo.
- Zaplanowana data / godzina: uruchamia odliczanie u widza.
- Status: zaplanowana, na żywo lub zakończona. Statusem można sterować także ze Studio; zmiana w formularzu ma te same skutki (daty, czyszczenie ofert, aktualizacja u widzów).
- Obraz okładki: JPG, PNG, GIF lub WebP, wyświetlany przed transmisją i na listach. Sprawdzany jest rzeczywisty typ pliku: inne pliki są odrzucane.
Wideo
- Typ źródła wideo: HLS, MP4 lub embed.
- Źródło wideo: adres
.m3u8, adres.mp4albo adres / kod<iframe>embed, zależnie od typu. W przypadku kodu embed u widza używany jest tylko adres iframe. - Adres powtórki (VOD) (opcjonalnie): np. nagranie z serwera HLS, odtwarzane automatycznie po zakończeniu transmisji.
Produkty
Przypisz produkty prezentowane w transmisji za pomocą wyszukiwarki AJAX (nazwa, indeks lub ID). Przeciągnij i upuść wiersze, aby ustalić kolejność. Wyłączony produkt pozostaje na liście, ale nie jest pokazywany podczas transmisji.
Opcje
Włącz lub wyłącz czat, reakcje i powtórkę dla tej sesji oraz jej widoczność w sklepie. W multistore wybierz sklepy, w których transmisja jest publikowana.
SEO
Uzupełnij meta tytuł, meta opis i opcjonalnie przyjazny URL strony transmisji (puste pole zostanie wygenerowane z tytułu).
Nadawanie strumienia
Dla transmisji HLS zasada jest następująca:
- Skonfiguruj enkoder (np. OBS) do nadawania na serwer HLS, Mux lub Cloudflare Stream.
- Skopiuj wyjściowy adres
.m3u8i wklej go w polu Źródło wideo sesji. - Rozpocznij nadawanie w enkoderze, otwórz Studio i kliknij Lancer le live (uruchom transmisję).
Strumień ładuje się u widzów dopiero po uruchomieniu transmisji. Jeśli strumień HLS jest chwilowo niedostępny (enkoder startuje później, przerwa w sieci), odtwarzacz automatycznie ponawia próbę.
Moduł nie wiąże Cię z żadną infrastrukturą: wybierasz własny łańcuch nadawczy (własny serwer lub chmura) i po prostu wklejasz adres. Do szybkiego testu wystarczy plik MP4 lub embed YouTube / Twitch.
Studio (reżyserka)
Studio to reżyserka w panelu. Otwórz je przyciskiem Studio na liście transmisji.
- Lancer le live / Terminer (uruchom / zakończ): zmienia status sesji. Przy starcie osoby zapisane na przypomnienie dostają e-mail. Po zakończeniu trwające oferty flash są usuwane, a produkt odpinany.
- Épingler (przypnij produkt): jego karta od razu pojawia się na wideo widzów, także tych, którzy dołączą później. Przypięcie produktu automatycznie odpina poprzedni. Moment pierwszej prezentacji jest zapisywany dla osi czasu powtórki.
- Offre flash (oferta flash): wpisz rabat (np.
20%lub10) i w razie potrzeby czas trwania (od 5 do 60 minut lub bez limitu). Moduł tworzy w locieSpecificPrice, a nowa cena od razu pojawia się u widzów. Przycisk × kończy ofertę i przywraca cenę regularną u wszystkich. - Annonce épinglée (przypięte ogłoszenie): wyświetla baner na wideo widzów i dodaje przypiętą wiadomość do czatu.
- Wiadomość prowadzącego: pole pod czatem pozwala pisać w imieniu hosta.
- Moderacja: ukrywanie, pokazywanie lub przypinanie dowolnej wiadomości. Ukryta wiadomość znika także u widzów, którzy już ją otrzymali.
- Statystyki na żywo: liczba widzów, reakcji i zapisów na przypomnienia w czasie rzeczywistym.
Studio wysyła zdarzenia (przypięcie, oferta, ogłoszenie, zmiana statusu, ukrycie), które widzowie odbierają w następnym cyklu pollingu. Interwał ustawisz w konfiguracji modułu.
Przypomnienia e-mail
W zaplanowanej sesji widz wpisuje swój e-mail (uzupełniony automatycznie, jeśli jest zalogowany) i klika przycisk zapisu (Me prévenir w interfejsie francuskim). Liczba zapisanych jest widoczna na stronie transmisji i w Studio.
Po kliknięciu przycisku uruchomienia transmisji od razu wychodzi pierwsza partia e-maili; pozostałe są wysyłane partiami po 20, dopóki Studio jest otwarte. Każdy zapisany otrzymuje wiadomość w języku, w którym się zapisał (FR, EN, ES, DE lub IT; dla innych języków, w tym polskiego, po angielsku), z bezpośrednim linkiem do transmisji. Każda osoba jest powiadamiana tylko raz.
Szablony znajdują się w modules/dflive/mails/{język}/dflive_reminder.html i .txt. Aby wysyłać e-mail po polsku, skopiuj folder mails/en do mails/pl i przetłumacz pliki.
Strona widza
Strona transmisji (/live/{id}-{slug}) zawiera:
- Odtwarzacz z oznaczeniem transmisji na żywo i liczbą widzów. Przeglądarki pozwalają na autoodtwarzanie tylko bez dźwięku: na wideo pojawia się przycisk włączenia dźwięku.
- Kartę przypiętego produktu na wideo, z przyciskiem dodania do koszyka.
- Listę produktów transmisji, każdy dodawany do natywnego koszyka PrestaShop jednym kliknięciem. Blok koszyka motywu odświeża się bez otwierania okna, aby nie przerywać transmisji. Uwzględniane są stany magazynowe, minimalne ilości i reguły koszyka; dla produktu z kombinacjami dodawana jest kombinacja domyślna.
- Czat (klienci i, jeśli włączono, goście) z ochroną przed floodem, wiadomościami prowadzącego i animowanymi serduszkami.
- Ogłoszenia prowadzącego jako baner na wideo.
- Powiadomienia social proof o dodaniu produktu do koszyka przez innego widza.
W zaplanowanej sesji widz widzi odliczanie (według czasu serwera) i może zapisać się na przypomnienie. Po rozpoczęciu transmisji strona automatycznie przechodzi w tryb na żywo, bez przeładowania.
Powtórki i oś czasu produktów
Po zakończeniu transmisji strona automatycznie przechodzi w tryb powtórki:
- jeśli podano adres powtórki, wczytywane jest nagranie z kontrolkami odtwarzania;
- w transmisji typu embed embed pozostaje widoczny (lub adres powtórki, jeśli go podano);
- bez źródła powtórki wyświetla się ekran zakończenia transmisji.
Podczas odtwarzania powtórki każdy produkt pojawia się na wideo w momencie, w którym został po raz pierwszy przypięty na żywo. Czas liczony jest od uruchomienia transmisji: dla dokładnej synchronizacji nagranie powinno zaczynać się w chwili kliknięcia przycisku uruchomienia.
Jeśli opcja powtórki jest wyłączona, strona zakończonej transmisji przekierowuje na listę /live.
Ustawienia modułu
Strona konfiguracji (Moduły > Menedżer modułów > DataFirefly Live Shopping > Konfiguruj) grupuje ustawienia globalne. Wartości spoza zakresu są automatycznie korygowane.
- Interwał pollingu (domyślnie 3000 ms, od 1000 do 60 000): częstotliwość odświeżania czatu i zdarzeń w trakcie transmisji. Przed transmisją i w powtórce tempo jest automatycznie zmniejszane.
- Czat na żywo i czat gości: włączają czat i ewentualnie udział niezalogowanych odwiedzających.
- Reakcje i social proof: włączają serduszka i powiadomienia o dodaniu do koszyka.
- Limit czasu widza (domyślnie 30 s, od 10 do 600): czas, po którym nieaktywny widz przestaje być liczony.
- Maks. długość wiadomości (domyślnie 300, od 20 do 500) i ochrona przed floodem (domyślnie 3 s, 0 aby wyłączyć): porządkują czat. Dla gości ochrona działa według adresu IP (zapisywanego jako skrót, nigdy jawnie).
- Widget strony głównej i liczba transmisji (domyślnie 4, od 1 do 24): sterują blokiem na stronie głównej.
Strona listy i widget strony głównej
Strona /live pokazuje transmisje trwające, nadchodzące (najbliższe jako pierwsze) i powtórki (najnowsze jako pierwsze). Widget strony głównej wyróżnia te sesje w ustawionym limicie. W multistore każdy sklep pokazuje tylko przypisane do niego transmisje.
Bezpieczeństwo
- Czat, dodawanie do koszyka i zapis na przypomnienia są chronione standardowym tokenem anty-CSRF PrestaShop.
- Wiadomości czatu są oczyszczane z HTML przed wyświetleniem.
- Jako okładka akceptowane są tylko prawdziwe obrazy, a folder uploadu blokuje wykonywanie skryptów.
- W kodzie embed używany jest tylko adres iframe: do strony nie trafiają żadne atrybuty ani skrypty.
FAQ i rozwiązywanie problemów
Wideo się nie uruchamia
Sprawdź typ i źródło wideo. Dla HLS upewnij się, że adres .m3u8 jest publicznie dostępny, a enkoder nadaje; odtwarzacz automatycznie ponawia próby przez około 90 sekund. Dla embed sprawdź, czy adres YouTube, Twitch lub Vimeo jest poprawny. Przed uruchomieniem transmisji wideo nie jest ładowane: to normalne.
Transmisja jest bez dźwięku
To zasada przeglądarek: autoodtwarzanie jest dozwolone tylko bez dźwięku. Widz klika przycisk włączenia dźwięku na wideo.
Cena oferty flash nie zmienia się u widzów
Oferta działa przez SpecificPrice tworzony w locie i jest przekazywana w następnym cyklu pollingu. Sprawdź interwał pollingu, czy oferta nie została już zakończona i czy nie minął jej czas. Rabat kwotowy równy cenie produktu lub wyższy jest odrzucany.
Czat się nie wyświetla lub odrzuca wiadomości
Sprawdź, czy czat jest włączony dla sesji i globalnie. Dla niezalogowanych odwiedzających musi być włączony czat gości. Ochrona przed floodem wymusza minimalny odstęp między wiadomościami. Jeśli pojawia się prośba o przeładowanie strony, sesja odwiedzającego się zmieniła (np. logowanie w innej karcie): wystarczy przeładować.
Zapisani nie otrzymali e-maila z przypomnieniem
Sprawdź konfigurację e-mail sklepu (Zaawansowane > E-mail, z e-mailem testowym) i dziennik zdarzeń (Zaawansowane > Logi). E-maile wychodzą przy starcie transmisji, a potem partiami, dopóki Studio jest otwarte: zostaw Studio otwarte do zakończenia wysyłki.
Odliczanie się nie wyświetla
Odliczanie pojawia się tylko w sesjach zaplanowanych z podaną datą. Bez daty wyświetla się komunikat o zbliżającym się starcie.
Licznik koszyka się nie aktualizuje
Produkt jest dodawany do koszyka; odświeżenie bloku koszyka zależy od modułu koszyka motywu (ps_shoppingcart). Jeśli używasz CCC, wyczyść pamięć podręczną po aktualizacji modułu.
Czy moduł działa na hostingu współdzielonym?
Tak. Synchronizacja w czasie rzeczywistym korzysta z pollingu AJAX, bez serwera WebSocket i SFU, co zapewnia zgodność z typowymi hostingami współdzielonymi.
Historia wersji
1.1.0 — 26 października 2026
- Zgodność z PrestaShop od 1.7.0 do 1.7.8 (PHP od 5.6 do 8.3), oprócz 8 i 9.
- Przypomnienia wysyłane e-mailem przy starcie transmisji (5 języków).
- Powtórki: automatyczne przełączenie, wideo nie jest już zasłonięte, oś czasu produktów.
- Przycisk włączenia dźwięku, automatyczne wznawianie HLS, przypięty produkt widoczny dla spóźnionych widzów.
- Oferty flash z czasem trwania, przywracanie ceny regularnej po zakończeniu.
- Multistore: wybór sklepów dla każdej transmisji.
- Bezpieczeństwo: token anty-CSRF, kontrola uploadu, ochrona przed floodem po IP, filtrowany embed.
- Przyjazne adresy, meta SEO, okruszki, przeciąganie produktów, ogłoszenia jako baner.
1.0.0 — 6 czerwca 2026
- Pierwsza wersja dla PrestaShop 8 i 9.