1. Opis modułu
KS Pretty URLs to profesjonalny moduł dla PrestaShop 8.x, który usuwa identyfikatory numeryczne (ID) z adresów URL, tworząc czyste, przyjazne dla SEO linki.
https://sklep.pl/37-nasiona
https://sklep.pl/123-nawoz-azotowy.html
https://sklep.pl/content/5-regulamin
https://sklep.pl/nasiona
https://sklep.pl/nawoz-azotowy
https://sklep.pl/regulamin
2. Funkcjonalności
Obsługiwane typy encji
| Typ | Przed | Po |
|---|---|---|
| Kategorie | /37-nasiona |
/nasiona |
| Produkty | /123-produkt.html |
/produkt |
| Strony CMS | /content/5-regulamin |
/regulamin |
| Kategorie CMS | /content/category/2-info |
/info |
| Producenci | /manufacturer/8-bayer |
/brand/bayer |
| Dostawcy | /supplier/3-dostawca |
/supplier/dostawca |
| Blog (ETS Blog) | /blog/12-tytul |
/blog/tytul |
Kluczowe cechy
-
Automatyczne przekierowania 301 Stare URL-e z ID automatycznie przekierowują na nowe
-
Wielojęzyczność Osobne pretty URL-e dla każdego języka
-
Multishop Pełna obsługa wielu sklepów
-
Opcjonalne prefiksy Możliwość dodania prefiksów jak /c/, /p/
-
Panel zarządzania Edycja, usuwanie i regeneracja URL-i
-
Statystyki przekierowań Monitoring użycia starych linków
-
Automatyczna aktualizacja Nowe URL-e generowane przy zapisie encji
-
Obsługa konfliktów Automatyczne dodawanie sufiksów dla duplikatów
3. Wymagania systemowe
| Komponent | Minimalna wersja |
|---|---|
| PrestaShop | 8.0.0 |
| PHP | 8.1 |
| MySQL | 5.7 / MariaDB 10.3 |
Zgodność z modułami
4. Struktura plików
modules/ks_prettyurls/
├── ks_prettyurls.php # Główny plik modułu
├── config.xml # Konfiguracja XML
├── LICENSE.txt # Licencja
├── logo.png # Logo modułu (32x32)
├── index.php # Plik bezpieczeństwa
│
├── classes/
│ ├── KsPrettyUrlsManager.php # Klasa zarządzająca URL-ami
│ ├── KsTabManager.php # Klasa menu KamikStudio
│ └── index.php
│
├── controllers/
│ └── admin/
│ ├── AdminKsPrettyUrlsController.php
│ └── index.php
│
├── views/
│ ├── css/
│ │ ├── admin.css
│ │ └── index.php
│ └── templates/
│ └── admin/
│ └── index.php
│
├── sql/
│ └── index.php
│
├── translations/
│ └── index.php
│
└── upgrade/
└── index.php
override/classes/
├── Link.php # Override generowania linków
└── Dispatcher.php # Override routingu
5. Instalacja
Prześlij pliki modułu
# Przez SCP
scp -r ks_prettyurls/ user@server:/var/www/prestashop/modules/
# Lub przez FTP - prześlij folder ks_prettyurls do /modules/
Prześlij pliki override
scp Link.php user@server:/var/www/prestashop/override/classes/
scp Dispatcher.php user@server:/var/www/prestashop/override/classes/
Wyczyść cache klas
rm -f /var/www/prestashop/var/cache/prod/class_index.php
rm -f /var/www/prestashop/var/cache/dev/class_index.php
Zainstaluj moduł
Panel Admina → Moduły → Menedżer modułów → Wyszukaj "KS Pretty URLs" → Zainstaluj
Wyczyść cache PrestaShop
Panel Admina → Zaawansowane → Wydajność → Wyczyść cache
Wygeneruj URL-e
Panel Admina → KamikStudio → KS Pretty URLs → Konfiguruj → "Generuj wszystkie URL-e"
6. Konfiguracja
Dostęp do konfiguracji
Menu: KamikStudio → KS Pretty URLs → Konfiguruj
Lub: Moduły → KS Pretty URLs → Konfiguruj
Typy encji (włącz/wyłącz)
| Opcja | Domyślnie | Opis |
|---|---|---|
| Kategorie | ✅ | Usuwa ID z URL-i kategorii |
| Produkty | ✅ | Usuwa ID z URL-i produktów |
| Strony CMS | ✅ | Usuwa ID z URL-i stron CMS |
| Kategorie CMS | ✅ | Usuwa ID z URL-i kategorii CMS |
| Blog (ETS Blog) | ✅ | Usuwa ID z URL-i wpisów blogowych |
| Producenci | ✅ | Usuwa ID z URL-i producentów |
| Dostawcy | ❌ | Usuwa ID z URL-i dostawców |
Prefiksy URL (opcjonalne)
Prefiksy pozwalają uniknąć konfliktów URL-i między różnymi typami encji.
| Prefiks | Domyślnie | Z prefiksem | Bez prefiksu |
|---|---|---|---|
| Kategorie | (pusty) | /c/nasiona | /nasiona |
| Produkty | (pusty) | /p/nawoz | /nawoz |
| CMS | (pusty) | /info/regulamin | /regulamin |
| Blog | blog | /blog/tytul | /tytul |
Ustawienia przekierowań
| Opcja | Domyślnie | Opis |
|---|---|---|
| Automatyczne przekierowania | ✅ Tak | Stare URL-e przekierowują na nowe |
| Typ przekierowania | 301 | 301 = permanentne (SEO), 302 = tymczasowe |
7. Użytkowanie
Panel zarządzania URL-ami
Menu: KamikStudio → KS Pretty URLs
| Akcja | Opis |
|---|---|
| Lista URL-i | Tabela wszystkich wygenerowanych pretty URL-i |
| Edycja | Ręczna zmiana pretty URL dla encji |
| Usuwanie | Usunięcie pretty URL (encja wróci do standardowego URL) |
| Generuj kategorie | Wygeneruj URL-e tylko dla kategorii |
| Generuj produkty | Wygeneruj URL-e tylko dla produktów |
| Regeneruj wszystko | Wygeneruj URL-e dla wszystkich encji |
Automatyczne generowanie
URL-e są generowane automatycznie gdy:
- Tworzysz nową kategorię/produkt/stronę CMS
- Edytujesz istniejącą encję i zmieniasz slug (link_rewrite)
Ręczna edycja URL-a
- Przejdź do listy URL-i
- Kliknij ikonę edycji przy wybranym wpisie
- Zmień pole "Pretty URL"
- Zapisz
8. Baza danych
Tabela: ps_ks_pretty_urls
Przechowuje mapowanie pretty URL → encja.
CREATE TABLE `ps_ks_pretty_urls` (
`id_pretty_url` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`entity_type` VARCHAR(50) NOT NULL,
`id_entity` INT(11) UNSIGNED NOT NULL,
`id_lang` INT(11) UNSIGNED NOT NULL,
`id_shop` INT(11) UNSIGNED NOT NULL,
`pretty_url` VARCHAR(255) NOT NULL,
`original_url` VARCHAR(255) NOT NULL,
`active` TINYINT(1) NOT NULL DEFAULT 1,
`date_add` DATETIME NOT NULL,
`date_upd` DATETIME NOT NULL,
PRIMARY KEY (`id_pretty_url`),
UNIQUE KEY `unique_pretty` (`pretty_url`, `id_lang`, `id_shop`),
UNIQUE KEY `unique_entity` (`entity_type`, `id_entity`, `id_lang`, `id_shop`)
);
Tabela: ps_ks_pretty_urls_redirects
Przechowuje przekierowania ze starych URL-i.
CREATE TABLE `ps_ks_pretty_urls_redirects` (
`id_redirect` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`old_url` VARCHAR(255) NOT NULL,
`new_url` VARCHAR(255) NOT NULL,
`id_lang` INT(11) UNSIGNED NOT NULL,
`id_shop` INT(11) UNSIGNED NOT NULL,
`redirect_type` SMALLINT(3) NOT NULL DEFAULT 301,
`hits` INT(11) UNSIGNED NOT NULL DEFAULT 0,
`last_hit` DATETIME DEFAULT NULL,
`active` TINYINT(1) NOT NULL DEFAULT 1,
`date_add` DATETIME NOT NULL,
PRIMARY KEY (`id_redirect`),
UNIQUE KEY `unique_old_url` (`old_url`, `id_lang`, `id_shop`)
);
9. Jak to działa
Generowanie URL-i
actionObjectCategoryUpdateAfterKsPrettyUrlsManager::generatePrettyUrl('category', 37)ps_ks_pretty_urls + przekierowanieGenerowanie linków (Frontend)
$this->context->link->getCategoryLink(37)Link::getCategoryLink()KsPrettyUrlsManager::getPrettyUrlByEntity('category', 37)https://sklep.pl/nasionaRozwiązywanie URL-i (Request)
https://sklep.pl/nasionaDispatcher::dispatch()ps_ks_pretty_urls: pretty_url='nasiona'11. Rozwiązywanie problemów
Strona 404 po włączeniu modułu
Przyczyna: Brak plików override lub nieaktualny cache klas.
Rozwiązanie:
# Sprawdź pliki override
ls -la override/classes/Link.php
ls -la override/classes/Dispatcher.php
# Usuń cache klas
rm -f var/cache/prod/class_index.php
rm -f var/cache/dev/class_index.php
Linki nadal zawierają ID
Przyczyna: Override Link.php nie działa.
Rozwiązanie:
// Sprawdź czy override jest załadowany (tymczasowo w index.php)
var_dump(get_parent_class('Link'));
// Powinno zwrócić: "LinkCore"
Duplikaty URL-i
Przyczyna: Dwie encje mają ten sam slug.
Rozwiązanie:
- Moduł automatycznie dodaje suffix:
nasiona,nasiona-2 - Lub użyj prefiksów:
/c/nasiona,/p/nasiona
Przekierowania nie działają
Przyczyna: Wyłączona opcja automatycznych przekierowań.
Rozwiązanie:
- Przejdź do konfiguracji modułu
- Włącz "Automatyczne przekierowania"
- Wybierz typ: 301
Zakładka KamikStudio nie pojawia się
Rozwiązanie:
cd ~/public_html/sklep && php -r "
require 'config/config.inc.php';
require 'modules/ks_prettyurls/classes/KsTabManager.php';
KsTabManager::installTab('ks_prettyurls', 'AdminKsPrettyUrls', 'KS Pretty URLs', 'link');
echo 'Gotowe!';
"
rm -f var/cache/prod/class_index.php
12. FAQ
Czy moduł wpływa na SEO?
Tak, pozytywnie. Czyste URL-e są lepiej indeksowane przez Google. Przekierowania 301 zachowują link juice ze starych adresów.
Czy muszę używać prefiksów?
Nie. Prefiksy są opcjonalne. Zostaw puste pola dla czystych URL-i jak /nasiona.
Co się stanie gdy odinstaluję moduł?
- Tabele bazy danych zostaną usunięte
- Przekierowania przestaną działać
- URL-e wrócą do standardowego formatu z ID
Zalecenie: Przed odinstalowaniem dodaj przekierowania w .htaccess
Czy moduł działa z cache'em?
Tak. Moduł jest kompatybilny z cache PrestaShop, Varnish, Cloudflare, Redis/Memcached.
Jak przenieść moduł na inny serwer?
- Skopiuj folder modułu
- Skopiuj pliki override
- Wyeksportuj tabele:
ps_ks_pretty_urls,ps_ks_pretty_urls_redirects - Zaimportuj na nowym serwerze
- Wyczyść cache
13. Licencja
Licencja Komercyjna KamikStudio
Udzielenie licencji
Licencja uprawnia do instalacji i użytkowania modułu na:
- 1 (jednej) domenie produkcyjnej
- Nieograniczonej liczbie domen deweloperskich/testowych/stagingowych
Ograniczenia
- Zabroniona jest odsprzedaż, dystrybucja lub udostępnianie modułu
- Zabronione jest usuwanie informacji o autorze
- Zabroniona jest dekompilacja i modyfikacja kodu źródłowego w celu powielenia
Wsparcie i aktualizacje
- 12 miesięcy bezpłatnych aktualizacji od daty zakupu
- Wsparcie techniczne przez email (czas reakcji do 48h)
14. Changelog
🎉 Pierwsza wersja produkcyjna
- ✅ Obsługa kategorii, produktów, CMS, blogów, producentów
- ✅ Automatyczne przekierowania 301/302
- ✅ Panel zarządzania w Back Office
- ✅ Wielojęzyczność i Multishop
- ✅ Opcjonalne prefiksy URL
- ✅ Statystyki przekierowań
- ✅ Integracja z menu KamikStudio
- ✅ Kompatybilność z PrestaShop 8.x i PHP 8.1+
15. Wsparcie
Kontakt
- kamikstudio.pl
- [email protected]
- +48 519 109 063
- ul. Rodzinna 1/39, 62-800 Kalisz
Zgłaszanie błędów
Przy zgłaszaniu problemu podaj:
- Wersję PrestaShop
- Wersję PHP
- Opis problemu
- Kroki do odtworzenia
- Logi błędów (jeśli są)
Płatne wsparcie
Oferujemy:
- Instalację i konfigurację modułu
- Dostosowanie do indywidualnych potrzeb
- Integrację z innymi modułami
- Rozwiązywanie problemów
Stawka: 200 zł netto / godzina