# Kalkulator ilości według powierzchni i objętości: instalacja i konfiguracja

> Instalacja Zainstaluj moduł w Moduły > Menedżer modułów > Załaduj moduł, przesyłając plik ZIP, albo skopiuj folder dfsurfacecalculator do katalogu /modules/ sklepu i kliknij Zainstaluj. Podczas instalacji moduł tworzy trzy…

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

## Instalacja

Zainstaluj moduł w **Moduły > Menedżer modułów > Załaduj moduł**, przesyłając plik ZIP, albo skopiuj folder `dfsurfacecalculator` do katalogu `/modules/` sklepu i kliknij Zainstaluj.

Podczas instalacji moduł tworzy trzy tabele (ustawienia produktów, wartości dla kombinacji, obliczenia zapisane w koszykach), rejestruje swoje hooki i dodaje zakładkę **Kalkulator ilości** w menu Katalog. Przycisk Konfiguruj w menedżerze modułów otwiera tę samą stronę.

Dopóki żaden produkt nie jest skonfigurowany, kalkulator nie pojawia się na żadnej stronie produktu. Możesz więc zainstalować moduł w działającym sklepie bez natychmiastowej widocznej zmiany.

## Pięć typów obliczeń

- **Płytki i podłogi (m²)**: długość × szerokość każdego pomieszczenia lub znana powierzchnia. Zawartość jednostki to powierzchnia pokrywana przez jedną paczkę.
- **Farba (litry)**: długość × wysokość każdej ściany, liczba warstw, wydajność w m² na litr, odjęcie drzwi i okien. Zawartość jednostki to pojemność puszki.
- **Tapeta (rolki)**: szerokość i wysokość każdej ściany. Moduł liczy pasy, zaokrągla długość każdego pasa do raportu wzoru i oblicza liczbę pełnych pasów z rolki.
- **Objętość: beton, żwir, ziemia (m³)**: długość × szerokość × grubość w centymetrach lub znana objętość. Wynik jest podawany w m³ na jednostkę albo w workach, jeśli podasz gęstość materiału i wagę worka.
- **Długość: listwy przypodłogowe, profile (m)**: długość każdej ściany lub odcinka. Zawartość jednostki to długość jednej sztuki.

## Konfiguracja produktu

Otwórz stronę produktu, zakładka **Moduły**, blok **Kalkulator ilości**.

1. Zaznacz **Pokaż kalkulator dla tego produktu**.
2. Wybierz **Typ obliczenia** i jednostkę sprzedaży w polu **Sprzedawany jako** (paczka, opakowanie, puszka, wiadro, rolka, worek, sztuka, paleta lub jednostka). To jednostka widoczna dla klienta: „Potrzebujesz 12 paczek”.
3. Wpisz zawartość jednej jednostki. Etykieta pola zmienia się zależnie od typu: powierzchnia pokrywana przez jedną jednostkę, pojemność jednej puszki, rolki w jednostce, objętość jednej jednostki lub długość jednej sztuki.
4. Uzupełnij pola właściwe dla typu obliczenia (patrz niżej).
5. Kliknij **Zapisz ustawienia kalkulatora**. Ustawienia zapisują się też przyciskiem zapisu całej strony produktu.

### Farba

Podaj **Wydajność** w m² na litr, tak jak na puszce, oraz **Domyślnie proponowana liczba warstw**. Opcja **Pozwól klientowi odjąć drzwi i okna** dodaje dwa pola do kalkulatora; powierzchnię odejmowaną za drzwi i okno ustawia się w konfiguracji modułu (domyślnie 1,7 m² i 1,5 m²).

### Tapeta

Podaj **Szerokość rolki** w centymetrach, **Długość rolki** w metrach i **Raport wzoru** w centymetrach (0 lub puste dla tapety bez wzoru). Jeśli produkt jest sprzedawany na rolki, zostaw pole „Rolki w jednostce” puste. Każdy pas to wysokość ściany plus 10 cm na docięcie, zaokrąglona w górę do następnego raportu.

### Objętość sprzedawana w workach

Dla produktu sprzedawanego na wagę zostaw objętość jednostki pustą i podaj **Gęstość materiału** w kg/m³ oraz **Waga jednej jednostki** w kg. Moduł przelicza wtedy objętość na wagę, a następnie na liczbę worków. Wartości orientacyjne: żwir 1500 do 1700, piasek 1600, sucha mieszanka betonowa 2000.

### Własny zapas na docinki dla produktu

Pole **Domyślny zapas na docinki dla tego produktu** zastępuje wstępnie wybrany zapas tylko dla tego produktu. Zostaw je puste, aby użyć wartości modułu. Jeśli wpisana wartość nie należy do proponowanych opcji, zostaje dodana do opcji tego produktu.

## Wartości dla kombinacji i połączenie opakowań

Jeśli produkt ma kombinacje, pojawia się tabela **Wartości dla kombinacji**. Uzupełnij tylko kombinacje, których zawartość różni się od wartości produktu, na przykład puszkę 2,5 L i 10 L. Dla produktu sprzedawanego na wagę wartość to waga jednej jednostki w kg.

Jeśli kombinacje są wielkościami opakowań, zaznacz **Kombinacje to wielkości opakowań: proponuj najtańsze połączenie rozmiarów**. Pod wynikiem kalkulator pokazuje wtedy połączenie rozmiarów pokrywające zapotrzebowanie najniższą ceną, oszczędność względem wybranego rozmiaru oraz przycisk dodający wszystkie pozycje do koszyka. Wyszukiwanie obejmuje pięć rozmiarów z najlepszą ceną za jednostkę zawartości.

## Użycie cechy produktu

Jeśli katalog podaje już zawartość jednostki w cesze (na przykład „Powierzchnia paczki: 1,44”), wybierz ją w konfiguracji w polu **Cecha z zawartością jednostki**. Służy jako wartość domyślna, gdy pole produktu jest puste. Tak samo działa wydajność farby z **Cecha z wydajnością farby**. Moduł odczytuje pierwszą liczbę z wartości, z przecinkiem lub kropką.

## Masowa aktywacja według kategorii

Na stronie modułu blok **Masowe przypisanie według kategorii** włącza lub wyłącza kalkulator dla wszystkich produktów wybranych kategorii, z podkategoriami, jeśli pole jest zaznaczone. Wybierz typ obliczenia i jednostkę sprzedaży. Domyślnie produkty już skonfigurowane zachowują swoje ustawienia; zaznacz **Zmień także typ i jednostkę produktów już skonfigurowanych**, aby je nadpisać. Wpisane już wartości opakowań nigdy nie są usuwane.

Produkt włączony bez informacji o opakowaniu, ani w swoim polu, ani w wybranej cesze, pozostaje ukryty w sklepie. Widnieje ze statusem **Niekompletny** na liście skonfigurowanych produktów, z linkiem do jego strony.

## Produkty uzupełniające

W zakładce Moduły na stronie produktu blok **Produkty uzupełniające** przypisuje do 6 produktów obliczanych razem z produktem głównym: klej i fugę do płytek, grunt do farby, klej do tapet, piasek do betonu.

1. Wpisz co najmniej dwa znaki nazwy lub indeksu w polu **Dodaj produkt uzupełniający** i wybierz produkt lub kombinację z listy. Działają też strzałki i klawisz Enter.
2. Podaj **Zużycie** na jednostkę miary obliczenia: na m² dla płytek, farby i tapet, na m³ dla objętości, na metr dla długości.
3. Podaj **Zawartość jednej jednostki** produktu uzupełniającego, w tej samej jednostce co zużycie.
4. Zapisz ustawienia kalkulatora.

Proponowana ilość to wpisana przez klienta powierzchnia, objętość lub długość netto pomnożona przez zużycie, podzielona przez zawartość jednej jednostki i zaokrąglona w górę. Przykład: klej zużywany w ilości 5 kg na m² i sprzedawany w workach 25 kg ustawia się wartościami 5 i 25; dla 14,7 m² klient otrzymuje propozycję 3 worków. Aby uwzględnić straty, dolicz je do zużycia.

W sklepie produkty pojawiają się pod wynikiem, domyślnie zaznaczone, z ilością, ceną i sumą. Przycisk **Dodaj zaznaczone produkty do koszyka** dodaje je jednocześnie. Produkt niedostępny, gdy zamówienia bez stanu nie są dozwolone, jest wyszarzony i odznaczony. Produkty nieaktywne lub niedostępne do zamówienia nie są wyświetlane.

## Rabaty ilościowe i stan magazynowy

Szacowana cena uwzględnia rabaty ilościowe zdefiniowane w PrestaShop dla wybranej kombinacji, z adnotacją „Rabat ilościowy uwzględniony”. Reguły koszyka i koszty wysyłki nie są wliczone.

Jeśli zarządzanie stanami jest włączone, a obliczona ilość przekracza dostępny stan, klient widzi pozostały stan. Gdy zamówienia bez stanu nie są dozwolone, przycisk dodania do koszyka jest ukryty i zostaje tylko link **Użyj tej ilości**. Gdy są dozwolone, klient dowiaduje się, że reszta zostanie wysłana po uzupełnieniu zapasów. Połączenie opakowań nigdy nie proponuje więcej niż dostępny stan danego rozmiaru i respektuje minimalną ilość zamówienia każdej kombinacji.

## Statystyki

Strona modułu pokazuje blok **Wyniki kalkulatora** za ostatnie 30 dni i od instalacji: koszyki z produktem dodanym z kalkulatora, zatwierdzone zamówienia z tych koszyków, współczynnik konwersji oraz przychód netto z produktów obliczonych i uzupełniających, przeliczony na walutę domyślną. Tabela pokazuje pięć produktów o najwyższym przychodzie.

Liczone są tylko produkty dodane przyciskami kalkulatora, a opcja **Zapisz obliczenie z pozycją koszyka** musi być włączona, aby dane były zbierane.

## Ustawienia modułu

### Wyświetlanie

- **Pozycja na stronie produktu**: pod przyciskiem Dodaj do koszyka (hook `displayProductAdditionalInfo`), obok akcji produktu (`displayProductActions`) lub własny hook.
- **Kolor akcentu**: kolor przycisków, wyboru zapasu i wyniku.
- **Cena za m², litr, metr lub m³**: wyświetla „czyli 22,85 zł / m²” pod ceną, na stronie produktu i na listach produktów.
- **Zapisz obliczenie z pozycją koszyka**: zachowuje wymiary klienta dla koszyka i strony zamówienia w panelu.
- **Pokaż kalkulator zwinięty**: strona produktu pokazuje przycisk „Oblicz potrzebną ilość”, który otwiera kalkulator. Otwiera się sam, jeśli klient już wpisał wymiary, na przykład na stronie kalkulatora.
- **Odejmowana powierzchnia drzwi** i **Odejmowana powierzchnia okna** w m².

### Zapasy na docinki

Dla każdego typu obliczeń wpisz opcje proponowane klientowi, w procentach, oddzielone przecinkami (na przykład `5,10,15`), oraz wstępnie wybrany zapas. Wartości po instalacji: płytki 5, 10 i 15 % (domyślnie 10), farba 0 do 15 % (10), tapeta 0 do 10 % (5), objętość 0 do 10 % (5), listwy 5 do 15 % (10).

### Własny hook

Aby umieścić kalkulator w innym miejscu strony produktu, wybierz pozycję „Własny hook” i dodaj ten wiersz do szablonu produktu w motywie:

```
{hook h='displayDfSurfaceCalculator' product=$product}
```

## Strony SEO kalkulatora

Każdy typ obliczeń może mieć własną publiczną stronę z kalkulatorem, Twoimi produktami tego samego typu z ilością i ceną obliczoną dla wymiarów odwiedzającego, wyjaśnieniem metody i linkami do innych kalkulatorów. Adresy mają postać `/kalkulator/plytki-podlogi`, `/kalkulator/farba`, `/kalkulator/tapeta`. Lista opublikowanych stron i ich linki znajdują się na górze strony modułu.

- **Włącz strony kalkulatora** i **Strony do opublikowania**: publikuj tylko typy pasujące do Twojego katalogu.
- **Prefiks URL**: wspólny dla wszystkich języków, ustalany przy instalacji według domyślnego języka sklepu.
- **Liczba produktów na stronie**: domyślnie 12, 0 ukrywa listę.
- Dla każdej strony i każdego języka: **Przyjazny URL**, **Tytuł** (H1 i znacznik title), **Meta opis** i **Tekst wprowadzający**. Tytuły i adresy przygotowane pod popularne wyszukiwania są wstępnie wypełnione w 8 językach.

Strony zawierają canonical, znaczniki hreflang aktywnych języków i okruszki. Są automatycznie dodawane do mapy witryny modułu **gsitemap** PrestaShop przy jej następnym generowaniu. Adres w innym języku przekierowuje kodem 301 na adres w wyświetlanym języku. Jeśli zmienisz przyjazny URL, stary adres przestaje działać: ustaw przekierowanie, jeśli strona była już zaindeksowana.

Tekst wprowadzający to dobre miejsce na porady montażowe i słownictwo Twoich klientów. Nie kopiuj dosłownie wyjaśnienia metody, które jest już wyświetlane pod kalkulatorem.

## Co widzi klient

Klient wpisuje jedno lub kilka pomieszczeń, ścian lub obszarów. Każdy blok pokazuje swoją sumę częściową. Od drugiego obszaru pole **Odejmij ten obszar** pozwala odjąć wyspę, przeszklenie lub szafę. Następnie wybiera zapas spośród Twoich wartości.

Wynik pokazuje powierzchnię lub objętość, zapotrzebowanie z zapasem, liczbę jednostek, łącznie pokrytą powierzchnię z zapasem i szacowaną cenę. Przycisk **Dodaj do koszyka: 12 paczek** wypełnia pole ilości i uruchamia przycisk koszyka motywu. Link **Użyj tej ilości** tylko wypełnia pole. Gdy produkt jest niedostępny, proponowany jest wyłącznie ten link.

Wartość nienumeryczna jest oznaczana na czerwono i blokuje wynik. Bardzo duża wartość, na przykład 120 m jako długość pomieszczenia, wyświetla przypomnienie o oczekiwanej jednostce. Wymiary są zachowywane w trakcie sesji: odwiedzający odnajduje je między stroną kalkulatora a stroną produktu.

## Koszyk i zamówienia

Gdy klient dodaje produkt do koszyka z kalkulatora, jego wymiary są zapisywane z pozycją. Koszyk wyświetla podsumowanie pod produktem, na przykład „Powierzchnia 14,7 m² + 10% = 16,17 m². Obliczono: 12 paczek”, i sygnalizuje, jeśli ilość została później zmieniona. W panelu strona zamówienia pokazuje blok **Obliczenia ilości** z tymi samymi informacjami.

## Rozwiązywanie problemów

### Kalkulator nie pojawia się na stronie produktu

Sprawdź na liście skonfigurowanych produktów, czy produkt jest aktywny i nie ma statusu **Niekompletny**. Następnie sprawdź, czy hook wybranej pozycji istnieje w motywie; w razie wątpliwości wypróbuj drugą pozycję lub własny hook. Po każdej zmianie wyczyść pamięć podręczną sklepu.

### Komunikat „Brak informacji o opakowaniu dla tej opcji”

Wybrana kombinacja nie ma zawartości, produkt również. Podaj wartość produktu lub wartość kombinacji w tabeli wartości dla kombinacji.

### Strona kalkulatora zwraca błąd 404

Sprawdź, czy strony są włączone, a typ zaznaczony w **Strony do opublikowania**. Jeśli przyjazne adresy URL są w sklepie wyłączone, strona pozostaje dostępna pod długim adresem podanym na górze strony modułu.

### Połączenie opakowań się nie wyświetla

Opcja musi być zaznaczona, co najmniej dwie kombinacje muszą mieć zawartość i cenę, a połączenie jest proponowane tylko wtedy, gdy kosztuje mniej niż wybrany rozmiar.

### Cena za m² nie pojawia się na listach produktów

Wyświetla się przez hook `displayProductPriceBlock` typu `unit_price`, którego niektóre motywy nie wywołują w miniaturach produktów. Dodaj wywołanie do szablonu miniatury lub wyłącz opcję.

## Zgodność

- PrestaShop od 8.0 do 9.x, ten sam ZIP obsługuje obie wersje.
- Multisklep i wielojęzyczność.
- Architektura ModuleAdminController, bez zależności Composer.
- Interfejs i teksty kalkulatora dostępne po francusku, angielsku, hiszpańsku, niemiecku, włosku, niderlandzku, polsku i portugalsku.
