# Okruszki Pro: kompletny przewodnik

> Okruszki Pro (dfbreadcrumbpro) zastępuje podstawową ścieżkę nawigacyjną Twojego motywu wzbogaconą nawigacją: rozwijane menu kategorii siostrzanych na każdym poziomie, dane strukturalne JSON-LD BreadcrumbList zgodne z wytycznymi Google oraz inteligentna ścieżka dla…

- Strona: <https://www.datafirefly.com/pl/documentation/dfbreadcrumbpro/>
- Język: pl
- Zaktualizowano: 2026-07-30
- Inne języki: [fr](https://www.datafirefly.com/documentation/dfbreadcrumbpro/index.md), [en](https://www.datafirefly.com/en/documentation/dfbreadcrumbpro/index.md), [es](https://www.datafirefly.com/es/documentation/dfbreadcrumbpro/index.md), [de](https://www.datafirefly.com/de/documentation/dfbreadcrumbpro/index.md), [it](https://www.datafirefly.com/it/documentation/dfbreadcrumbpro/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfbreadcrumbpro/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfbreadcrumbpro/index.md)
- Indeks: <https://www.datafirefly.com/pl/documentation/llms.txt>

Okruszki Pro (`dfbreadcrumbpro`) zastępuje podstawową ścieżkę nawigacyjną Twojego motywu wzbogaconą nawigacją: rozwijane menu kategorii siostrzanych na każdym poziomie, dane strukturalne JSON-LD BreadcrumbList zgodne z wytycznymi Google oraz inteligentna ścieżka dla produktów należących do kilku kategorii.

## Instalacja

1. Przejdź do **Moduły > Menedżer modułów > Zainstaluj moduł**.
2. Wgraj archiwum `dfbreadcrumbpro.zip` i kliknij **Zainstaluj**.
3. Moduł automatycznie rejestruje się na hookach `displayHeader`, `displayWrapperTop` i `actionFrontControllerSetMedia`. Żadne dodatkowe działanie nie jest potrzebne.

Moduł nie tworzy żadnej tabeli SQL i nie wykonuje żadnego override: deinstalacja po prostu usuwa jego klucze konfiguracji.

Kompatybilność: PrestaShop 8.0 do 9.x, PHP 7.4 do 8.3, multisklep i wielojęzyczność.

## Konfiguracja

Otwórz **Moduły > Menedżer modułów**, wyszukaj „Okruszki Pro" i kliknij **Konfiguruj**. Dostępne są następujące opcje:

- **Zastąp okruszki motywu** (włączone domyślnie): ukrywa w CSS ścieżkę renderowaną przez motyw (klasy `.breadcrumb` i `.breadcrumb-wrapper`), aby uniknąć wizualnego duplikatu.
- **Włącz rozwijane menu** (włączone domyślnie): pokazuje kategorie siostrzane w rozwijanym menu na każdym poziomie ścieżki.
- **Pokaż podkategorie na ostatnim poziomie** (wyłączone domyślnie): na stronach kategorii ostatnie menu wymienia podkategorie bieżącej kategorii zamiast jej kategorii siostrzanych. Jeśli kategoria nie ma dzieci, moduł automatycznie wraca do kategorii siostrzanych.
- **Strategia ścieżki dla produktów**: patrz dedykowana sekcja poniżej.
- **Włącz JSON-LD BreadcrumbList** (włączone domyślnie): wstrzykuje dane strukturalne schema.org do znacznika head.
- **Pokaż link Strona główna** (włączone domyślnie): pierwszy element ścieżki wskazujący stronę główną.
- **Separator**: znak wyświetlany między poziomami (domyślnie `›`, maksymalnie 8 znaków).
- **Maksymalna liczba elementów per menu**: limit kategorii wymienianych w każdym rozwijanym menu (domyślnie 15, od 1 do 50).

## Strategie ścieżki produktu

Gdy produkt należy do kilku kategorii, moduł musi wybrać, którą ścieżkę wyświetlić. Proponowane są trzy strategie:

### Kategoria domyślna

Ścieżka używa kategorii domyślnej produktu (`id_category_default`), czyli klasycznego zachowania PrestaShop. Jeśli ta kategoria jest wyłączona lub niepowiązana z bieżącym sklepem, moduł automatycznie przechodzi na kategorię najgłębszą.

### Kategoria najgłębsza

Ścieżka używa najgłębszej aktywnej kategorii (największy `level_depth`) spośród kategorii produktu. To najbardziej specyficzna ścieżka, zwykle najkorzystniejsza dla SEO, bo maksymalizuje liczbę poziomów i słów kluczowych w ścieżce oraz w JSON-LD.

### Kontekstowa (zalecana, domyślna)

Moduł zapamiętuje ostatnią kategorię odwiedzoną przez klienta w cookie (`dfbcp_last_cat`). Na karcie produktu, jeśli produkt należy do tej kategorii, ścieżka pokazuje tę drogę: nawigacja odzwierciedla rzeczywistą trasę odwiedzającego. W przeciwnym razie moduł przechodzi na kategorię najgłębszą.

Tryb kontekstowy opiera się na cookie odwiedzającego. Jeśli sklep stoi za bardzo agresywnym cache pełnostronicowym (Varnish bez wariacji po cookies, CDN w trybie pełnego cache), cookie może zostać zignorowane: wybierz wtedy strategię „Kategoria najgłębsza".

## Rozwijane menu

Każdy poziom ścieżki odpowiadający kategorii wyświetla przycisk caret. Zachowanie:

- **Desktop**: otwieranie po najechaniu na poziom lub kliknięciu careta.
- **Mobile**: otwieranie po tapnięciu careta, ścieżka przewijana poziomo na małych ekranach.
- **Zamykanie**: kliknięcie poza ścieżką lub klawisz Escape.
- **Dostępność**: atrybuty `aria-haspopup`, `aria-expanded` i `aria-current`, pełna nawigacja klawiaturą.
- **Ochrona przed wychodzeniem poza ekran**: menu automatycznie zmieniają pozycję, aby nigdy nie wyjść poza ekran.

Listy kategorii siostrzanych są cache'owane per żądanie i respektują bieżący język oraz sklep. Aktywna kategoria jest wyróżniona w menu.

## JSON-LD BreadcrumbList

Moduł wstrzykuje do znacznika head skrypt `application/ld+json` typu `BreadcrumbList`:

- pozycje numerowane od 1;
- nazwa i URL dla każdego poziomu;
- ostatni element (bieżąca strona) celowo **bez URL**, zgodnie z rekomendacjami Google;
- nigdy nie emitowany, gdy ścieżka ma mniej niż dwa poziomy.

Poprawność znaczników możesz sprawdzić [testem wyników rozszerzonych Google](https://search.google.com/test/rich-results).

Jeśli Twój motyw generuje już własny JSON-LD BreadcrumbList, oba znaczniki będą współistnieć, a Search Console może zgłaszać duplikaty. Wyłącz albo znacznik motywu, albo opcję JSON-LD modułu.

## Pokrywane strony

- **Kategorie**: pełna ścieżka od korzenia katalogu.
- **Karty produktów**: ścieżka kategorii według wybranej strategii, produkt jako ostatni poziom.
- **Strony CMS**: drzewo kategorii CMS, a następnie tytuł strony.
- **Marki i dostawcy**: strona listy, potem strona szczegółowa.
- **Pozostałe strony** (kontakt, promocje, mapa strony itd.): generyczny fallback na meta tytuł strony.
- **Strona główna**: żadna ścieżka nie jest wyświetlana.

## Multisklep i wielojęzyczność

Wszystkie zapytania SQL respektują powiązania bieżącego sklepu (kontekst multisklepu) oraz język odwiedzającego: nazwy kategorii, przepisane adresy URL i etykiety są rozwiązywane we właściwym języku. Francuskie tłumaczenie zaplecza jest dołączone; pozostałe języki tłumaczy się przez **Międzynarodowy > Tłumaczenia > Tłumaczenia zainstalowanych modułów**.

## Rozwiązywanie problemów

### Ścieżka się nie wyświetla

Sprawdź, czy Twój motyw udostępnia hook `displayWrapperTop` (obecny w motywie Classic i niemal wszystkich motywach z rynku). Jeśli nie, podepnij moduł do równoważnego hooka wyświetlania przez **Wygląd > Pozycje**.

### Pojawiają się dwie ścieżki nawigacyjne

Opcja „Zastąp okruszki motywu" jest wyłączona albo motyw używa niestandardowych klas CSS. Włącz opcję ponownie albo dodaj regułę CSS celującą w kontener ścieżki Twojego motywu.

### Tryb kontekstowy zawsze pokazuje tę samą ścieżkę

Cache pełnostronicowy prawdopodobnie ignoruje cookie `dfbcp_last_cat`. Przełącz na strategię „Kategoria najgłębsza" albo wyklucz to cookie z klucza cache.

### Rozwijane menu jest puste na jakimś poziomie

Kategoria nie ma aktywnej kategorii siostrzanej powiązanej z bieżącym sklepem: caret po prostu nie jest wtedy wyświetlany.

Po każdej zmianie konfiguracji pamiętaj o wyczyszczeniu cache PrestaShop (**Zaawansowane > Wydajność**), aby od razu zobaczyć zmiany na froncie.

## Historia wersji

- **1.0.0** (16.07.2026): Pierwsza publikacja: rozwijane menu kategorii siostrzanych, JSON-LD BreadcrumbList, strategie domyślna / najgłębsza / kontekstowa, pokrycie kategorii, produktów, CMS, marek i dostawców, multisklep i wielojęzyczność.
