Wdrożenia i optymalizacja WooCommerce w Toruniu rzadko rozsypują się technicznie — częściej rozsypują się organizacyjnie: brak zakresu na piśmie, brak środowiska staging, brak ustalonej listy materiałów po stronie klienta. Poniżej zbiera część organizacyjną projektu: 7 etapów z widełkami roboczogodzin, obowiązki obu stron, definicję ukończenia etapu i checklistę odbioru. To zestaw, którym możesz porównać dowolną ofertę — własną lub konkurencyjną — i zobaczyć, czego w harmonogramie brakuje. Szerszy opis usług znajdziesz w sekcji WooCommerce.
Pierwsze pytanie w projekcie nie brzmi „ile to kosztuje”, ale „naprawiamy czy budujemy od zera”. Odpowiedź da się ustalić na jednym spotkaniu, jeśli spojrzysz na cztery rzeczy: stabilność ruchu, konwersję, liczbę SKU i stan wtyczek.
Optymalizacja ma sens, gdy zachodzą co najmniej trzy warunki:
Wdrożenie od zera lub migracja będzie tańsze, gdy:
Zasada kosztu ukrytego: godzina przy nowym wdrożeniu zostaje w projekcie. Godzina przy naprawie starego sklepu często kończy się cofnięciem zmiany, bo kolejny błąd w bazie wychodzi po dwóch dniach. Praktyczny punkt opłacalności wypada wtedy, gdy szacowany czas naprawy zbliża się do połowy czasu wdrożenia od zera — od tego momentu płacisz dwa razy: raz za łatę, raz za obejście.
Pełny zakres prac po stronie wykonawcy znajdziesz w sekcji usługi WooCommerce — traktuj go jako punkt wyjścia do porównania ofert.
| Kryterium | Optymalizacja | Wdrożenie od zera |
|---|---|---|
| Liczba SKU | poniżej 300 | powyżej ok. 1000 lub rosnąca skokowo |
| Stabilność ruchu | 3+ miesiące powtarzalnych sesji | brak danych albo skoki po kampaniach |
| Stan wtyczek | wspierane, aktualizowane | porzucone, konfliktujące się |
| Stan bazy | brak duplikatów, poprawne relacje | duplikaty zamówień, klientów i meta |
| Storage zamówień | HPOS włączone lub możliwe do włączenia | brak HPOS przy dziesiątkach tysięcy zamówień |
Widełki poniżej to czas pracy zespołu (wdrożeniowiec, front, dev od integracji), nie czas kalendarzowy. Dla standardowego sklepu sumują się do 52–126 godzin. Każdy etap ma definicję ukończenia — bez niej etapu nie da się rozliczyć.
Klient dostarcza przed startem: dane produktowe (CSV/XML z SKU, ceną, stanem, atrybutami), zdjęcia w docelowej rozdzielczości, regulaminy i politykę prywatności, dane do faktur, dostępy do domeny i DNS.
Środowisko staging jest obowiązkowe, podobnie jak zasada: żadna zmiana nie wchodzi na produkcję bez testu na kopii z danymi. Sandbox płatności nie wystarczy — testuj na klonie z realnymi zamówieniami, bo tam wychodzą błędy podatków i wysyłek. Szczegóły techniczne znajdziesz w dokumentacji WooCommerce, a szerszy kontekst projektu w sekcji zakres wdrożenia sklepu internetowego.
Wycena jednej kwoty „za sklep” jest nieweryfikowalna. Weryfikowalna jest liczba godzin pomnożona przez stawkę. Poniższe widełki wynikają z sumy siedmiu etapów opisanych wyżej, przy założeniu, że etap danych produktowych skaluje się razem z katalogiem. Traktuj je jako planowanie budżetu, nie jako ofertę.
Co podnosi wycenę najbardziej:
Dlaczego rozliczenie z godzin chroni klienta: zakres zmienia się w prawie każdym projekcie. Przy stałej kwocie wykonawca albo zataja zmianę, albo ucina zakres, żeby zmieścić się w budżecie. Przy rozliczeniu godzinowym widzisz, ile kosztuje każda zmiana, zanim zostanie wykonana. W umowie wymagaj dwóch rzeczy: limitu godzin na etap (żeby projekt nie uciekł w nieskończoność) oraz pisemnej listy zmian w zakresie — każda zmiana zatwierdzona przed wykonaniem, z podaną liczbą godzin.
W miesięczne utrzymanie wchodzi zwykle: aktualizacje WordPressa, WooCommerce i wtyczek, kopie zapasowe, monitoring dostępności i czasu odpowiedzi, poprawki błędów po stronie wykonawcy, podstawowe wsparcie.
Ekstra rozliczane są: nowe funkcje i moduły, dodatkowe integracje, migracje, kampanie sezonowe (np. przygotowanie sklepu pod Black Friday), prace wydajnościowe poza budżetem utrzymania.
| Scenariusz | Roboczogodziny | Co dominuje w budżecie |
|---|---|---|
| Sklep do 300 SKU | 50–130 h | konfiguracja bazowa, płatności, kurierzy, szablon |
| Sklep 300–3000 SKU | 120–280 h | import i porządkowanie danych, wydajność katalogu i filtrów |
| B2B z cennikami indywidualnymi | 200–450 h | logika cen, role klientów, limity, faktury, integracje z ERP |
Zanim ruszysz motyw, wtyczki czy obrazy, zmierz punkt startowy. W Search Console otwórz raport „Core Web Vitals” i zapisz, ile adresów jest w grupie „do poprawy” na mobile. Potem PageSpeed Insights na trzech reprezentatywnych stronach: główna, kategoria z kilkudziesięcioma produktami, karta produktu z wariantami. Do tego TTFB z serwera (np. curl -s -o /dev/null -w '%{time_starttransfer}') oraz liczba zapytań SQL na stronę produktu i kategorii — Query Monitor pokaże je w stopce razem z czasem i źródłem. Jeśli kategoria generuje 250–300 zapytań, żadna kompresja zdjęć tego nie naprawi.
Dźwignie, które realnie zmieniają wynik, w kolejności zwrotu z nakładu:
object-cache.php i poprawnego WP_CACHE_KEY_SALT, inaczej staging i produkcja będą mieszać dane.wp_posts i wp_postmeta. Najpierw test na staging, bo starsze wtyczki potrafią czytać zamówienia po metadanych i przestają działać.wp_options z autoload i tabel transients — w sklepie działającym trzy lata to często setki MB. Ustaw limit i zadanie cron, żeby problem nie wrócił po miesiącu.Progi, do których warto dążyć: LCP poniżej 2,5 s, INP poniżej 200 ms, CLS poniżej 0,1 dla 75. percentyla realnych użytkowników. Kolejność prac ma znaczenie: najpierw serwer i baza (PHP, MySQL, cache obiektowy), potem kod i motyw (nieużywane wtyczki, własne zapytania), na końcu front-end. Odwrotna kolejność oznacza, że za dwa tygodnie i tak wrócisz do punktu wyjścia, tylko z mniejszym budżetem. Przed włączeniem cache sprawdź na staging: koszyk po dodaniu produktu, aktualność ceny po zmianie w panelu, stany magazynowe po zamówieniu, stronę „moje konto” dla zalogowanego klienta. Cache stron dla zalogowanych to najprostsza droga do gubionego koszyka i nieaktualnych cen — wyłapiesz to tylko ręcznym testem, nie audytem. Zakres takich prac opisujemy w sekcji WooCommerce.
| Dźwignia | Co daje | Ryzyko uboczne |
|---|---|---|
| Cache obiektowy (Redis/Memcached) | Spadek liczby zapytań SQL, krótszy TTFB na kartach produktu | Gubiony koszyk, mieszanie kluczy między środowiskami |
| HPOS | Szybsza obsługa zamówień i raportów, mniejsza tabela wp_postmeta | Niekompatybilne wtyczki czytające zamówienia z metadanych |
| WebP/AVIF + CDN | Mniejszy transfer obrazów, lepszy LCP | Podwójna konwersja, brak oryginałów, złe cache-busting |
| Lazy loading | Szybsze renderowanie długich kategorii | Lazy na obrazie LCP pogarsza wynik |
Integracja psuje się nie w dniu wdrożenia, a trzy tygodnie później — przy pierwszym zwrocie albo przy zamówieniu z płatnością odroczoną. Dlatego zacznij od mapy statusów, nie od wtyczki. Statusy WooCommerce, płatności i przesyłki to trzy różne słowniki i muszą mieć jawne przełożenie. Każdy stan, który nie mapuje się jednoznacznie, jest z definicji obsługiwany ręcznie — i lepiej policzyć teraz, ile takich zamówień będzie dziennie, niż odkryć to w poniedziałek rano.
Kierunek przepływu danych w integracji z ERP ustal na piśmie. Zwykle ERP jest źródłem prawdy o stanie magazynowym, ale nie zawsze o cenie sprzedaży — jeśli sklep trzyma promocje, import ceny z ERP je skasuje. Zapisz, kto wygrywa w każdym polu, i z jaką częstotliwością leci synchronizacja: stany co 5–15 minut, kartoteka raz na dobę, zamówienia natychmiast. Przy sprzedaży równoległej (sklep + kanał offline) synchronizacja raz na godzinę kończy się nadprzedażą i reklamacjami.
Zachowanie przy niedostępności API: żadne zamówienie nie może zniknąć. Potrzebna jest kolejka z ponowieniami (np. 3 próby: 1 min, 5 min, 30 min), zapisem błędu i powiadomieniem na maila obsługi. Jeśli kurier nie odpowiada, zamówienie zostaje w statusie „przetwarzane” z flagą „etykieta do wygenerowania” — nie w „wysłane”. Jeśli ERP nie odpowiada, sklep sprzedaje dalej na ostatnim znanym stanie i przyjmuje ryzyko nadprzedaży albo blokuje produkty poniżej progu.
Test na realnym zamówieniu: płatność 1 zł, wygenerowanie etykiety, wydruk, zwrot, faktura korygująca, anulowanie po opłaceniu. Pułapki, które widzimy najczęściej: duplikaty przesyłek przy ponowieniu requestu, brak idempotencji po stronie kuriera, nieaktualne stany przy dwóch zamówieniach w tej samej minucie i brak obsługi zamówień zagranicznych (inne formaty adresu, inne ceny przesyłek, VAT OSS). Punkt wyjścia do prac integracyjnych opisujemy w sekcji sklepy internetowe. Dokumentację mechanizmów zamówień i statusów znajdziesz w dokumentacji WooCommerce.
| Status WooCommerce | Status płatności | Status przesyłki | Obsługa ręczna |
|---|---|---|---|
| oczekiwanie na płatność | niezainicjowana / porzucona | brak | tak — weryfikacja po 24–48 h |
| wstrzymane (on-hold) | autoryzowana, niepobrana | brak | tak — potwierdzenie u operatora |
| przetwarzane | opłacone | etykieta utworzona / nadana | częściowo — korekta adresu |
| zrealizowane | opłacone | doręczona | nie — poza zwrotami |
| anulowane / zwrócone | zwrot lub chargeback | w drodze | tak — zatrzymanie paczki |
| nieudane | odrzucona | brak | tak — kontakt z klientem |
Pozycje zabiera nie sama zmiana platformy, a brak mapy adresów. Przed przeniesieniem czegokolwiek wyeksportuj pełną listę URL-i: z Search Console (raporty „Wydajność” i „Indeksowanie stron”), z sitemap.xml oraz crawlem — Screaming Frog na 500–2000 adresów, zależnie od wielkości sklepu. Na liście muszą być nie tylko produkty i kategorie, ale też filtry (?filter_...), paginacja, wpisy blogowe i strony statyczne. Każdy adres dostaje jeden wiersz: stary URL → nowy URL → typ reguły (1:1, wzorzec, brak odpowiednika).
Przekierowania 301 wdrażaj na poziomie serwera — w nginx albo .htaccess, nie wtyczką w WordPressie. Wtyczka dokłada zapytanie do bazy przy każdym wejściu na nieistniejący adres i przy kilku tysiącach przekierowań sama staje się wąskim gardłem. Filtry i paginację obsłuż inaczej niż produkty: filtrom ustaw noindex i canonical na wersję bez parametrów, paginację zostaw jako linki do kolejnych stron z self-canonical.
Najczęstszy błąd: przekierowanie wszystkich starych adresów na stronę główną. To kasuje widoczność kategorii — zamiast strony kategorii z 200 produktami Google dostaje sygnał, że temat już nie istnieje, a użytkownik ląduje na stronie bez treści, której szukał. Drugi błąd to przekierowanie wyłącznie produktów bez kategorii i wpisów blogowych, które generują ruch informacyjny.
Kolejność: staging → testy przekierowań (crawl po wdrożeniu) → wdrożenie na produkcję z przekierowaniami w tym samym momencie → zgłoszenie sitemap.xml w GSC → 30 dni monitoringu z cotygodniowym raportem 404. Po migracji sprawdź linki wewnętrzne (czy nie prowadzą do starych adresów), dane strukturalne typu Product i Offer zgodnie z dokumentacją Google, canonical oraz czas ładowania strony kategorii — po przejściu na nowy motyw kategoria potrafi zwolnić o sekundę. Harmonogram takich migracji rozpisujemy w sekcji wdrożenia i optymalizacja WooCommerce — organizacja.
| Co sprawdzić | Gdzie | Sygnał problemu |
|---|---|---|
| Przekierowania 301 | crawl po migracji, logi serwera | stary URL zwraca 200 lub 404 |
| Dane strukturalne | test wyników z elementami rozszerzonymi | brak Product/Offer na kartach produktu |
| Canonical | kod strony, GSC | canonical wskazuje stary adres |
| Błędy 404 | raport „Indeksowanie stron” w GSC | nowe 404 w pierwszych 7 dniach |
| Szybkość kategorii | PageSpeed Insights, Search Console | LCP pogorszone względem stanu przed migracją |
Pierwsze 30 dni po wdrożeniu to okres, w którym sprawdzasz nie „czy SEO działa”, ale cztery konkretne raporty w Search Console — i to na właściwości domenowej, nie na prefiksie URL. Filtr geograficzny pokazuje kraj, nie miasto, więc frazy lokalne łapiesz, dopisując „Toruń” i „kujawsko-pomorskie” do raportu zapytań i pilnując ich osobno. Tydzień po starcie nie zobaczysz tam 20 zapytań z samego Torunia i żaden wykonawca nie powinien Ci tego obiecywać.
Core Web Vitals liczone są z realnych sesji użytkowników (75. percentyl), więc przy kilkudziesięciu odsłonach dziennie próbka jest za mała, by wyciągać wnioski — pomocniczo użyj testu pojedynczego adresu. Jeśli LCP na karcie produktu przekracza 2,5 s, sprawdź po kolei: zdjęcia wgrane w oryginalnym rozmiarze, wtyczki ładowane globalnie na każdej podstronie, brak cache dla zalogowanych klientów. Metodologię i progi opisuje dokumentacja Core Web Vitals w Google Search Central.
Dane strukturalne, które realnie się wyświetlają: Product i Offer na karcie produktu, AggregateRating wyłącznie z opinii zbieranych we własnym sklepie, LocalBusiness z adresem punktu i godzinami. Nie oznaczaj gwiazdek, których nie masz, i nie wklejaj ocen z Allegro czy Ceneo — to najkrótsza droga do ręcznego działania.
Elementy lokalne działają na konwersję, nie na pozycje: strona dostawy i płatności z deklarowanym czasem dostawy dla Torunia i Bydgoszczy (np. 1–2 dni robocze), lista punktów odbioru, identyczne dane firmy w stopce, na stronie kontaktu, w LocalBusiness i na dokumentach sprzedaży.
Najczęstszą przyczyną braku widoczności jest jednak treść: opisy producenta skopiowane w całości na 400 produktów i puste kategorie bez ani jednego zdania. Jeśli dokładasz opisy i porządkujesz strukturę kategorii jako osobny etap, zakres takich prac rozbijamy na kroki w organizacji wdrożenia i optymalizacji WooCommerce.
| Raport w Search Console | Co sprawdzasz | Sygnał ostrzegawczy |
|---|---|---|
| Indeksowanie stron | Liczba zaindeksowanych vs zgłoszonych adresów | Skok wykluczonych powyżej 20% względem liczby produktów i kategorii |
| Błędy 404 | Adresy, do których prowadzą linki zewnętrzne i stare odnośniki | 404 na URL-u, który ma linki z forów lub katalogów |
| Core Web Vitals | LCP, INP, CLS w grupie „karty produktów” | LCP powyżej 2,5 s na najczęściej odwiedzanych produktach |
| Wyniki wyszukiwania / zapytania | Frazy z „Toruń”, „kujawsko-pomorskie”, nazwy miejscowości | Brak jakichkolwiek zapytań lokalnych po 60 dniach od startu |
Poniższą listę przechodzisz zaraz po odbiorze prac, na produkcji, bez zaglądania w kod. Każdy wiersz to objaw, prawdopodobna przyczyna, narzędzie do diagnozy i szybka naprawa.
| Objaw | Prawdopodobna przyczyna | Narzędzie | Szybka naprawa |
|---|---|---|---|
| Zamówienia z płatnością online zostają w statusie „Oczekująca na płatność”, maile nie wychodzą | Zadania cykliczne WP nie odpalają się — brak ruchu na stronie lub DISABLE_WP_CRON w wp-config.php | WP Crontrol: lista zadań i kolumna „następne uruchomienie” | Przełączyć na cron systemowy co 5 minut, wyłączyć WP-Cron w wp-config.php |
| Koszyk pusty po dodaniu produktu, u innej osoby działa | Page cache obejmuje /cart, /checkout, /moje-konto | Nagłówki odpowiedzi (HIT/MISS) + Query Monitor | Wykluczyć te adresy oraz ciasteczka woocommerce_cart_hash i woocommerce_items_in_cart |
| Jedna płatność, dwa zamówienia | Klient ponowił płatność lub webhook przetworzył się dwukrotnie | Panel operatora płatności (historia transakcji) vs lista zamówień | Porównać ID transakcji, dodać blokadę duplikatów po identyfikatorze płatności |
| Promocja -20% startuje dzień wcześniej wieczorem | Strefa czasowa WordPressa inna niż strefa serwera, harmonogram zapisany w UTC | Ustawienia → Ogólne + ustawienia harmonogramu we wtyczce | Ustawić Europe/Warsaw i przeliczyć daty startu oraz końca promocji |
| Baza rośnie o kilkaset MB miesięcznie bez nowych zamówień | Wygasłe rekordy w tabeli wp_options (transients) | WP-CLI: wp transient list --expired | Wyczyścić, znaleźć wtyczkę tworzącą transienty bez daty wygaśnięcia, wyłączyć ją |
| Biały ekran tylko na jednej karcie produktu | Błąd PHP przy wyłączonym WP_DEBUG_DISPLAY | Log błędów PHP na serwerze + Query Monitor | Włączyć logowanie, poprawić błąd, ustawić memory_limit zgodnie z wymaganiami WooCommerce |
| Klient nie dostaje potwierdzenia, w panelu zamówienie jest | Maile idą funkcją mail() i trafiają do spamu | Log wysyłki wtyczki SMTP, test SPF/DKIM | Skonfigurować SMTP z domeny sklepu i wysłać test na Gmaila oraz Outlooka |
| Checkout nie przechodzi dalej, bez komunikatu | Błąd JavaScript blokujący skrypt podsumowania | Konsola błędów przeglądarki i zakładka Network | Wyłączyć wtyczkę modyfikującą checkout, poprawkę wdrożyć najpierw na stagingu |
| Stany magazynowe rozjeżdżają się z magazynem | Brak synchronizacji z panelem kuriera lub ERP albo podwójne odejmowanie przy anulowaniu | Panel kuriera + historia zmian stanu produktu | Ustalić jedno źródło prawdy dla stanów i wyłączyć zapis w pozostałych miejscach |
| Sklep był niedostępny 40 minut i nikt o tym nie wiedział | Brak monitoringu i backupu | Sprawdź, czy istnieje zewnętrzny uptime monitor i data ostatniej kopii | Włączyć monitor co minutę i backup dzienny z retencją 30 dni |
Osobno wykonaj test zamówienia end-to-end na produkcji, na kwotę 1 zł, własną kartą: dodanie produktu do koszyka, kod rabatowy, płatność, wygenerowanie etykiety w panelu kuriera, mail do klienta, dokument sprzedaży (faktura lub paragon). Każdy krok zapisz z godziną i wynikiem. W raporcie odbioru powinny znaleźć się: wynik tego testu, lista znanych ograniczeń (np. „integracja z magazynem działa tylko w godzinach 6–22”), potwierdzenie podłączenia monitoringu wraz z dostępem do niego oraz wskazanie, kto odbiera powiadomienia o awarii. Mechanika zadań cyklicznych WooCommerce opisana jest w dokumentacji WooCommerce.
Zanim podpiszesz umowę, zadaj dziesięć pytań i zapisz odpowiedzi w mailu:
SLA nie musi być rozbudowane, ale musi mieć rozróżnienie priorytetów i kanał zgłoszeń. Typowy podział wygląda tak:
| Priorytet | Przykład | Czas reakcji (do) |
|---|---|---|
| Krytyczny | Sklep nie przyjmuje zamówień lub nie działa płatność | 2 h w godzinach 8–18 |
| Wysoki | Błędne ceny, część metod płatności nie działa | 4 h w dniu roboczym |
| Normalny | Błąd wyświetlania, literówka w treści | 1 dzień roboczy |
| Niski | Drobna zmiana lub nowa funkcja | 3–5 dni roboczych |
Kiedy abonament jest tańszy niż etat? Licz w godzinach, nie w złotówkach. Pełny etat to około 160 godzin miesięcznie, a typowa opieka nad sklepem to 5–15 godzin. Jeśli regularnie potrzebujesz ponad 40 godzin prac rozwojowych miesięcznie, taniej wychodzi własny specjalista albo freelancer na godziny — ale wtedy Ty odpowiadasz za backup, aktualizacje i monitoring. Abonament kupujesz wtedy, gdy potrzebujesz kogoś, kto odpowie o 9:00 w poniedziałek.
Praca zdalna z firmą spoza Torunia nie jest wadą. Znaczenie mają: komunikacja (jeden kanał zgłoszeń, potwierdzenie przyjęcia zgłoszenia), SLA i dostępność w godzinach pracy Twojego sklepu. Odległość nie ma znaczenia — poza trzema sytuacjami: warsztatem ustalającym zakres, przekazaniem dostępów przy odbiorze oraz problemem z integracją sprzętową (kasa fiskalna, terminal, czytnik w magazynie). Wtedy spotkanie na miejscu skraca sprawę z dni do godzin. Zakres typowej opieki nad sklepem opisujemy przy usłudze WooCommerce.
Brak środowiska staging — każda zmiana ląduje od razu na produkcji. Klient traci zamówienia, bo plugin do wysyłki zaktualizował się w trakcie dnia sprzedażowego.
Jak wykryć: Zapytaj wykonawcę, gdzie testuje aktualizacje. Jeśli odpowiedź brzmi „na stronie, wieczorem”, nie ma stagingu. Sprawdź też, czy w umowie jest zapis o kopii z danymi.
Jak naprawić: Wpisz staging jako obowiązkowy element etapu „środowisko i hosting” i zapis: żadna zmiana nie wchodzi na produkcję bez testu na kopii z danymi. Kopię odświeżaj przed każdym większym wdrożeniem.
Zakres ustalony ustnie lub w e-mailu bez listy funkcji. Po dwóch tygodniach okazuje się, że „logowanie B2B” znaczy dla obu stron coś innego.
Jak wykryć: Sprawdź, czy istnieje dokument z listą funkcji, integracji i liczbą szablonów. Jeśli w ofercie jest tylko „wdrożenie sklepu”, zakres jest otwarty.
Jak naprawić: Zamknij etap „audyt i zakres” dokumentem: lista funkcji, lista integracji, liczba SKU, liczba wersji językowych, kto dostarcza treści. Każdy punkt poza tą listą to osobna wycena.
Klient nie dostarcza materiałów w terminie, a projekt stoi. Godziny przestoju i tak trafiają na fakturę, tylko nikt ich nie zaplanował.
Jak wykryć: Porównaj datę startu prac z datą, w której realnie wpłynęły zdjęcia i opisy. Jeśli różnica jest większa niż tydzień, terminarz był fikcyjny.
Jak naprawić: Ustal twarde terminy na dane produktowe, zdjęcia w docelowej rozdzielczości, regulaminy i dane do faktur. Wpisz w umowę, że etap „dane produktowe” startuje dopiero po ich dostarczeniu.
Rozliczenie ryczałtowe bez limitu godzin na etap. Każda drobna zmiana zjada marżę wykonawcy, więc zmiany są odkładane na koniec — albo wykonywane po łebkach.
Jak wykryć: Zapytaj, co się dzieje, gdy w trakcie prac dojdzie jedna sekcja na stronie głównej i jedna metoda płatności. Jeśli nikt nie potrafi tego wycenić, nie ma mechanizmu zmian.
Jak naprawić: Ustal limit roboczogodzin na etap i stawkę za godziny ponad limit. Dopisz prostą zasadę: każda zmiana zakresu to wpis na liście zmian z wyceną i akceptacją.
Brak definicji ukończenia etapu. Etap „konfiguracja bazowa” ciągnie się tygodniami, bo nikt nie wie, kiedy jest skończony i kiedy można go rozliczyć.
Jak wykryć: Poproś o listę rzeczy, które muszą działać, żeby etap uznać za zamknięty. Jeśli wykonawca odpowiada ogólnie, odbiór będzie uznaniowy.
Jak naprawić: Dla każdego etapu zapisz 3–6 konkretnych, testowalnych warunków. Przykład dla integracji płatności: zamówienie testowe przechodzi na produkcji, e-mail potwierdzający dochodzi, faktura generuje się poprawnie.
Odbiór bez testów na realnych danych: płatności w trybie produkcyjnym, maile transakcyjne, faktury, reguły dostawy dla konkretnych kodów pocztowych. Błędy wychodzą dopiero u pierwszych klientów.
Jak wykryć: Policz, ile zamówień testowych przejdzie całą ścieżkę przed startem. Zero — odbiór jest wyłącznie wizualny.
Jak naprawić: Zrób listę scenariuszy: zamówienie z przedpłatą, za pobraniem, z kodem rabatowym, z darmową dostawą od progu, zwrot. Każdy scenariusz przechodzi na stagingu i potem raz na produkcji po starcie.
Organizacja wdrożenia WooCommerce to nie dodatek do technicznej części projektu — to ona decyduje, czy sklep wystartuje w terminie i bez sporów o fakturę. Ustal zakres na piśmie, rozbij pracę na 7 etapów z widełkami godzin, wpisz limity na etap i definicję ukończenia. Wymagaj stagingu z danymi i domykaj odbiór scenariuszami testowymi, nie wrażeniami z przeglądania strony.
Suma roboczogodzin z 7 etapów to 52–126 godzin samej pracy, bez czasu oczekiwania na Twoje materiały. Przy sklepie do 300 SKU z dwiema metodami płatności i jednym kurierem bliżej dolnej granicy, przy sklepie z tysiącami produktów i integracjami z systemem magazynowym — bliżej górnej. Kalendarzowo oznacza to zwykle od kilku tygodni do kilku miesięcy, a najczęstszym opóźnieniem nie jest kod, tylko brakujące zdjęcia i opisy.
Dane produktowe, zdjęcia w docelowej rozdzielczości, regulaminy i politykę prywatności, dane do faktur oraz dostępy do domeny i DNS. Bez zdjęć można uruchomić strukturę sklepu i przetestować zamówienia, ale nie da się skończyć etapu danych produktowych i wystartować ze sprzedażą.
Tak, i to niezależnie od rozmiaru. Staging to kopia sklepu z danymi, na której sprawdzasz aktualizacje wtyczek, zmiany szablonu i nowe integracje. Zasada jest prosta: żadna zmiana nie wchodzi na produkcję bez testu na kopii z danymi. Koszt przygotowania kopii jest znacznie niższy niż jeden dzień sprzedaży z zepsutym checkoutem.
Zapisem w umowie: limit godzin na etap, stawka za godziny powyżej limitu i lista zmian z wyceną oraz Twoją akceptacją. Rozliczenie z liczby godzin chroni Cię przy zmianie zakresu — płacisz za faktycznie wykonaną pracę, a nie za ryczałt, który ktoś musi „nagiąć”, żeby wyjść na zero. Bez mechanizmu zmian wykonawca zwykle odkłada je na koniec projektu.
Utrzymanie obejmuje zwykle aktualizacje rdzenia i wtyczek, kopie zapasowe, monitoring dostępności i bieżące wsparcie w ograniczonym wymiarze godzin. Osobno rozliczane są nowe funkcje, dodatkowe integracje, kampanie sezonowe i prace optymalizacyjne. Ustal to przed startem — najgorszy scenariusz to sytuacja, w której po trzech miesiącach okazuje się, że aktualizacje jednak nie były w pakiecie.
Dla każdego etapu zapisujesz 3–6 konkretnych warunków, które muszą działać, żeby etap uznać za zamknięty i rozliczyć. Przykład dla integracji płatności: zamówienie testowe przechodzi na produkcji, e-mail potwierdzający dochodzi, faktura generuje się poprawnie, a zwrot środków działa. Dokumentacja WooCommerce opisuje konfigurację tych mechanizmów: WooCommerce Documentation.
W dużej mierze tak, tylko zakres jest węższy. Zamiast etapu danych produktowych masz audyt stanu obecnego, a zamiast konfiguracji od zera — pracę na kopii produkcji. Nadal potrzebujesz stagingu, listy zmian z wyceną i pomiaru bazowego przed pierwszymi modyfikacjami, inaczej nie udowodnisz, że cokolwiek przyspieszyło.
Jeśli chcesz porównać swój harmonogram z tym, jak pracujemy na co dzień, zajrzyj do sekcji Sklepy internetowe albo napisz do nas z krótkim opisem projektu — odpowiemy, które etapy u Ciebie już istnieją, a których brakuje.