Kalkulator konstrukcji PV: jak z rzędów paneli powstaje zestawienie materiałowe

Kalkulator systemów montażowych w sklepie B2B z zestawieniem materiałowym konstrukcji pod panele fotowoltaiczne

Instalator dzwoni z pytaniem, które w tej branży pada codziennie: ile tego wszystkiego trzeba na dach, na którym staną 24 panele. Odpowiedź — 11 pozycji, 589 sztuk, 2 394,36 zł netto — da się złożyć w arkuszu, tylko że potem ktoś musi ją przepisać do systemu, sprawdzić ceny tego konkretnego klienta i upewnić się, że nic nie wyszło z magazynu. Kalkulator konstrukcji pod panele robi to jednym przejściem, a wynik jest gotowym koszykiem. Ten tekst opisuje, jak z rzędów paneli powstaje ta lista — nie jak go obsługiwać, tylko co się dzieje w środku.

Kalkulator systemów montażowych w sklepie B2B: zestawienie materiałowe z cenami obok karty wyniku z wartością netto kompletu
Zestawienie materiałowe i karta wyniku w sklepie klienta. Ta sama kalkulacja w panelu firmy daje identyczne liczby — liczy ją ten sam kod.

Co właściwie jest liczone

Warto zacząć od tego, czym ten kalkulator nie jest. Nie dobiera mocy instalacji ani liczby modułów — to robi kalkulator zapotrzebowania na energię. Nie ocenia też nośności dachu ani obciążenia śniegiem; to zostaje w gestii projektanta. Kalkulator konstrukcji odpowiada na jedno, bardzo konkretne pytanie handlowe: jakie elementy i w jakich ilościach trzeba wysłać, żeby na tym dachu, z tym pokryciem, stanęło tyle paneli.

To pytanie jest nudne i dlatego kosztowne. Pomyłka o dwie klemy nie psuje projektu — psuje harmonogram, bo ekipa stoi na dachu i czeka na kuriera. Pomyłka w drugą stronę nie boli od razu, tylko zostaje na magazynie instalatora jako gotówka zamrożona w drobnicy. Firmy, które sprzedają konstrukcję, wiedzą, że różnica między dobrym a złym dostawcą przebiega właśnie tędy: nie po cenie profilu, tylko po tym, czy zestawienie jest kompletne.

Dane wejściowe: rzędy, a nie liczba paneli

Formularz nie ma pola „liczba paneli”. Ma listę rzędów, a każdy rząd ma orientację i liczbę modułów. Liczba paneli jest sumą rzędów i pokazuje się w nagłówku sekcji jako informacja, nie jako pole do wpisania.

To nie jest uproszczenie interfejsu, tylko konsekwencja tego, co algorytm faktycznie liczy. Cała konstrukcja wynika z długości rzędu: od niej zależy, ile metrów szyny trzeba, ile łączników spina odcinki i ile uchwytów przenosi obciążenie na dach. Osobne pole „liczba paneli” pozwalałoby wpisać wartość niezgodną z rzędami i wynik przestawałby być prawdą o tym dachu. Dlatego 24 panele w trzech rzędach po osiem to zupełnie inny komplet materiału niż 24 panele w jednym rzędzie ciągnącym się przez pół połaci.

Orientacja rzędu ma w systemie nazwy z budowy, nie z geometrii: poprzecznie to panel stojący, wzdłużnie to panel leżący. Wcześniejsze „pionowo/poziomo” myliło się z nachyleniem połaci i wracało w pytaniach do handlowca, więc nazewnictwo poszło za językiem ekipy montażowej.

Obok pól rzędów stoi rysunek: każdy rząd narysowany w skali, z właściwą orientacją i liczbą modułów, wszystkie rzędy w jednej skali względem siebie. W samych liczbach nie widać, że „jeden rząd na trzydzieści paneli” nie zmieści się na ośmiometrowym dachu — na rysunku widać to od razu.

Panel jest produktem z katalogu, nie wpisem w słowniku

Kalkulator potrzebuje trzech wymiarów panelu: długości, szerokości i grubości. Mógłby mieć własną tabelę modeli, ale wtedy każdy nowy panel trzeba by opisywać dwa razy — raz w katalogu sklepu, raz w kalkulatorze — i pilnować, żeby oba opisy się zgadzały.

Zamiast tego panel pozostaje zwykłym produktem firmy. Kategoria, w której leżą moduły, dostaje znacznik „panele fotowoltaiczne”, a razem z nim pięć atrybutów systemowych: długość, szerokość i grubość w milimetrach, znacznik czarnej ramy oraz moc w watopikach. Produkt pojawia się na liście paneli w kalkulatorze wtedy, gdy ma wypełnione wszystkie trzy wymiary. Moc jest opcjonalna dla tego kalkulatora — czyta ją dopiero kalkulator energii, przeliczając kilowatopiki na sztuki.

Efekt uboczny jest przyjemny: wybierając panel, instalator widzi pod nazwą jego wymiary („1903 × 1134 × 30 mm”), bo to druga linia opisu pozycji — a nie liczbę, którą trzeba przepisać z karty katalogowej.

Rozwinięta lista wyboru pokrycia dachu z miniaturami: dachówka ceramiczna, dachówka betonowa, blachodachówka, blacha trapezowa
Pokrycie dachu wybiera się po zdjęciu, nie po nazwie. Różnica między dachówką ceramiczną a betonową jest na miniaturze natychmiastowa, a w nazwie — nie.

Rdzeń algorytmu: wszystko wynika z długości rzędu

Dla każdego rzędu liczona jest jedna wartość, z której bierze się reszta:

długość rzędu = n × wymiar panelu + n × 20 mm + 2 × zapas

Wymiar to szerokość panelu przy orientacji poprzecznej albo jego długość przy wzdłużnej — czyli ten bok, którym panel styka się z szyną. Dwadzieścia milimetrów to odstęp technologiczny między modułami. Zapas to naddatek na końcach rzędu, który instalator ustawia sam.

Na tej długości opiera się wszystko dalej:

  • Klemy środkowe: n × 2 − 2 na rząd — po dwie między każdą parą sąsiednich paneli.
  • Klemy boczne: zawsze 4 na rząd — po dwie na każdy koniec.
  • Profile: floor(długość ÷ profil) × 2 — dwie szyny na rząd. Reszta z ostatniego odcinka nie jest zaokrąglana w górę, tylko przechodzi na kolejne rzędy; dopiero po całej pętli resztówki składają się w dodatkowe sztuki, plus jedna w zapasie na docięcia.
  • Łączniki profila: ceil(długość ÷ profil) na rząd — tyle styków trzeba spiąć.
  • Uchwyty: ceil((długość ÷ rozstaw + 2) × 2), a na końcu suma zaokrąglana w górę do liczby parzystej, bo uchwyty montuje się parami: po jednym na każdą z dwóch szyn.

Weźmy przykład ze zrzutu wyżej: 24 panele w trzech rzędach po osiem. Klem środkowych wychodzi 3 × (8 × 2 − 2) = 42, bocznych 3 × 4 = 12. Obie liczby stoją w zestawieniu dokładnie w tej postaci. Śrub z łbem walcowym i nakrętek kwadratowych jest po 54, czyli tyle, ile wszystkich klem razem (42 + 12) — każda klema potrzebuje jednego kompletu. Uchwytów wyszło 76: rachunek dał 75, a parzystość dołożyła siedemdziesiątą szóstą sztukę.

Śrub M10 z nakrętkami kołnierzowymi jest 106, czyli 76 uchwytów + 2 × 15 łączników. Blaszek uziemiających 21 — połowa klem środkowych, bo jedna blaszka obsługuje styk dwóch modułów. Całe zestawienie zamyka się na 11 pozycjach i 589 sztukach. Żadna z tych liczb nie jest szacunkiem; każda wynika z jednego wzoru zastosowanego do trzech rzędów po osiem paneli.

Dlaczego komplet liczy się kilka razy

Profile montażowe sprzedaje się w długościach handlowych — ten sam rząd da inny wynik na szynie 2220 mm, a inny na 3375 mm. Różnica nie sprowadza się do arytmetyki: dłuższy profil to mniej styków, czyli mniej łączników, ale też większa resztówka, czyli więcej materiału do wyrzucenia. Krótszy jest odwrotnie.

Kalkulator nie zgaduje, która długość jest lepsza. Liczy cały komplet osobno dla każdej długości handlowej dostępnej w wybranym kolorze i zostawia ten wariant, który wychodzi najtaniej — po cenach tego klienta, a nie po cenniku katalogowym. Wybór profilu przestaje być decyzją, którą trzeba podjąć przed kalkulacją, i staje się jej wynikiem.

To jest zarazem jedno z miejsc, w których widać, po co kalkulator ma siedzieć w systemie sprzedaży, a nie obok niego. Wariant „najtańszy” zależy od cennika — a cennik zależy od tego, kto liczy. Instalator z rabatem 12% może dostać inny wariant niż ten, który kupuje po cenach podstawowych. Arkusz tego nie wie, bo nie ma dostępu do cenników indywidualnych.

Pokrycie dachu decyduje o mocowaniu — i tylko ono

Osprzęt profilowy jest niemal niezależny od dachu. Mocowanie do połaci — przeciwnie: wynika wyłącznie z pokrycia i to ono decyduje, które pola formularza w ogóle się pojawią.

PokrycieCo wchodzi do zestawienia
dachówka ceramiczna i betonowahak typu S (+ 1 wkręt 50 mm) albo uchwyt do krokwi (+ 2 wkręty 100 mm)
karpiówkahak płaski + wkręty 100 mm w liczbie zapisanej przy tym haku
blachodachówkaśruba dwugwintowa
blacha trapezowamostek trapezowy (+ 6 wkrętów bimetalowych) — bez szyn i łączników
blacha falistaśruba dwugwintowa albo mostek (+ 4 wkręty bimetalowe)
blacha na rąbekuchwyt zaciskany na rąbek — bez wkrętów
papa / gontśruba dwugwintowa albo uchwyt na gont (+ 3 wkręty WKF)

Najciekawszy jest wiersz z blachą trapezową. Na trapezie panele idą bezpośrednio na mostki, więc szyn i łączników w zestawieniu w ogóle nie ma. To nie jest wyjątek dopisany na boku — algorytm pomija cały blok profilowy, a zestawienie wygląda zupełnie inaczej niż dla dachówki. W liście zapisanych kalkulacji widać to jako coś, co na pierwszy rzut oka wygląda na błąd: hala na 40 paneli na blasze trapezowej wychodzi taniej (1 819,48 zł netto) niż dom na 24 panele na dachówce ceramicznej (2 394,36 zł). Nie jest to błąd, tylko konsekwencja pokrycia — i właśnie dlatego liczby warto mieć policzone, a nie oszacowane z liczby paneli.

Wybór „albo” w trzech wierszach tabeli należy do instalatora. Ten szczegół był zresztą jednym z drobnych błędów, które poprawiliśmy w stosunku do systemu źródłowego: przy papie i goncie oryginał dodawał uchwyt zawsze, więc przy wyborze śruby dwugwintowej zamawiał oba mocowania naraz.

Dwa pokrycia bez kalkulacji — świadomie

Płyta warstwowa i styropapa są na liście pokryć, ale kalkulator nie zwraca dla nich zestawienia. To decyzja, nie luka w implementacji: sposób mocowania na tych pokryciach ustala producent płyty albo systemu dachowego i zależy od rdzenia, grubości oraz warunków gwarancji. Zgadywanie osprzętu dawałoby zestawienie wyglądające wiarygodnie i jednocześnie nieprawdziwe — a to gorzej niż brak odpowiedzi, bo klient nie ma powodu jej weryfikować.

Kalkulator, który odpowiada na każde pytanie, przestaje być wiarygodny w odpowiedziach na te, które naprawdę zna. Granica przyznana wprost jest funkcją, nie brakiem.

Skąd biorą się elementy i ich parametry

Elementy montażowe nie są osobnym bytem w systemie. To zwykłe produkty firmy — z własnym SKU, ceną, stawką VAT, zdjęciem i stanem magazynowym — opisane dodatkowo garścią parametrów, których potrzebuje algorytm: typem (jeden z 27), kolorem, wymiarami, długością handlową profilu i liczbą wkrętów, które zużywa jedna sztuka uchwytu.

Dzięki temu koszyk, zamówienie, faktura, przesyłka i rabaty ilościowe działają bez żadnej dodatkowej warstwy, a kalkulator zajmuje się wyłącznie doborem pozycji i ilości. Firma, która podniesie cenę haka, podnosi ją w jednym miejscu — w karcie produktu — i od tej chwili każda nowa kalkulacja liczy po nowemu.

Katalog elementów montażowych w panelu firmy: lista produktów z typem, kolorem, wymiarami i ceną netto
Katalog elementów w panelu firmy. Każdy wiersz to produkt ze sklepu — kolumny „typ”, „kolor” i „wymiary” to jedyne, co dokłada moduł kalkulatora.

Sposób dobierania poszczególnych pozycji jest przy tym zaskakująco dosłowny i sprowadza się do dopasowania po jednym lub dwóch parametrach:

  • Klema boczna — po kolorze i po wysokości równej grubości panelu. W zestawieniu ze zrzutu widać to wprost: przy panelu 30 mm wchodzi „klema końcowa 30 mm”.
  • Śruba do klem — po długości równej grubości panelu minus 5 mm. Stąd „M8x25” przy tym samym panelu.
  • Klema środkowa, zaślepka profilu — po kolorze.
  • Nakrętka albo wpust przesuwny — wedle tego, co wybierze instalator; to jego preferencja montażowa, nie wynik obliczeń.
  • Blaszka uziemiająca, podkładka sprężynująca, pianka — wyposażenie opcjonalne, włączane przełącznikiem.

Start modułu nie wymaga przy tym wpisywania 59 pozycji ręcznie. Katalog startowy wchodzi jedną komendą (albo przyciskiem, jeśli firma nie ma jeszcze żadnego elementu) i jest idempotentny: kolejne uruchomienie dopasowuje pozycje po SKU i nie nadpisuje cen, które firma ustawiła u siebie. Zdjęcie trafia wyłącznie do produktu, który jeszcze żadnego nie ma, więc własne fotografie przeżywają ponowny import.

Ceny: ten sam mechanizm co w sklepie

Wycena kompletu nie ma własnej logiki cenowej. Idzie przez ten sam mechanizm, którym sklep liczy cenę w katalogu i w koszyku — z cennikiem grupy, ustaleniami indywidualnymi i progami ilościowymi włącznie. Kalkulacja zrobiona dla konkretnego klienta pokazuje jego ceny, a nie katalogowe. VAT pochodzi z kartoteki produktu, nigdy ze sztywnych 23%.

To brzmi jak szczegół techniczny, a jest warunkiem zaufania do narzędzia. Gdyby kalkulator miał drugi cennik, prędzej czy później rozjechałby się z pierwszym — i wtedy handlowiec musiałby sprawdzać każdą kalkulację, a więc równie dobrze mógłby liczyć sam. Liczby w karcie wyniku są tymi samymi liczbami, które klient zobaczy w koszyku, bo pochodzą z tego samego źródła. Kupiec B2B czyta zresztą przede wszystkim kwotę netto i to ona jest w karcie wyniku liczbą główną.

Zestawienie pokazuje przy okazji rzeczy, których arkusz nie pokaże: przy każdej pozycji stoi miniatura zdjęcia produktu, nazwa jest linkiem do jego karty, a jeżeli firma prowadzi stany magazynowe i czegoś brakuje — wiersz jest przekreślony i oznaczony „brak w magazynie”. Instalator dowiaduje się o tym przed przeniesieniem kompletu do koszyka, a nie w checkoucie.

Czego klient nie zobaczy

Rozbicie obliczeń na składniki zapisuje się przy każdej kalkulacji, ale nie pokazuje ani klientowi sklepu, ani firmie, która go obsługuje. To know-how kalkulatora: wagi poszczególnych parametrów i kolejność, w jakiej się nakładają.

Istotne jest, gdzie stoi ta bramka. Nie w interfejsie — gdyby ukrywać sekcję „szczegóły obliczeń” na froncie, dane i tak leciałyby w odpowiedzi API i wystarczyłaby konsola przeglądarki, żeby je odczytać. Odpowiedź serwera jest przycinana po stronie API, więc szczegółów nie ma w niej w ogóle. Klient dostaje wynik i pełne zestawienie materiałowe — czyli wszystko, czego potrzebuje, żeby zamówić — ale nie dostaje instrukcji, jak zbudować sobie taki sam kalkulator.

Od kalkulacji do zamówienia

Najważniejsza różnica między tym kalkulatorem a arkuszem doboru zaczyna się dopiero po obliczeniu. „Dodaj komplet do koszyka” przenosi wszystkie pozycje jako zwykłe linie koszyka — z ilościami, cenami tego klienta i stawkami VAT — a dalej zamówienie idzie tą samą drogą co każde inne: numer, statusy, faktura, płatność (również z odroczonym terminem) i przesyłka z numerem śledzenia.

Składanie zamówienia w sklepie B2B: pozycje przeniesione z kalkulacji konstrukcji, wybór wysyłki paletowej i płatności z terminem
Te same 2 394,36 zł netto, tylko już jako zamówienie — z dostawą paletową i płatnością w terminie 14 dni.

Wartość netto zamówienia zgadza się co do grosza z wartością z karty wyniku, bo nic po drodze nie jest przepisywane. Nikt nie przenosi pozycji ręcznie, więc nie ma miejsca, w którym mogłaby zniknąć jedna nakrętka ze stu sześciu.

Kalkulacje się przy tym zapisują. Klient ma w sklepie własną listę: klik wczytuje kalkulację do formularza, kolejny zapis nadpisuje ten sam rekord, „Nowa kalkulacja” zaczyna od czysta. Wraca po tygodniu, poprawia jeden rząd i zamawia. Firma widzi w panelu kalkulacje wszystkich swoich klientów — te same dane, ten sam wynik. Do zapisanej kalkulacji można też zadać pytanie: wątek czatu przypina się do konkretnego rekordu, więc rozmowa „czemu tu jest 76 haków” toczy się przy liczbach, a nie w osobnym mailu bez kontekstu.

Co trzeba przygotować po swojej stronie

Fizyka, słowniki i algorytm są po naszej stronie i nie wymagają od firmy żadnej konfiguracji. Po stronie firmy zostają trzy rzeczy, wszystkie z obszaru, który firma i tak kontroluje:

  1. Katalog elementów — wchodzi jedną komendą jako 59 pozycji ze zdjęciami; ceny ustawia firma i kolejne aktualizacje ich nie ruszają.
  2. Oznaczenie paneli — kategoria z modułami dostaje znacznik, produkty dostają wymiary. Bez tego kalkulator nie zna geometrii i nie ma z czego liczyć długości rzędu.
  3. Ceny i grupy cenowe — czyli dokładnie to samo, co steruje cenami w sklepie. Kalkulator nie wprowadza tu żadnego nowego pojęcia.

Cała reszta — sklep pod marką firmy, zamówienia, dokumenty, integracje — działa niezależnie od tego, czy kalkulatory są włączone. To jest zresztą szerszy wzorzec, który opisujemy w tekście o dedykowanych narzędziach w B2B: moduł branżowy ma sens dopiero wtedy, gdy stoi na działającej platformie sprzedaży, a nie zamiast niej. Szerszy obraz trzech kalkulatorów OZE i tego, jak wpinają się w sklep, jest na stronie dla branży OZE.

Najczęstsze pytania

Czy kalkulator liczy na moim katalogu, czy na jakimś wzorcowym?

Wyłącznie na Twoim. Elementy montażowe to produkty Twojej firmy — z Twoimi cenami, VAT-em, stanami i zdjęciami. Moduł dokłada do nich tylko parametry techniczne (typ, kolor, wymiary, długość handlową profilu). Katalog startowy 59 pozycji to punkt wyjścia, nie cennik narzucony z zewnątrz.

Dlaczego nie ma pola „liczba paneli”?

Bo konstrukcja wynika z długości rzędów, a nie z liczby modułów. Osobne pole pozwalałoby wpisać wartość niezgodną z rzędami i wynik przestałby opisywać ten konkretny dach. Suma rzędów jest pokazywana w nagłówku sekcji, a walidacja po stronie API pilnuje zgodności.

Skąd biorą się wymiary panelu?

Z kartoteki produktu. Kategoria paneli ma znacznik, który dokłada pięć atrybutów systemowych — trzy wymiary, czarną ramę i moc. Produkt trafia na listę paneli w kalkulatorze, gdy ma uzupełnione wszystkie trzy wymiary; moc jest potrzebna dopiero kalkulatorowi energii.

Czemu ten sam dach wychodzi raz drożej, raz taniej?

Najczęściej przez pokrycie i przez długość profilu. Blacha trapezowa nie wymaga szyn ani łączników, więc potrafi wypaść taniej niż dachówka przy większej liczbie paneli. Długość handlowa profilu zmienia z kolei proporcję odpadu do liczby łączników — dlatego komplet liczony jest każdą dostępną długością, a zostaje wariant najtańszy w cenniku tego klienta.

Dlaczego liczba uchwytów jest zawsze parzysta?

Bo uchwyty montuje się parami — po jednym na każdą z dwóch szyn rzędu. Wynik obliczenia jest zaokrąglany w górę do najbliższej liczby parzystej; w przykładzie z artykułu rachunek dał 75, a w zestawieniu jest 76.

Co z płytą warstwową i styropapą?

Kalkulator świadomie ich nie liczy. Sposób mocowania ustala tam producent pokrycia i zależy od rdzenia, grubości oraz warunków gwarancji. Zestawienie „na oko” wyglądałoby wiarygodnie i byłoby nieprawdziwe, a klient nie miałby powodu go sprawdzać.

Czy mój klient zobaczy, jak dochodzicie do wyniku?

Zobaczy wynik i pełne zestawienie materiałowe z ilościami i cenami. Nie zobaczy rozbicia obliczeń na składniki ani wag parametrów — te dane są przycinane po stronie API, więc nie ma ich nawet w odpowiedzi serwera, nie tylko w interfejsie.

Czy handlowiec może policzyć kalkulację za klienta?

Tak. W panelu firmy ten sam formularz liczy tym samym algorytmem, a kalkulację przypisuje się do konkretnego klienta — wtedy ceny są jego cenami. Panel nie ma koszyka, bo zamówienie składa klient; kalkulacja z panelu jest wyceną, którą klient wczytuje u siebie i przenosi do koszyka.

Skąd wiadomo, że wyniki są poprawne?

Algorytm pochodzi z systemu doborowego, który liczył realne oferty przez lata, a przy przeniesieniu obłożyliśmy go testami regresyjnymi sprawdzającymi ilości pozycji dla każdego pokrycia dachu, parzystość uchwytów i wyposażenie opcjonalne. Przy okazji przeniesienia poprawiliśmy kilka błędów oryginału — między innymi podwójne zamawianie mocowania przy papie i goncie.

Jeżeli sprzedajesz konstrukcję i chcesz przestać liczyć ją w arkuszu, kolejnym krokiem są dwa pozostałe kalkulatory: zapotrzebowania na moc cieplną i zapotrzebowania na energię. Załóż darmowe konto i napisz — moduły branżowe włączamy przełącznikiem po naszej stronie.

Przeczytaj również

Zacznij sprzedawać B2B pod własną marką.

Darmowe konto FreeSpace: dodaj produkt, zaproś klienta, przyjmij pierwsze zamówienie. Bez karty, bez zobowiązań.

Załóż darmowe konto

Masz pytanie? Napisz do nas.