Najważniejsze cechy i zalety
- Adresy bez ID według Twoich wzorców — sam decydujesz, jak wygląda adres każdego typu treści, np.
product/nazwa-produktualbo — po włączeniu wzorców bez prefiksu — nawetnazwa-produktu.htmlbezpośrednio w katalogu głównym sklepu. - Zero utraty SEO przy zmianie adresów — trwałe przekierowania 301/308 z adresów natywnych i z każdej poprzedniej formy adresu przenoszą pozycje wypracowane w wyszukiwarce na nowe URL-e zamiast tworzyć duplikaty i błędy 404.
- Bezpieczne, odwracalne wdrożenie — nic nie zmienia się w sklepie, dopóki sam nie aktywujesz silnika; wcześniej wszystko budujesz i sprawdzasz w tle, a wycofanie jest tak samo etapowe jak wdrożenie.
- Zgodność z innymi modułami bez ich przerabiania — nakładka na klasę Link sprawia, że każdy moduł pobierający adresy przez standardowe API PrestaShop (feedy Google/Facebook, mapy witryny, moduły działające z crona i panelu) otrzymuje kanoniczne adresy automatycznie.
- Automatyczna obsługa konfliktów nazw — gdy dwa elementy mają identyczną nazwę, silnik sam nadaje czytelny przyrostek lub ścieżkę nadrzędną albo — jeśli tak ustawisz — czeka na Twoją decyzję; nic nie jest publikowane w ciemno.
- Ochrona istniejących podstron — moduł automatycznie wykrywa i rezerwuje adresy zajęte przez sam PrestaShop oraz inne moduły (koszyk, kontakt, mapa strony), więc czysty adres produktu nigdy nie przejmie istniejącej strony.
- Panel zrozumiały dla laika — pulpit z przewodnikiem krok po kroku, opis przy każdej opcji, opisy stanu na każdej zakładce oraz komunikaty diagnostyczne, które mówią wprost, co i gdzie kliknąć, łącznie z przyciskami naprawczymi jednego kliknięcia.
- Architektura fail-closed — przy jakimkolwiek błędzie (uszkodzony rejestr, awaria pamięci podręcznej, konflikt z inną modyfikacją) sklep natychmiast wraca do adresów natywnych, zamiast pokazywać klientom błędy.
Funkcjonalności szczegółowo
Wzorce i budowa adresów
- Osobny wzorzec adresu dla każdego typu treści (produkty, kategorie, strony CMS, kategorie CMS, producenci, dostawcy, załączniki) w każdym języku i sklepie.
- Tokeny we wzorcach: przyjazna nazwa, pełna ścieżka kategorii, kategoria nadrzędna, producent, dostawca, referencja, prefiks języka i inne — zależnie od typu treści.
- Globalna polityka ścieżek: małe litery, wyłącznie znaki ASCII, końcowy ukośnik, limity długości członu i całej ścieżki, kontrola slugów złożonych z samych cyfr — z możliwością nadpisania per wzorzec.
- Wzorce bez stałego prefiksu (adresy bezpośrednio w katalogu głównym) dla PrestaShop 8.1.2 i nowszych, zawsze weryfikowane kontrolą wstępną.
- Polityka adresów kombinacji produktu: jeden wspólny adres kanoniczny dla wszystkich wariantów (wraz z usuwaniem kotwicy kombinacji po znaku #) albo zachowanie funkcjonalnego parametru wariantu.
Etapowe wdrożenie i diagnostyka
- Pięć trybów silnika: wyłączony, tylko obserwacja, tryb równoległy (stare adresy już przekierowują, sklep pokazuje natywne linki), aktywny oraz awaryjny „aktywny z natywnym fallbackiem".
- Kontrola wstępna (preflight) blokująca aktywację do czasu spełnienia wszystkich warunków: kompletny rejestr, świeża walidacja, rozwiązane kolizje, zakończone zadania, poprawny schemat bazy, zarejestrowane hooki, brak konfliktów wzorców.
- Komunikaty diagnostyczne wskazujące dokładną przyczynę i miejsce naprawy, z przyciskami, które jednym kliknięciem kolejkują brakujące przebudowy lub walidacje dla dokładnie tych zakresów, których dotyczy problem.
- Tabela pokrycia pokazująca dla każdego języka i typu treści, ile elementów ma już czysty adres, oraz raport integralności rejestru.
- Chronione przejścia między trybami — z trybu aktywnego nie da się przypadkowo przeskoczyć do wyłączonego z pominięciem weryfikacji.
Przekierowania, aliasy i ochrona SEO
- Automatyczne trwałe przekierowania natywnych adresów z ID na adresy kanoniczne (301 lub 308 do wyboru), z pominięciem stron listingu z parametrami sortowania i filtrów.
- Historia adresów: każda zmiana adresu kanonicznego zostawia po sobie działające przekierowanie, więc zakładki, reklamy i wyniki wyszukiwania nigdy nie prowadzą donikąd.
- Aliasy ręczne i importowane z celem w postaci obiektu sklepu, dowolnego adresu URL (z polityką bezpieczeństwa hostów: tylko bieżący sklep, lista dozwolonych domen HTTPS lub dowolny HTTPS) albo odpowiedzi 410/404.
- Kody odpowiedzi dla aliasów: 301, 302, 307, 308 oraz 404 i 410; usunięte obiekty zwracają do wyboru 410 Gone (szybsze wycofanie z indeksu) lub 404.
- Przekierowania zachowują parametry kampanii (utm_source, utm_medium, utm_campaign, utm_term, utm_content), identyfikatory kliknięć reklam (gclid, fbclid, msclkid) oraz zdefiniowaną listę parametrów funkcjonalnych.
- Normalizacja żądań: warianty adresu różniące się wielkością liter czy końcowym ukośnikiem są przekierowywane na jedną formę kanoniczną, bez duplikatów treści.
- Opcjonalne statystyki użycia przekierowań z próbkowaniem — widzisz, czy ktokolwiek nadal korzysta ze starych linków.
Zgodność i integracje
- Nakładka (override) na klasę Link: wszystkie moduły korzystające ze standardowego API adresów PrestaShop — w tym generatory feedów produktowych i map witryny działające z panelu lub crona — otrzymują adresy kanoniczne bez żadnych zmian w ich kodzie, z automatycznym powrotem do adresu natywnego, gdy czysty adres nie jest dostępny.
- Publiczne API dla programistów: pojedyncze i wsadowe pobieranie adresów kanonicznych (z preładowaniem rejestru pod generatory map witryny) oraz hooki pozwalające innym modułom rezerwować własne ścieżki i reagować na zmiany tras.
- Pełne wsparcie multistore (konfiguracja, wzorce i rejestr per sklep) oraz wielu języków; w starszych wersjach PrestaShop, gdzie rdzeń tego wymaga, moduł pilnuje identycznych wzorców między językami.
- Zgodność: PrestaShop 1.7.x–9.x, składnia PHP 7.0–8.5 (w granicach wymagań używanego rdzenia), MySQL 5.6+/MariaDB 10.x, Apache i Nginx, sklepy w podkatalogu — bez Composera i bibliotek zewnętrznych.
Automatyzacja, zadania i wydajność
- Automatyczna aktualizacja: dodanie, zmiana nazwy lub usunięcie produktu, kategorii czy strony samo odświeża adres i kolejkuje potrzebne przebudowy, łącznie z zależnościami (zmiana kategorii odświeża produkty, zmiana produktu — załączniki).
- System zadań w tle: skanowanie, podgląd (bez zapisu), przebudowa, walidacja, rozgrzewanie pamięci podręcznej, import, eksport i porządkowanie — wykonywane w konfigurowalnych porcjach, z pauzą, wznowieniem, anulowaniem i czyszczeniem całej kolejki jednym przyciskiem.
- Cron jednym linkiem: gotowy do skopiowania adres z tajnym tokenem (sekcja Cron w panelu, wraz z instrukcją i linijką do crontaba) przetwarza kolejkę automatycznie; wywołania nakładające się są blokowane; dostępny jest też interfejs CLI.
- Fragmentowana plikowa pamięć podręczna tras (konfigurowalny rozmiar fragmentu i czas ważności) z fallbackiem do bazy danych — rozwiązywanie adresów nie obciąża bazy przy każdej odsłonie.
- Dziennik audytu zmian adresów z konfigurowalną retencją oraz automatyczne porządkowanie zakończonych zadań i wygasłych wpisów.
- Import aliasów z pliku CSV z osobnym podglądem i walidacją przed zapisem (do 500 wierszy na plik, zapis atomowy) oraz eksport ustawień, tras, aliasów, rezerwacji, kolizji i diagnostyki do JSON/CSV — bez sekretów i danych klientów.
Panel administracyjny i bezpieczeństwo
- Czytelny panel z pulpitem (metryki rejestru), zwijanym przewodnikiem „Jak zacząć — krok po kroku" zapamiętującym swój stan, opisem stanu konfiguracji na każdej zakładce i opisami przy każdej opcji.
- Listy ścieżek, aliasów, kolizji i zadań ze standardowym filtrowaniem PrestaShop: język i typ obiektu jako listy wyboru, ID, ścieżka i slug jako pola tekstowe, z natywną paginacją.
- Uprawnienia zgodne z profilami pracowników PrestaShop (podgląd, edycja, usuwanie) egzekwowane w panelu i w każdej akcji AJAX.
- Zabezpieczenia: tokeny i podpisy żądań administracyjnych, weryfikacja pochodzenia żądań, porównania kluczy odporne na ataki czasowe, tajny klucz operacyjny crona per sklep, twarda normalizacja ścieżek odrzucająca znaki sterujące i podwójne kodowanie.
- Niezawodność: transakcyjna instalacja z automatycznym wycofaniem i przywróceniem wcześniejszej konfiguracji przy błędzie, blokada deinstalacji przy aktywnym routingu, trwałe znaczniki awarii wymuszające bezpieczny tryb po krytycznym błędzie oraz pełne sprzątanie tabel i konfiguracji przy odinstalowaniu.
Wymagania
- PrestaShop 1.7.0–9.x z włączonymi przyjaznymi adresami URL (Parametry sklepu → Ruch i SEO).
- PHP 7.0–8.5 (wersja wspierana przez używany rdzeń PrestaShop), MySQL 5.6+ lub MariaDB 10.x.
- Brak dodatkowych zależności: moduł nie używa Composera ani zewnętrznych bibliotek.