DataFirefly Tabela rozmiarów: dokumentacja
Modułowa tabela rozmiarów, interaktywny kalkulator, dedykowana strona SEO i opinie po zakupie dla PrestaShop 8 i 9.
Przegląd
DataFirefly Tabela rozmiarów dodaje do twojego sklepu PrestaShop kompletny system modułowych tabel rozmiarów przypisywanych per kategoria, producent albo produkt, z tabelami przeliczeń EU/US/UK/FR/JP, interaktywnym kalkulatorem rekomendacji rozmiaru, dedykowaną indeksowalną stroną SEO per kategoria oraz widgetem opinii po zakupie ze zbiorczym wskaźnikiem odchylenia rozmiarówki.
Moduł celuje w sklepy odzieżowe i obuwnicze, gdzie ponad 20% zwrotów wynika z problemu z rozmiarem. Zamienia to tarcie w spokojną ścieżkę zakupową: klient automatycznie widzi właściwą tabelę, może wpisać swoje wymiary i dostać spersonalizowaną rekomendację, a ty zbierasz konkretne opinie, które pozwalają wykrywać źle wyskalowane produkty.
Zgodność
- PrestaShop 8.0.x, 8.1.x, 8.2.x, 9.0.x
- PHP 8.1, 8.2, 8.3
- Multisklep (wszystkie przypisania są ograniczone zakresem
id_shop) - Polylang FR/EN/ES/DE gotowe od ręki
- Szablony classic, hummingbird oraz szablony własne (7 różnych miejsc wyświetlania)
Instalacja
- Wgraj ZIP
dfsizeguide.zipprzez Moduły → Menedżer modułów → Wgraj moduł. - Kliknij Instaluj. Cztery gotowe tabele (odzież damska, odzież męska, obuwie damskie, obuwie męskie) są tworzone automatycznie w 4 językach, a domyślne przypisanie powstaje na tabeli odzieży damskiej.
- Zaraz po instalacji zakładka „Tabela rozmiarów” pojawia się na wszystkich kartach produktu, bez dodatkowej konfiguracji.
- Przejdź do Moduły → DataFirefly Tabela rozmiarów → Konfiguruj, aby dostosować miejsca wyświetlania, domyślną jednostkę i włączone funkcje.
Kluczowe pojęcia
Czteropoziomowy mechanizm wyboru tabeli
Kiedy klient wchodzi na kartę produktu, moduł szuka tabeli do wyświetlenia, schodząc po ściśle określonym priorytecie:
- Produkt: jeśli przypisałeś tabelę wprost do tego konkretnego produktu, wygrywa ona.
- Producent: w przeciwnym razie tabela przypisana do marki produktu.
- Kategoria: w przeciwnym razie pierwsza kategoria produktu, która ma tabelę, zaczynając od najgłębszej, z poszanowaniem szczegółowości.
- Domyślna: w ostateczności tabela oznaczona jako globalny fallback.
Ta hierarchia pozwala utrzymywać jedną tabelę per marka albo per dział bez ruszania pojedynczych kart produktu, zachowując przy tym możliwość punktowego nadpisania.
Typy kolumn
Każda tabela składa się z kolumn określonego typu:
- Kolumna „rozmiar”: jedna wartość tekstowa na wiersz (S, M, 38, XL). Używana do przeliczeń międzynarodowych (EU, US, UK, FR, JP).
- Kolumna „wymiar”: liczbowy zakres min/max na wiersz (na przykład obwód klatki piersiowej 88-92 cm). Używana do wskazania wymiarów odpowiadających każdemu rozmiarowi.
Interaktywny kalkulator opiera się wyłącznie na kolumnach „wymiar” przy ustalaniu rekomendowanego rozmiaru.
Konfiguracja
Miejsca wyświetlania na karcie produktu
Moduł udostępnia 7 miejsc włączanych niezależnie w Konfiguruj → Miejsca na karcie produktu:
- Zakładka produktu (włączona domyślnie, zalecana): hook
displayProductExtraContent, dodaje osobną zakładkę obok „Opisu” i „Szczegółów”. Działa w niemal wszystkich szablonach PS 1.7+. - Pod ceną: hook
displayProductPriceBlock(typafter_price), renderuje kompaktowy link tuż pod ceną. - Przy przycisku „Dodaj do koszyka”: hook
displayProductActions, renderuje kompaktowy przycisk. - Pod informacjami o produkcie: hook
displayProductAdditionalInfo, renderuje wyróżniony przycisk. - W bloku zaufania: hook
displayReassurance, wpasowuje się wizualnie w twoje pozostałe argumenty (dostawa, zwroty). - Po zdjęciach produktu: hook
displayAfterProductThumbs, renderuje kompaktowy przycisk tuż pod galerią. - Na dole strony produktu: hook
displayFooterProduct, renderuje wyróżniony przycisk w stopce.
Możesz włączyć kilka miejsc równolegle: modal tabeli jest tworzony w DOM tylko raz (zabezpieczenie przed duplikatem), a dodatkowe przyciski otwierają ten sam modal.
Zakładka produktu to jedyne miejsce, które renderuje tabelę inline. Pozostałych 6 miejsc renderuje przycisk otwierający modal.
Ustawienia ogólne
- Domyślna jednostka: centymetry albo cale. Klient może przełączać w locie, preferencja jest uwzględniana w obliczeniach.
- Interaktywny kalkulator: włącza wpisywanie wymiarów i rekomendację rozmiaru (włączony domyślnie).
- Opinie klientów po zakupie: włącza widget pytający klienta, czy rozmiar był odpowiedni (włączony domyślnie).
- Dane strukturalne JSON-LD: włącza wstrzykiwanie znaczników Schema.org poprawiających widoczność w wyszukiwarce (włączone domyślnie).
- Slug strony SEO: prefiks adresu dedykowanych stron z tabelami (domyślnie
size-guide, do przetłumaczenia natabela-rozmiarow, jeśli chcesz polski adres).
Tworzenie i edycja tabeli
Menu Moduły → Tabele rozmiarów → Tabele. Kliknij „Dodaj”, aby utworzyć nową tabelę, albo ikonę ołówka, aby edytować istniejącą.
Pola tabeli
- Kod wewnętrzny: unikalny identyfikator techniczny (na przykład
damskie-sukienki-2026). Używany w adresach SEO i w logach. - Typ: odzież góra, odzież dół, sukienka, obuwie albo własny.
- Nazwa: wielojęzyczna etykieta pokazywana klientom (tytuł zakładki, tytuł modala, h1 strony SEO).
- Wstęp (HTML): wielojęzyczna treść wyświetlana nad tabelą.
- Instrukcja pomiaru (HTML): zwijana ramka wyjaśniająca, jak wykonać każdy pomiar.
- Stopka (HTML): wielojęzyczna treść pod tabelą (zastrzeżenie, link do polityki zwrotów i tak dalej).
- Meta title i meta description: dla dedykowanej strony SEO.
- Aktywna: przełącznik włącz/wyłącz. Nieaktywna tabela nigdy nie jest serwowana, nawet jeśli jest przypisana.
Edycja tabeli
Pod formularzem tabeli edytor wizualny pozwala zbudować siatkę:
- Kliknij Kolumna rozmiaru, aby dodać kolumnę tekstową. Wprowadź kod (na przykład
eu,intl) i wielojęzyczną etykietę. - Kliknij Kolumna wymiaru, aby dodać kolumnę liczbową. Wprowadź kod (na przykład
chest_cm) i jednostkę (cm, cale, mm). - Kliknij Wiersz, aby dodać wiersz. Uzupełnij komórki: zwykły tekst dla kolumn „rozmiar”, wartości min/max dla kolumn „wymiar”.
- Kliknij Zapisz. Zapis odbywa się w atomowej transakcji SQL: albo zapisuje się wszystko, albo nic.
Przypisywanie tabeli
Menu Moduły → Tabele rozmiarów → Przypisania.
- Wybierz tabelę do przypisania z listy.
- Wybierz typ celu: Domyślny (globalny fallback), Kategoria, Producent albo Produkt.
- Zależnie od typu pojawi się drugie pole do wskazania kategorii (w drzewie z wcięciami), marki (lista rozwijana) albo ID produktu (wpis bezpośredni).
- Kliknij Dodaj / Aktualizuj. Jeśli przypisanie dla tego celu już istnieje, zostaje nadpisane (upsert).
W multisklepie wszystkie przypisania są ograniczone zakresem sklepu. Możesz mieć inną tabelę dla tej samej kategorii w dwóch sklepach tej samej grupy.
Kalkulator rozmiaru
Kalkulator pojawia się pod tabelą, wyłącznie jeśli tabela ma co najmniej jedną kolumnę „wymiar”.
Algorytm punktacji
Klient wpisuje swoje wymiary w pola (jedno pole na kolumnę „wymiar”). Po wysłaniu:
- Wartości są normalizowane do centymetrów (automatyczne przeliczenie, jeśli użytkownik wybrał cale: razy 2,54).
- Dla każdego wiersza tabeli moduł liczy punktację: +2 punkty, jeśli wymiar klienta mieści się dokładnie w zakresie min/max komórki, +1 punkt, jeśli jest blisko (w granicach ±5% zakresu), 0 punktów w pozostałych przypadkach.
- Wiersz z najwyższą punktacją zostaje zwycięzcą.
- Przy remisie wybierany jest wiersz, którego zakresy są najlepiej wyśrodkowane na wartościach klienta.
- Rekomendowany rozmiar jest pobierany w pierwszej kolejności z kolumny
eu, następniefr,intl,uk,usijp.
Informacja zwrotna dla użytkownika
Kalkulator pokazuje rekomendowany rozmiar z procentowym wskaźnikiem pewności, trzy najlepsze kandydatury wraz z ich punktacją, podświetlenie rekomendowanego wiersza w tabeli powyżej oraz listę wymiarów, które nie pasują do żadnego wiersza (z ostrzeżeniem).
Opinie klientów po zakupie
Widget „Czy rozmiar był odpowiedni?” pojawia się na dole karty produktu z pięcioma odpowiedziami: za mały, nieco za mały, idealny, nieco za duży, za duży. Renderuje się wyłącznie przy spełnieniu następujących warunków:
- Klient jest zalogowany (aktywna sesja).
- Klient faktycznie kupił ten produkt (złączenie z
ordersiorder_detail, poprawny status). - Klient nie wystawił jeszcze opinii o tym produkcie.
Kontrola dostępu działa w całości po stronie serwera, bez ryzyka obejścia.
Pulpit opinii
Menu Moduły → Tabele rozmiarów → Opinie klientów. Podsumowanie nad tabelą pokazuje liczbę odpowiedzi w każdej z pięciu kategorii. Poniżej znajduje się pełna lista opinii per produkt, z ID klienta, kupionym rozmiarem i datą.
Wskaźnik odchylenia
Dla każdego produktu z co najmniej 3 opiniami liczony jest wskaźnik odchylenia:
wskaznik = ((za_duzy × 2 + nieco_za_duzy) − (za_maly × 2 + nieco_za_maly)) / suma
Wartość dodatnia oznacza, że produkt systematycznie mierzy dużo (do przeskalowania o jeden stopień w dół). Wartość ujemna oznacza, że mierzy mało (do przeskalowania o jeden stopień w górę). Wartość bliska zeru oznacza poprawną rozmiarówkę.
Dedykowana strona SEO
Moduł udostępnia publiczną trasę per kategoria: /{slug}/{category-link-rewrite}, gdzie {slug} to skonfigurowany prefiks (domyślnie size-guide).
Przykład: https://twoj-sklep.pl/size-guide/sukienki-damskie
Strona zawiera okruszki nawigacyjne, nagłówek h1 tabeli, wstęp, instrukcję pomiaru i pełną tabelę, kalkulator (jeśli włączony), stopkę HTML tabeli oraz znaczniki JSON-LD WebPage Schema.org, które pomagają Google zrozumieć, że strona jest poradnikiem praktycznym.
Meta title i meta description pochodzą z pól SEO tabeli. Ustaw je starannie, żeby przechwycić zapytania z długiego ogona w rodzaju „tabela rozmiarów sukienki damskie”.
Wielojęzyczność i multisklep
Moduł jest wielojęzyczny na poziomie tabel (nazwa, wstęp, instrukcja, stopka, meta), na poziomie etykiet kolumn oraz na poziomie etykiet Polylang w adresach URL.
W multisklepie każde przypisanie (tabela do celu) jest ograniczone zakresem id_shop. Możesz więc wyświetlać tabelę A dla kategorii „Obuwie” w sklepie polskim, a tabelę B dla tej samej kategorii w sklepie niemieckim.
Struktura techniczna
Baza danych
Tabele z prefiksem dfsg_: dfsg_guide, dfsg_guide_lang, dfsg_column, dfsg_column_lang, dfsg_row, dfsg_cell, dfsg_assignment i dfsg_feedback. Wszystkie są czysto usuwane przy deinstalacji.
Wykorzystywane hooki
actionFrontControllerSetMedia: wstrzyknięcie CSS i JS na fronciedisplayBackOfficeHeader: wstrzyknięcie CSS i JS w paneludisplayProductExtraContent: zakładka na karcie produktu (zalecana)displayProductPriceBlock,displayProductActions,displayProductAdditionalInfo,displayReassurance,displayAfterProductThumbs,displayFooterProduct: miejsca alternatywnedisplayHeader: wstrzyknięcie JSON-LD na kartach produktuactionValidateOrder: wyzwalacz pod ewentualne przypomnienia (v2)moduleRoutes: dedykowana strona SEO
FAQ
Tabela nie pokazuje się na mojej karcie produktu, co zrobić?
Sprawdź najpierw w Konfiguruj → Miejsca na karcie produktu, czy włączone jest co najmniej jedno miejsce (domyślnie Zakładka produktu). Jeśli twój własny szablon nie renderuje natywnych hooków PrestaShop, włącz kilka miejsc równolegle: co najmniej jedno z 7 powinno zadziałać. Sprawdź też, czy istnieje co najmniej jedna aktywna tabela i domyślne przypisanie w Tabele rozmiarów → Przypisania.
Czy mogę zaimportować tabele z pliku CSV?
Nie w wersji 1.0. Edytor wizualny pozwala budować tabele na bieżąco. Import CSV jest przewidziany w wersji 1.1.
Czy kalkulator działa bez JavaScriptu?
Nie, kalkulator jest interaktywny i potrzebuje JavaScriptu do wywołania AJAX do serwera. Statyczna tabela wyświetla się natomiast bez zarzutu bez JS, co chroni dostępność i widoczność w wyszukiwarce.
Czy istnieje ryzyko zdublowanych znaczników JSON-LD?
Nie. Hook displayHeader emituje jeden skrypt JSON-LD na stronę produktu, a dedykowana strona SEO ma własne, odrębne znaczniki WebPage. Walidator Schema.org od Google nie zgłasza żadnych duplikatów.
Czy moduł jest zgodny z migracją PrestaShop 8 na 9?
Tak. Moduł deklaruje ps_versions_compliancy od 8.0.0 do 9.99.99, korzysta z klas ObjectModel i HelperForm, które pozostają wspierane w PS 9, i nie używa żadnego przestarzałego API.
Jak usunąć wszystkie dane modułu?
Deinstalacja przez Menedżer modułów usuwa wszystkie tabele dfsg_* i wszystkie konfiguracje DFSG_*. W bazie nie zostaje żaden ślad.
Wsparcie
E-mail: support@datafirefly.com. Odpowiedź w ciągu 5 dni roboczych, po francusku albo angielsku.