Organizacja pracy nad niestandardowymi modułami i wtyczkami dla firmy z Zamościa sprowadza się do trzech rzeczy: jeden brief, jedna osoba decyzyjna i zapisany zakres z przypadkami brzegowymi. Bez tego nawet dobrze napisany kod utknie na etapie ustaleń, a faktura urośnie ponad pierwotną wycenę. Poniżej znajdziesz błędy, które najczęściej wydłużają takie wdrożenia, listę kontrolną do odhaczenia przed startem oraz odpowiedzi na pytania, które wracają w każdym projekcie. Szerszy kontekst znajdziesz w tekście o organizacji pracy przy niestandardowych modułach i wtyczkach w Zamościu.

Własny moduł czy gotowa wtyczka: decyzja w pięciu pytaniach

Decyzję „gotowiec czy własny kod” rozstrzygniesz w pięciu pytaniach. Zadaj je sobie przed wysłaniem zapytania do wykonawcy — odpowiedzi potrafią zmienić wycenę o kilka tysięcy złotych w obie strony.

  1. Czy proces jest krytyczny dla sprzedaży? Jeśli jego awaria zatrzymuje zamówienia (konfigurator, progi rabatowe B2B, wysyłka do ERP), potrzebujesz kodu, którego autor odbierze telefon. Gotowiec od nieznanego wydawcy to ryzyko.
  2. Czy wymaga logiki, której nie ma na rynku? Sprawdź Addons PrestaShop i repozytorium wtyczek WooCommerce, wpisując nazwę mechaniki, nie produktu: „tier pricing”, „B2B price rules”, „product configurator”, „packstation choose”.
  3. Czy dane muszą iść do ERP? Ręczny eksport CSV i mapowanie kolumn to 20–40 minut dziennie. Przy 300 zamówieniach miesięcznie robi się z tego etat.
  4. Czy koszt licencji rośnie z obrotem? Wtyczki rozliczane od liczby zamówień lub SKU zjadają marżę dokładnie wtedy, gdy firma rośnie.
  5. Czy aktualizacje platformy będą łamać gotowca? Przejście PrestaShop 1.7 → 8.x i wdrożenie HPOS w WooCommerce to znane punkty łamania starszych wtyczek.

Prosty rachunek: licencja 600 zł rocznie × 3 lata = 1800 zł. Własny moduł w PrestaShop to zwykle 4000–7000 zł netto plus 15–20% rocznie na utrzymanie (600–1400 zł). Tani gotowiec wygrywa na papierze, dopóki nie doliczysz czasu na obejścia. Własny kod broni się wtedy, gdy daje przewagę procesową, a nie tylko brak opłaty.

Kiedy wszystkie odpowiedzi brzmią „nie”, własny kod to wyrzucone pieniądze: standardowe metody dostawy i płatności, zwykłe progi rabatowe (w PrestaShop reguły cenowe, w WooCommerce kupony z ograniczeniami), koszyk, faktury PDF, podstawowa integracja z kurierem przez gotowy moduł. Konfiguracja wystarcza. Kontekst organizacyjny takich projektów opisujemy w tekście o niestandardowych modułach i wtyczkach w Zamościu. Jeśli i tak piszesz kod, zacznij od dokumentacji deweloperskiej PrestaShop — struktura hooków i rejestracja modułu są tam opisane bezpośrednio.

Pytanie kontrolneGotowy moduł wystarczaWłasny moduł
Proces krytyczny dla sprzedażynarzędzie pomocnicze, awaria nie blokuje zamówieńblokuje sprzedaż, wymaga wsparcia i SLA
Logika dostępna na rynkujest rozwiązanie pokrywające 80% potrzebbrakuje kluczowych 20%, obejścia są ręczne
Dane do ERPERP ma gotowy konektorbrak konektora, potrzebny własny format lub API
Koszt licencjistała opłata, np. 200–600 zł rocznielicencja rośnie z liczbą zamówień lub SKU
Aktualizacje platformywydawca publikuje poprawki w terminiezależysz tylko od siebie, ale sam utrzymujesz kod

Co realnie da się zamknąć w module: dziesięć przypadków z polskich sklepów

Poniższe przypadki wracają w firmach z Zamościa i okolic najczęściej. Każdy da się zamknąć w module PrestaShop albo wtyczce WooCommerce, ale nie każdy w ten sam sposób — różnice widać dopiero przy utrzymaniu.

PrzypadekPrestaShopWooCommerceGdzie jest haczyk
Progi rabatowe B2Bmoduł z hookiem actionValidateOrder i regułami cenowymiwtyczka na filtrach cart totalsPrestaShop: konflikt z regułami cenowymi dla koszyka
Produkt konfigurowalnywłasny moduł plus szablon produktuwtyczka oparta o pola i filtry cenyWooCommerce: kompatybilność z Cart i Checkout Blocks
Wysyłka do ERPhook na zmianę statusu, plik XMLakcja na statusie zamówienia, REST APIPo stronie ERP bywa limit API i brak środowiska testowego
Darmowa dostawawłasny moduł przewoźnikówfiltr dostępnych metod dostawyTest przy mieszanym koszyku — najczęstsze miejsce błędów
Paczkomat z limitem wagimoduł mapujący przewoźnikówfiltr metod dostawy na podstawie wagiWaga musi być wpisana dla każdego produktu, inaczej limit nie działa
Etykiety kurierskiemoduł z panelem w zakładce zamówieńwtyczka z metadanymi zamówieniaWooCommerce: HPOS zmienia sposób czytania zamówień
Synchronizacja stanówcron i zadanie w moduleWP-Cron lub cron systemowyWP-Cron odpala się przy ruchu — przy niskim ruchu stany się rozjadą

Ile to kosztuje: widełki godzinowe i jak czytać ofertę

Wycena modułu do PrestaShop albo wtyczki do WordPressa to zawsze dwie liczby: stawka godzinowa i liczba godzin. W projektach dla MŚP w Polsce stawki układają się w trzech pasmach: 120–180 zł/h za prostą implementację (hooki, szablony, dodatkowe pola), 180–280 zł/h za pracę z API, płatnościami i bazą danych, 250–400 zł/h i więcej, gdy dochodzi ERP, nietypowa logika rabatowa albo prace poza godzinami pracy sklepu. To wartości orientacyjne – ostateczna cena zależy od zakresu i tego, czy dostawca startuje z własnego szablonu modułu, czy pisze wszystko od zera.

Budżet warto dostać rozbity na etapy. Zdrowa proporcja wygląda tak:

Pracochłonność: mały moduł (np. pole NIP z walidacją i zapisem do zamówienia) to 16–40 godzin. Średni (integracja z bramką płatniczą, własne statusy zamówień, eksport do pliku) – 60–120 godzin. Złożony (dwukierunkowa synchronizacja z ERP: stany, ceny, faktury) startuje od 150 godzin i potrafi przekroczyć 400. Pytaj o te liczby wprost, bo oferta bez godzin jest nieporównywalna z żadną inną.

Czerwone flagi: jedna kwota bez rozbicia na etapy, „wycena od sufitu” bez podania pracochłonności, brak informacji, ile kosztuje godzina pracy po wdrożeniu i kto płaci za poprawki po aktualizacji PrestaShop. Stawkę powdrożeniową i zakres wsparcia wpisz do umowy, zanim zaczniesz.

Koszt, o którym nikt nie mówi, to czas twojego zespołu: 10–20 godzin na brief, przygotowanie danych testowych (produkty z wagą i wymiarami, 200–500 zamówień w kopii bazy, konta sandbox kurierów) i testy akceptacyjne. Zaplanuj to jako realny koszt – bez tego moduł nie ma na czym pracować. Jak rozłożyć te zadania w kalendarzu, opisuję w materiale o organizacji pracy przy niestandardowych modułach w Lublinie.

Rozmiar modułuPrzykładGodzinyKwota przy 180 zł/h
Małypole NIP, dodatkowa zakładka w produkcie, prosty eksport CSV16–402 880 – 7 200 zł
Średnibramka płatnicza, własne statusy zamówień, panel raportowy60–12010 800 – 21 600 zł
Złożonydwukierunkowa synchronizacja z ERP, stany i ceny, faktury150–40027 000 – 72 000 zł

Integracje z ERP, płatnościami i kurierami: gdzie pękają wdrożenia

Najwięcej wdrożeń wywraca się nie na kodzie, a na kolejności prac. Poprawna sekwencja: 1) kontrakt danych – dokument z listą pól, typami, kierunkiem przepływu i częstotliwością (np. stany magazynowe co 15 minut, faktury raz na godzinę); 2) kod modułu; 3) środowisko testowe po stronie ERP; 4) produkcja. Jeśli dostawca ERP mówi „napiszcie najpierw, potem zobaczymy”, to znak, że punkt 1 został pominięty.

Limity API to druga pułapka. Sprawdź w dokumentacji, ile zapytań na minutę dostajesz, co zwraca kod 429 i 5xx oraz jak długo wolno ponawiać. Standard: ponowienie z rosnącym opóźnieniem (1 s, 2 s, 4 s, 8 s, maksymalnie 5 prób) i zapis nieudanych operacji do kolejki. Bez idempotencji – klucza operacji albo sprawdzenia, czy zamówienie o tym numerze już istnieje – jedno ponowienie po timeoucie daje dwa zamówienia i dwie faktury. To najdroższy błąd w tej kategorii, bo sprząta się go ręcznie w księgowości.

Kurierzy: InPost, DPD i DHL generują etykiety przez API, ale różnią się zakresem wymaganych pól (gabaryt, punkt odbioru, pobranie), formatem pliku (PDF vs ZPL) i sposobem przekazywania statusów – część wysyła webhooki, część trzeba odpytywać co kilka minut. Zwroty i protokoły rozliczeniowe to osobna integracja, często pomijana w wycenie.

Na koniec log zdarzeń z identyfikatorem korelacji i alert, gdy na przykład 3 błędy wystąpią w ciągu 15 minut. Chcesz wiedzieć o awarii z maila, a nie z telefonu klienta. Cały proces opisuję w tekście o niestandardowych modułach i wtyczkach dla firm z Zamościa. Struktury hooków i modeli danych w PrestaShop masz w dokumentacji dla deweloperów PrestaShop.

ProblemObjawZabezpieczenie po stronie modułu
Limit zapytań (kod 429)synchronizacja staje w połowie dniakolejka zadań i odstęp między zapytaniami
Brak idempotencjidubel zamówienia i fakturyklucz idempotencji lub kontrola numeru zamówienia
Timeout bez ponowieńzamówienie nie trafia do ERP5 prób z rosnącym opóźnieniem, potem alert
Statusy bez webhookaklient wie o dostawie wcześniej niż sklepodpytywanie statusu co 5–10 minut
Brak środowiska testowego ERPtesty na produkcjisandbox od dostawcy ERP, ustalony na starcie

Testy i odbiór: lista kontrolna przed wypuszczeniem na produkcję

Odbiór modułu nie wymaga czytania kodu. Wystarczy lista kontrolna i kopia danych produkcyjnych na środowisku stagingowym. Kopia ma odpowiadać produkcji co do struktury, ale być zanonimizowana – maile, telefony i adresy klientów podmienione. Bez tego testujesz na fikcji.

Testy funkcjonalne. Przejdź 10–15 scenariuszy: zamówienie z jednym produktem, z 20 produktami, z kodem rabatowym, z produktem poza stanem, z odrzuconą płatnością, zwrot, ponowne zamówienie tego samego klienta. Wynik zapisuj w arkuszu: scenariusz, oczekiwany efekt, wynik, kto sprawdził, data.

Wydajność. Zmierz czas odpowiedzi kategorii i koszyka przed włączeniem modułu i po. Praktyczny budżet: kategoria maksymalnie +200 ms, koszyk +300 ms. Jeśli moduł dokłada 1,5 s do koszyka, klient to poczuje na telefonie. Progi i sposób pomiaru metryk opisuje web.dev – Web Vitals.

Bezpieczeństwo. Sprawdź cztery rzeczy: nowe kontrolery w panelu widoczne tylko dla właściwych ról, walidacja formularzy po stronie serwera (nie wyłącznie w JavaScript), klucze API w konfiguracji modułu lub zmiennych środowiskowych, brak kluczy w widoku źródła strony i w publicznie dostępnych plikach JS.

Aktualizacja i wycofanie. Na klonie zaktualizuj PrestaShop o jedną wersję w górę i sprawdź moduł. Potem wyłącz moduł i odpowiedz: czy sklep działa, czy dane zamówień zostają w bazie, czy po ponownym włączeniu nic się nie dubluje. To test, który pokaże, czy nie zostaniesz zakładnikiem jednego wykonawcy. Szerszą listę kontrolną stosujemy przy wdrożeniach modułów dla firm z Hrubieszowa.

ObszarCo sprawdzićKryterium zaliczenia
Funkcje10–15 scenariuszy zamówień i zwrotów na staginguwszystkie scenariusze zaliczone, arkusz wypełniony
Wydajnośćczas odpowiedzi kategorii i koszyka przed/pokategoria do +200 ms, koszyk do +300 ms
Bezpieczeństworole w panelu, walidacja serwerowa, klucze APIbrak kluczy w źródle strony, walidacja po stronie serwera
Aktualizacjapodniesienie wersji platformy na kloniemoduł działa, brak błędów w logu
Wycofaniewyłączenie i ponowne włączenie modułusklep działa, dane zamówień nienaruszone

Utrzymanie po wdrożeniu: aktualizacje, PHP i jasne SLA

Własny moduł lub wtyczka to nie jednorazowy zakup, a zobowiązanie na 3–4 lata. W tym czasie zmieni się niemal wszystko wokół kodu: wersje PrestaShop (1.7 → 8.x), WordPress i WooCommerce (duże wydania raz w roku, mniejsze co kilka tygodni), wersje PHP (7.4 → 8.1 → 8.3) oraz API kurierów i operatorów płatności. Przykład z życia: funkcja napisana pod PHP 7.4, korzystająca z dynamicznych właściwości klas, na PHP 8.2 zaczyna sypać ostrzeżeniami, a integracja z operatorem płatności przestaje działać po zmianie wymagań 3DS2 i sposobu autoryzacji tokenów. Nikt nie zadzwoni z wyprzedzeniem — po prostu przestanie działać płatność albo etykieta kurierska. Zasady zgodności wstecznej i wymagania wersji opisuje dokumentacja PrestaShop dla deweloperów, i to jest pierwszy dokument, który powinien znać wykonawca.

Dlatego w umowie utrzymaniowej SLA zapisuje się liczbami, nie hasłem „wsparcie techniczne”. Rozsądny układ wygląda tak:

PoziomPrzykładCzas reakcjiCzas naprawy
Krytycznynie działa płatność, sklep nie przyjmuje zamówieńdo 2 godz.do 8 godz.
Ważnybłąd eksportu zamówień do ERP, zła kalkulacja dostawydo 8 godz.do 3 dni roboczych
Zwykłykosmetyka w panelu, literówka, drobna poprawkado 2 dni roboczychwg kolejki

Do tego cztery elementy, o które warto zapytać przed podpisaniem: kanał zgłoszeń (jeden — e-mail lub panel ticketowy, nie Messenger plus SMS plus telefon), zakres godzin wsparcia (np. 8:00–16:00 w dni robocze, poza tym tylko zgłoszenia krytyczne), kopie zapasowe (codzienne, retencja min. 30 dni, raz na kwartał test odtworzenia na stagingu) oraz podział na prace rutynowe i rozwojowe. Rutynowe — aktualizacje, monitoring, backupy, poprawki do ustalonej liczby godzin — idą w abonamencie. Rozwojowe, czyli nowe funkcje, wycenia się osobno. Bez tego rozdzielenia każda aktualizacja rozjeżdża budżet.

Ostatni warunek: dokumentacja i przekazanie kodu. Repozytorium Git z dostępem po stronie klienta, README z opisem hooków, konfiguracji i zależności, procedura wdrożenia i rollback. Jeśli zmieni się wykonawca, brak tych plików oznacza 2–3 dni płatnego rozgryzania cudzego kodu. Więcej o tym, jak ułożyć całość projektu, piszemy w tekście o organizacji pracy przy niestandardowych modułach i wtyczkach w Zamościu.

Pięć sygnałów, że nie potrzebujesz własnego modułu

Własny kod bywa najdroższym sposobem rozwiązania problemu, który da się zamknąć konfiguracją. Pięć sygnałów, że lepiej odpuścić:

Porównanie pierwszego roku — poniżej wyłącznie rzędy wielkości, nie oferta. Każdą kwotę trzeba potwierdzić wyceną, bo zakres bywa bardzo różny.

WariantKoszt 1. roku (orientacyjnie)Kiedy ma sens
Konfiguracja lub zmiana procesuod 0 do ok. 1500 złgdy da się obejść bez kodu
Gotowa wtyczka plus konfiguracjalicencja roczna plus kilka godzin wdrożeniagdy pokrywa 80–90% potrzeb
Własny modułwdrożenie liczone w tysiącach złotych plus miesięczne utrzymaniegdy funkcja jest specyficzna, powtarzalna i krytyczna dla przychodu

Szczera rekomendacja jest w interesie obu stron: klient, który kupił moduł bez zaplecza technicznego, po roku wraca z pretensjami, a nie z kolejnym zleceniem. Jak wygląda organizacja takich wdrożeń poza Zamościem, opisujemy przy okazji pracy nad modułami i wtyczkami w Narolu i okolicach.

Praca z deweloperem z Zamościa i regionu: jak to wygląda w praktyce

Model, który działa, jest prosty: jedna osoba decyzyjna po stronie firmy i jedna osoba po stronie dewelopera. Nie dział handlowy, nie pośrednik, który przekazuje zlecenie dalej. Na starcie ustalacie trzy rzeczy na piśmie:

Komunikacja na odległość działa dobrze, gdy ma rytm: 30-minutowa rozmowa wideo na koniec etapu plus demo na stagingu. Dla firm z Chełma, Hrubieszowa czy Lublina wystarcza to w większości projektów — odległość nie ma znaczenia, dopóki demo jest dostępne online, a nie tylko na screenshocie. Więcej o tym, jak wygląda organizacja pracy przy niestandardowych modułach i wtyczkach w Lublinie, a także jak przebiega ona w Chełmie, opisujemy osobno.

Spotkanie na miejscu warto zaplanować w dwóch sytuacjach. Pierwsza: moduł musi rozmawiać z systemem, do którego nie ma wygodnego dostępu zdalnego — lokalny ERP, serwer plików, VPN, drukarka fiskalna, integracja z magazynem. Druga: odbiór końcowy przy większym wdrożeniu, gdzie trzeba przejść procedury na żywo. Zwykle wystarczą dwa spotkania: jedno na początku, jedno przy odbiorze.

Punkty kontrolne w projekcie:

Jeśli w projekcie pojawia się podwykonawca, ustal, kto odpowiada za błędy i komu zgłaszasz poprawki. W praktyce najlepiej działa brak przekazywania zlecenia dalej.

Najczęstsze błędy i jak je wykryć

Brak jednej osoby decyzyjnej po stronie firmy

Jak wykryć: Maile wracają z pytaniami do trzech różnych osób, a żadna nie potwierdza zakresu. W wątku jest pięć osób w CC i zero decyzji.

Jak naprawić: Wyznacz jedną osobę, która zatwierdza brief, odbiera etapy i ma prawo powiedzieć „tak, to jest to”. Reszta zespołu może konsultować, ale nie zmienia zakresu.

Brief przekazany ustnie albo w wiadomości na telefonie

Jak wykryć: Deweloper drugi raz pyta o to samo, a odpowiedzi są sprzeczne.

Jak naprawić: Jeden dokument, dziesięć punktów, wysłany mailem. Ustalenia z rozmowy telefonicznej dopisz do niego tego samego dnia.

Zakres bez przypadków brzegowych

Jak wykryć: Pierwszy test na produkcji kończy się pytaniem „a co, jeśli towaru nie ma na stanie?”.

Jak naprawić: Wypisz wyjątki przed wyceną: brak stanu, błąd API, anulowanie, częściowa realizacja, zwrot.

Testy na żywym sklepie

Jak wykryć: Klient dostaje testowe zamówienie albo fakturę na 0,01 zł.

Jak naprawić: Osobne środowisko testowe (staging) i kopia bazy z danymi klientów zanonimizowanymi.

Aktualizacja platformy w środku wdrożenia

Jak wykryć: W trakcie prac ktoś klika „aktualizuj wszystko” i moduł przestaje się ładować.

Jak naprawić: Zamroź wersje PrestaShop, WooCommerce, PHP i wtyczek na czas prac. Aktualizacje zaplanuj po odbiorze.

Nikt nie wie, kto utrzymuje moduł po wdrożeniu

Jak wykryć: Po pół roku pojawia się błąd, a w firmie nikt nie potrafi wskazać repozytorium ani autora kodu.

Jak naprawić: Ustal na piśmie: kto ma kod, gdzie leży, kto reaguje na błędy i w jakim czasie. Wpisz to do umowy, nie do głowy.

Lista kontrolna do odklikania

Podsumowanie

Największym ryzykiem w niestandardowych modułach i wtyczkach dla firmy z Zamościa nie jest kod, a brak ustaleń. Jeden brief, jedna osoba decyzyjna, wypisane przypadki brzegowe i kryteria akceptacji po ludzku — to zestaw, który skraca wdrożenie i ogranicza dopłaty. Pieniądze zaoszczędzone na tych czterech rzeczach wracają później jako godziny stracone na dyskusje i poprawki. Zacznij od listy kontrolnej, zanim zapytasz o wycenę.

Najczęściej zadawane pytania

Czy warto pisać własny moduł, jeśli na rynku jest płatna wtyczka?

Warto, gdy proces jest krytyczny dla sprzedaży, wymaga logiki, której nie ma w gotowcach, albo licencja rośnie razem z obrotem. Jeśli problem da się rozwiązać konfiguracją, własny kod to wyrzucone pieniądze. Prosty test: policz trzy lata licencji i porównaj z jednorazowym wdrożeniem plus utrzymaniem.

Ile trwa wdrożenie niestandardowego modułu dla sklepu?

Mały moduł, np. własna logika darmowej dostawy, to zwykle 2-4 tygodnie od briefu do wdrożenia. Średni, z integracją płatności lub kuriera, 4-8 tygodni. Złożony, z pełną dwukierunkową wymianą z ERP, 2-4 miesiące. Największy wpływ na termin ma nie kod, a czas oczekiwania na decyzje i dostępy.

Kto powinien być właścicielem briefu po stronie firmy?

Jedna osoba, która zna proces i ma prawo zatwierdzać zakres. Nie komitet, nie „dział”. Właściciel briefu odbiera etapy, odpowiada na pytania w ciągu jednego dnia roboczego i podpisuje odbiór.

Czy aktualizacja PrestaShop albo WooCommerce zepsuje mój moduł?

Może, jeśli moduł korzysta z wewnętrznych mechanizmów, które zmieniły się w nowej wersji. Dlatego w umowie warto zapisać, kto testuje moduł po aktualizacji i w jakim czasie zgłasza poprawki. Punktem odniesienia jest dokumentacja dla deweloperów: devdocs.prestashop-project.org.

Jak sprawdzić, czy nowy moduł nie gryzie się z innymi?

Zanim cokolwiek wdrożysz, zrób listę modułów i wtyczek, które dotykają tego samego obszaru: koszyka, rabatów, wysyłki, płatności. Testy na stagingu z pełnym zestawem aktywnych wtyczek pokażą konflikt szybciej niż przeglądanie kodu.

Ile realnie kosztuje utrzymanie modułu rocznie?

Zwykle 10-25% wartości wdrożenia rocznie, jeśli chcesz mieć aktualizacje i reakcję na błędy. Przy prostym module może to być kilkanaście godzin pracy w roku. Jeśli ktoś mówi, że utrzymanie jest darmowe, prawdopodobnie nie planuje żadnych aktualizacji.

Co jeśli w firmie pracuje kilka osób i każdy chce inaczej?

Zbierz uwagi, ale decyzję podejmuje właściciel procesu. Zapisz w briefie wersję docelową i listę rzeczy odrzuconych. To oszczędza najwięcej czasu, bo ucina powroty do tematów, które już były rozstrzygnięte.

Jeśli chcesz sprawdzić, czy twój pomysł na moduł ma sens biznesowy, napisz do DropDigital. Przejrzymy brief i powiemy wprost, co da się zrobić konfiguracją, a co wymaga kodu.

Źródła i materiały