PS PrestaShop Średnio zaawansowany

DataFirefly Tabela rozmiarów: dokumentacja

Modułowa tabela rozmiarów, interaktywny kalkulator, dedykowana strona SEO i opinie po zakupie dla PrestaShop 8 i 9.

Zaktualizowano Wersja modułu 1.0.2

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

  1. Wgraj ZIP dfsizeguide.zip przez Moduły → Menedżer modułów → Wgraj moduł.
  2. 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.
  3. Zaraz po instalacji zakładka „Tabela rozmiarów” pojawia się na wszystkich kartach produktu, bez dodatkowej konfiguracji.
  4. 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:

  1. Produkt: jeśli przypisałeś tabelę wprost do tego konkretnego produktu, wygrywa ona.
  2. Producent: w przeciwnym razie tabela przypisana do marki produktu.
  3. Kategoria: w przeciwnym razie pierwsza kategoria produktu, która ma tabelę, zaczynając od najgłębszej, z poszanowaniem szczegółowości.
  4. 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 (typ after_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 na tabela-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ę:

  1. Kliknij Kolumna rozmiaru, aby dodać kolumnę tekstową. Wprowadź kod (na przykład eu, intl) i wielojęzyczną etykietę.
  2. Kliknij Kolumna wymiaru, aby dodać kolumnę liczbową. Wprowadź kod (na przykład chest_cm) i jednostkę (cm, cale, mm).
  3. Kliknij Wiersz, aby dodać wiersz. Uzupełnij komórki: zwykły tekst dla kolumn „rozmiar”, wartości min/max dla kolumn „wymiar”.
  4. Kliknij Zapisz. Zapis odbywa się w atomowej transakcji SQL: albo zapisuje się wszystko, albo nic.

Przypisywanie tabeli

Menu Moduły → Tabele rozmiarów → Przypisania.

  1. Wybierz tabelę do przypisania z listy.
  2. Wybierz typ celu: Domyślny (globalny fallback), Kategoria, Producent albo Produkt.
  3. 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).
  4. 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:

  1. Wartości są normalizowane do centymetrów (automatyczne przeliczenie, jeśli użytkownik wybrał cale: razy 2,54).
  2. 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.
  3. Wiersz z najwyższą punktacją zostaje zwycięzcą.
  4. Przy remisie wybierany jest wiersz, którego zakresy są najlepiej wyśrodkowane na wartościach klienta.
  5. Rekomendowany rozmiar jest pobierany w pierwszej kolejności z kolumny eu, następnie fr, intl, uk, us i jp.

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 orders i order_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 froncie
  • displayBackOfficeHeader: wstrzyknięcie CSS i JS w panelu
  • displayProductExtraContent: zakładka na karcie produktu (zalecana)
  • displayProductPriceBlock, displayProductActions, displayProductAdditionalInfo, displayReassurance, displayAfterProductThumbs, displayFooterProduct: miejsca alternatywne
  • displayHeader: wstrzyknięcie JSON-LD na kartach produktu
  • actionValidateOrder: 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.

Czy ta strona była pomocna?

Nadal utknąłeś? Napisz do wsparcia