Przycisk przekierowania produktu - gdzie kupić i linki zewnętrzne, ukryty adres docelowy, licznik kliknięć, masowa edycja CSV
Dodaj na stronie produktu przycisk, który przenosi klienta gdzie indziej: do producenta, na marketplace, do karty katalogowej lub oferty afiliacyjnej. Adres zewnętrzny nigdy nie pojawia się w źródle strony — przycisk prowadzi do neutralnego adresu Twojego sklepu, który przekazuje klienta dalej i odpowiada nagłówkiem noindex, nofollow. Włączasz go osobno dla każdego produktu, z własnym celem i tekstem, a licznik kliknięć widzisz na karcie produktu. Trzy pozycje, nowa karta i opcjonalne okno ostrzeżenia. Eksport i import CSV z walidacją. Bez jQuery, bez zmian w szablonie. Dla PrestaShop 1.7 i 8.
Jeden przycisk, kierujący dokładnie tam, gdzie trzeba
Części produktów po prostu nie sprzedajesz u siebie. Marka, którą prezentujesz, ale której nie masz na stanie. Towar dostępny wyłącznie na marketplace. Usługa rezerwowana gdzie indziej. Maszyna, której specyfikacja leży na stronie producenta. W takich przypadkach przycisk dodania do koszyka jest odpowiedzią błędną, a sam opis prowadzi donikąd.
Ten moduł umieszcza na stronie produktu prawdziwy przycisk i kieruje klienta pod wskazany przez Ciebie adres. Włączasz go pojedynczo, produkt po produkcie, więc reszta katalogu pozostaje nienaruszona.
Adres docelowy nie trafia do źródła strony
To właśnie odróżnia moduł od zwykłego linku wpisanego ręcznie.
Przycisk nie zawiera zewnętrznego adresu URL. Prowadzi do neutralnego adresu w Twoim własnym sklepie — /module/redirectproduct/redirect?id_product=… — a przekierowaniem zajmuje się kontroler. Odpowiedź wysyłana jest z nagłówkiem X-Robots-Tag: noindex, nofollow, a sam odnośnik ma atrybut rel="nofollow noopener".
Adres docelowy nie leży więc w Twoim kodzie HTML na widoku robotów zbierających dane, a wyszukiwarki dostają jasny komunikat, żeby tego przeskoku nie indeksować ani nie podążać za nim.
Nie da się z tego zrobić otwartego przekierowania
Kontroler przekierowujący nie ufa temu, co dostaje. Wczytuje przekierowanie zapisane dla produktu i przekazuje klienta dalej wyłącznie wtedy, gdy taki wpis istnieje, jest włączony, a jego adres ponownie przechodzi walidację w momencie żądania. Wszystko inne kończy się na Twojej stronie 404.
Walidacja oznacza bezwzględny adres http lub https, przy czym znaki sterujące, spacje, cudzysłowy podwójne, nawiasy ostre i ukośniki odwrotne są odrzucane od razu, a na koniec adres sprawdza wbudowany walidator URL w PHP. Schemat skryptowy albo osadzone dane nie mają szans przejść — podobnie jak produkt bez skonfigurowanego przekierowania.
Licznik kliknięć tam, gdzie faktycznie na niego spojrzysz
Każde przejście przez przycisk jest zliczane. Liczba pojawia się na liście w konfiguracji modułu oraz na karcie edycji samego produktu, więc nie musisz jej nigdzie szukać — widzisz wynik produktu wtedy, gdy i tak go właśnie edytujesz.
Opcjonalne okno "zaraz opuścisz sklep"
Dla każdego produktu możesz włączyć niewielkie okno potwierdzenia, wyświetlane tuż przed wyjściem klienta. Oferuje ono przyciski "Stay on this page" (pozostań na tej stronie) oraz "Continue" (kontynuuj), a treść komunikatu piszesz sam i podlega ona tłumaczeniu.
Zostaw je wyłączone przy ofercie na marketplace, której klienci i tak się spodziewają. Włącz je przy linku afiliacyjnym albo wszędzie tam, gdzie wolisz otwarcie zaznaczyć przejście do innej witryny.
Twoje sformułowania, dla sklepu i dla produktu
Ustaw raz domyślny tekst przycisku dla całego sklepu — jeśli zostawisz pole puste, przyciski będą podpisane "More information" (więcej informacji). Następnie nadpisz go na wybranych produktach, gdzie lepiej zabrzmi konkretny czasownik: Sprawdź dostępność, Zarezerwuj termin, Pobierz kartę katalogową, Kup na marketplace.
Za etykietą przycisku znajduje się także niewielka ikona linku zewnętrznego, narysowana jako osadzony SVG, który dziedziczy kolor i rozmiar tekstu przycisku. Dzięki temu klient od razu widzi, że odnośnik prowadzi poza sklep.
Trzy pozycje i ostrzeżenie, gdy któraś nie zadziała
Przycisk możesz umieścić obok przycisku dodania do koszyka, pod informacją o dostępności produktu albo na dole strony produktu. Każda pozycja to standardowy hook wyświetlania PrestaShop, więc żaden plik szablonu nie jest edytowany.
Jeśli Twój sklep pracuje w trybie katalogu, a pozycja ustawiona jest na obok przycisku dodania do koszyka — czyli w bloku, który większość szablonów w trybie katalogu całkowicie ukrywa — strona konfiguracji poinformuje Cię o tym i podpowie pozycję, która rzeczywiście się wyświetli. Moduł sam sprawdza ten warunek, zamiast zostawiać Cię z zagadką, dlaczego nic się nie pokazało.
Przycisk renderuje się najwyżej raz na stronę, wyłącznie w skonfigurowanej pozycji.
Eksport i import CSV do pracy masowej
Wyeksportuj całą tabelę, popraw ją w arkuszu kalkulacyjnym i zaimportuj z powrotem. Format to jeden wiersz na produkt:
id_product;active;url;button_label;confirm;clicks
Każdy wiersz jest sprawdzany przy wczytywaniu, a wiersze odrzucone są raportowane z numerem linii i przyczyną — produkt nie istnieje, flaga nie jest równa 1/0, adres jest pusty albo nie jest poprawnym adresem bezwzględnym. Wiersz z błędnym adresem zostaje zaimportowany jako wyłączony, a nie po cichu pominięty, dzięki czemu możesz go zobaczyć i poprawić. Raport wypisuje dziesięć pierwszych problemów, a następnie podaje, ile było pozostałych.
Licznik kliknięć jest pomijany przy imporcie, więc zwykła podróż danych przez arkusz nigdy nie nadpisze Twoich statystyk — istniejące wiersze są aktualizowane w miejscu i zachowują swoje liczby. Wyjątek jest celowy: zaznaczenie opcji "Replace all" (zastąp wszystko) najpierw czyści tabelę, razem z licznikami. Ta opcja usuwa cokolwiek dopiero wtedy, gdy wgrany plik udowodni, że zawiera wiersze nadające się do importu, więc uszkodzony plik nie skasuje Twoich danych przez przypadek.
Pliki wyeksportowane przez wersję 3.x — rozdzielane przecinkami, ze starymi nazwami kolumn — są rozpoznawane i konwertowane automatycznie.
Wersja 4 zamknęła dwa nieuwierzytelnione punkty dostępu
To trzeba powiedzieć wprost.
Wersja 3.x dostarczała pliki import.php i export.php jako samodzielne pliki dostępne bez żadnego uwierzytelnienia. Każdy, kto znał adres, mógł pobrać całą Twoją tabelę przekierowań albo wyczyścić ją i zastąpić własną. Obu plików już nie ma. Obsługa CSV działa teraz wewnątrz strony konfiguracji, za tokenem sesji pracownika.
Trzeci plik, redirection.php, przekierowywał klientów bez walidacji zapisanego adresu i całkowicie omijał stos kontrolerów front office. Zastąpił go opisany wyżej właściwy kontroler, który waliduje adres docelowy i zlicza kliknięcie.
Aktualizacja do 4.0.0 usuwa te przestarzałe pliki z dysku, zamiast zostawiać je na miejscu.
Co jeszcze naprawiła wersja 4
Stara strona administracyjna ładowała jQuery 1.9 z CDN Google — co nie działało w żadnym sklepie egzekwującym Content-Security-Policy i wszędzie indziej stanowiło zbędny balast. Wszystkie zależności od CDN i od jQuery zniknęły; front office obsługuje jeden niewielki plik JavaScript bez bibliotek, wczytywany tylko na tych stronach produktów, które faktycznie go potrzebują.
W PrestaShop 1.7 przycisk często w ogóle się nie pojawiał, ponieważ moduł był zarejestrowany na aliasie hooka z czasów wersji 1.6. Sklepy w trybie katalogu widziały go wyłącznie w stopce, przez odwrócony warunek. Pozycje są teraz jawne i wybierasz je sam.
Najgorsze było to, że zapis produktu z dowolnego miejsca, w którym panel modułu nie był wyrenderowany, po cichu kasował przekierowanie tego produktu — dotyczyło to akcji masowych, szybkiej edycji i importów. Zapisy chroni teraz pole znacznikowe, więc zapis wykonany bez wyświetlenia panelu zostawia przekierowanie w spokoju.
Wersja 3.x pokazywała także pozorny adres URL i podmieniała go po najechaniu myszą. Nikogo to nie zmyliło, a wyglądało po prostu nieuczciwie. Wersja 4 osiąga uzasadniony cel — utrzymanie adresu docelowego poza źródłem strony i poza zasięgiem robotów — w sposób właściwy, przez neutralny odnośnik i odpowiedź z noindex.
Aktualizacja z 3.x to jeden krok
Wgraj wersję 4 na starą albo użyj przycisku aktualizacji modułu. Aktualizacja migruje w miejscu każde zapisane przekierowanie — adresy docelowe, stan włączenia, flagi powiadomień — konwertuje stary tekst przycisku, usuwa osierocone wiersze pozostawione przez 3.x i kasuje przestarzałe pliki wraz z wszystkimi trzema niebezpiecznymi punktami dostępu.
Wersja 4.0.3 naprawiła usterkę aktualizacji, którą warto nazwać po imieniu: krok 4.0.0 uzależniał swoje powodzenie od pięciu połączonych wywołań registerHook() zwracających prawdę, więc jedna chwilowa awaria — albo hook zarejestrowany już przez wcześniejszą, przerwaną próbę — oznaczała niepowodzenie całego kroku i PrestaShop wyłączał moduł. Hooki są teraz rejestrowane idempotentnie, a krok zawsze zgłasza powodzenie.
Kompatybilność
PrestaShop 1.7 i 8, w ośmiu językach: angielskim, francuskim, hiszpańskim, holenderskim, niemieckim, polskim, tureckim i włoskim.
Bez override'ów, bez modyfikacji rdzenia i szablonu. Przycisk korzysta z klas przycisków Twojego szablonu, więc przejmuje jego stylowanie. Odinstalowanie usuwa tabelę modułu — wszystkie przekierowania i liczniki kliknięć — oraz jego ustawienia; jeśli dane mogą Ci się jeszcze przydać, najpierw wyeksportuj je do CSV.
Najczęściej zadawane pytania
Czy klienci widzą adres zewnętrzny przed kliknięciem?
Nie w źródle Twojej strony. Przycisk prowadzi do neutralnego adresu w Twoim sklepie, który przekazuje klienta dalej, a ta odpowiedź wysyłana jest z noindex, nofollow. Adres docelowy pojawia się w pasku adresu dopiero po przejściu.
Czy ktoś może wykorzystać adres przekierowania, żeby kierować na własną stronę?
Nie. Kontroler przekierowuje wyłącznie pod adres zapisany dla danego produktu i dopiero po ponownej walidacji w momencie żądania. Zmanipulowane lub nieskonfigurowane żądanie trafia na Twoją stronę 404.
Gdzie włącza się przekierowanie dla produktu?
Katalog → Produkty → otwórz produkt → zakładka Moduły. Ustawiasz tam adres docelowy, zaznaczasz przełącznik, opcjonalnie nadajesz własny tekst przycisku i własną treść ostrzeżenia oraz widzisz liczbę kliknięć.
Dlaczego mój przycisk się nie wyświetla?
Trzy rzeczy, po kolei: przełącznik produktu jest zaznaczony; adres zaczyna się od http:// lub https:// (panel ostrzega, jeśli tak nie jest); wybrana pozycja jest renderowana przez Twój szablon. W razie wątpliwości wybierz Dół strony produktu — ten hook obsługuje każdy szablon.
Czy moduł działa w trybie katalogu?
Tak, ale nie w pozycji obok przycisku dodania do koszyka, ponieważ większość szablonów całkowicie ukrywa ten blok w trybie katalogu. Strona konfiguracji wykrywa taką sytuację i podpowiada wybór innej pozycji.
Czy przejście danych przez arkusz kalkulacyjny wyzeruje liczniki kliknięć?
Przy zwykłym imporcie nie: kolumna licznika jest eksportowana informacyjnie i pomijana przy imporcie, a istniejące wiersze zachowują swoje liczby. Jedynym wyjątkiem jest Replace all (zastąp wszystko), które najpierw czyści tabelę i usuwa razem z nią liczniki. Zostaw to pole niezaznaczone, jeśli chcesz zachować swoje dane.
Aktualizuję z wersji 3.x — czy stracę przekierowania?
Nie. Aktualizacja migruje w miejscu każde przekierowanie, jego stan włączenia i flagę powiadomienia, konwertuje tekst przycisku i usuwa przestarzałe pliki z 3.x.
Czy moduł edytuje mój szablon albo nadpisuje pliki rdzenia?
Nie. Trzy standardowe hooki wyświetlania dla przycisku plus hooki zapisu produktu i multimediów, i nic poza tym.
-
KompatybilnośćPrestashop 1.5
Prestashop 1.6
Prestashop 1.7
Prestashop 8 -
Dostępne Tłumaczenia ModułuAngielski
Francuski
Hiszpański
Niderlandzki
Niemiecki
Polski
Turecki
Włoski
MEG Venture
4 innych produktów w tej samej kategorii
| Wersja | 4.0.3 |
|---|---|
| Ostatnia aktualizacja | 2026-07-30 |
| Dziennik zmian | - [2026-07-30] Backfill missing translation keys for product redirect module in multiple languages - [2026-07-24] Add Polish and Turkish translations for redirect product module strings - [2026-07-23] Fix upgrade process to prevent module disablement and update version to 4.0.3 - [2026-07-23] Translate product redirect module strings to Turkish for better localization and user experience. - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Add translation files for FR, DE, PL, NL, TR, IT, ES (7 languages) - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Add missing translation files (fr, de, pl, nl, tr, it, es) - [2026-07-23] Fix invisible "Stay on this page" button in confirm modal (4.0.2) - [2026-07-23] Add an "opens another page" icon to the redirect button (4.0.1) - [2026-07-22] Fix typo in display name for Product Redirect Button - [2026-07-15] Add redirect product module files and functionality - [2026-06-21] Refactor code style and update comments for consistency - [2023-09-21] v3.2.5 - [2023-09-06] v3.2.4 - [2021-04-06] v3.2.3 - [2021-01-23] v3.2.2 - [2021-01-23] Initial commit |
• [2023-09-21] v3.2.5
• [2023-09-06] v3.2.4
• [2021-04-06] v3.2.3
• [2021-01-23] v3.2.2
• [2021-01-23] Initial commit
Komentarze (3)
Chwilowo nie możesz polubić tej opinii
Zgłoś komentarz
Zgłoszenie wysłane
Twoje zgłoszenie nie może zostać wysłane