Hasło „wierzymy w twój pomysł” ma sens tylko wtedy, gdy da się je rozłożyć na etapy, godziny pracy i numer pierwszego zamówienia. Poniżej jest część organizacyjna wdrożenia: co przygotować przed startem, jak wykryć typowe błędy i w jakiej kolejności domykać prace. Nie znajdziesz tu strategii produktu ani planu marketingowego — skupiamy się na tym, żeby sklep stanął i przyjął pierwsze zamówienie w 3–8 tygodni od decyzji. Sam pomysł to 0% tej drogi; resztę robi proces.
Pomysł to punkt wyjścia, nie kanał sprzedaży. Żeby pierwsze zamówienie mogło wpłynąć, musi istnieć sześć warstw: strona sklepu, płatności online, wysyłka, obsługa zwrotów, obsługa klienta i wsparcie po starcie. Brak którejkolwiek oznacza, że sklep stoi gotowy, ale nikt w nim nie kupuje.
Realny horyzont od decyzji „robimy sklep” do pierwszego opłaconego zamówienia to 3–8 tygodni na gotowej platformie (WooCommerce, PrestaShop). Rozkłada się to mniej więcej tak: tydzień na ustalenie zakresu, 2–4 tygodnie na konfigurację i szablon, tydzień na integracje, tydzień na migrację danych, tydzień na testy. Najczęstszy poślizg nie wynika z technologii, tylko z braku zdjęć i opisów. Jeśli 40 z 60 produktów nie ma zdjęć w szerokości min. 1200 px, termin się przesuwa — i to jest jedyna przyczyna, którą klient kontroluje w 100%.
Trzy pytania, które kwalifikują pomysł:
Widełki poniżej są realne dla sklepu z kilkudziesięcioma do kilkuset produktami, na gotowym motywie, bez niestandardowego modułu na miarę. Przy katalogu powyżej 2000 SKU górne wartości się rozciągają — głównie na migracji.
Kolejność etapów: discovery i zakres, wybór platformy, konfiguracja i szablon, integracje, migracja danych, testy i start. Etapy 3–5 mogą częściowo iść równolegle, ale testy zawsze na końcu i zawsze na docelowej konfiguracji, nie na wersji roboczej.
Definicja „gotowe do startu” jest jedna i mierzalna: 10 zamówień testowych, w tym 1 złożone jako gość (bez konta), 1 z kodem rabatowym i 1 przeprowadzone z pełnym zwrotem — od zgłoszenia, przez potwierdzenie, po zwrot środków na konto. Jeśli zwrot nie działa na testach, nie zadziała też w tygodniu premiery, a wtedy kosztuje opinię klienta.
Co klient przygotowuje przed pierwszym spotkaniem:
Bez tych czterech punktów pierwsze spotkanie zamienia się w zbieranie danych, a nie w planowanie.
| Etap | Widełki | Efekt na wyjściu |
|---|---|---|
| Discovery i zakres | 4–8 h | Lista kanałów płatności, kurierów, sposobu liczenia VAT, liczby SKU |
| Wybór platformy | 2–4 h | Decyzja WooCommerce / PrestaShop / SaaS wraz z uzasadnieniem |
| Konfiguracja i szablon | 20–40 h | Motyw, kategorie, warianty, strefy wysyłki, podatki, strony informacyjne |
| Integracje | 6–20 h | Płatności, moduł kurierski, faktury, newsletter, magazyn |
| Migracja danych | 8–30 h | Import CSV, mapowanie kolumn, zdjęcia, przekierowania 301 ze starych adresów |
| Testy i start | 8–16 h | 10 zamówień testowych z pełnym zwrotem, poprawki, publikacja |
Nie porównuj listy funkcji. Odpowiedz na cztery pytania i decyzja zapada sama.
PrestaShop wygrywa przy katalogu powyżej 2000 SKU. Warianty (kombinacje cech), multistore i zaawansowane reguły cenowe są w rdzeniu — nie dokupujesz do nich wtyczek, więc nie płacisz co miesiąc za każdą z nich osobno. Reguły cenowe pozwalają ustawić rabat zależny od grupy klienta, ilości i kategorii jednocześnie. Przy kilku tysiącach produktów w WooCommerce zaczyna brakować wydajności przy filtrowaniu i wariantach, a wtyczki do nich rozrastają się do kilkunastu pozycji na liście.
WooCommerce wygrywa, gdy sklep jest częścią serwisu na WordPressie. Jeśli masz blog, bazę wiedzy i treści, które mają pracować na SEO, jeden system jest tańszy w utrzymaniu niż dwa. Redakcja, role użytkowników, planowanie wpisów, komentarze — to wszystko jest już gotowe. Pisanie treści pod ludzi, a nie pod wyszukiwarkę, ma osobne znaczenie dla widoczności, ale o tym w innym miejscu.
Kiedy SaaS odpada: przy dużym katalogu i potrzebie niestandardowych modułów. Abonament + płatne aplikacje rosną z każdym SKU i każdą funkcją, a przy wyjściu zostajesz z eksportem, którego nie da się w prosty sposób przenieść. Jednorazowe wdrożenie na własnym hostingu ma wyższy próg wejścia, ale jego koszt przestaje rosnąć, gdy sklep już działa. Dodatkowo przy niestandardowym module w SaaS zwykle słyszysz „nie ma takiej opcji”, a nie „zrobimy to w 12 godzinach”. Punkty zaczepienia dla dewelopera znajdziesz w dokumentacji dla deweloperów PrestaShop — sprawdzisz tam między innymi, jak wygląda struktura modułu i szablonów, zanim podejmiesz decyzję.
| Kryterium | PrestaShop | WooCommerce |
|---|---|---|
| Liczba SKU | Powyżej 2000 — warianty i filtry w rdzeniu | Do ok. 1000–2000 bez dodatkowych optymalizacji |
| Rynki i języki | Multistore w standardzie, osobne ceny i waluty | Multisite lub wtyczki wielojęzyczne |
| B2B i ceny indywidualne | Grupy klientów i reguły cenowe w rdzeniu | Wymaga wtyczki lub dopisania logiki |
| Budżet na rozwój | Wyższy próg wejścia, niższe koszty miesięczne | Niższy próg wejścia, wyższe koszty wtyczek |
Wycena sklepu zaczyna się od jednej liczby: stawki godzinowej. Reszta to mnożenie. Jeśli agencja podaje kwotę bez rozbicia na godziny, nie masz jak sprawdzić, za co płacisz — a przy pierwszej zmianie zakresu nie masz się do czego odwołać.
Godzina pracy obejmuje cztery rzeczy, nie tylko pisanie kodu: pracę dewelopera, komunikację z Tobą (doprecyzowanie koszyka, statusów, maili), testy oraz wdrożenie na produkcję wraz z konfiguracją DNS i certyfikatu. W praktyce 10–20% budżetu schodzi na komunikację i testy — to nie marnotrawstwo, tylko koszt tego, że sklep ma działać, a nie „prawie działać”.
Do tego koszty, które rzadko pojawiają się w ofercie: licencje wtyczek 200–1500 zł rocznie, szablon 300–1500 zł jednorazowo, serwer/VPS 30–250 zł miesięcznie, certyfikat SSL (często w cenie hostingu), płatny ruch w pierwszych miesiącach. Poproś o te pozycje osobno — dopłaty po starcie bolą bardziej niż wyższa wycena na wejściu.
Prosty próg opłacalności własnego modułu: jeśli roczna licencja wtyczki przekracza jednorazowy koszt 6–10 h pracy, własny moduł zwraca się w pierwszym roku. Przy stawce 120 zł/h i licencji 900 zł/rok to 7,5 h — czasem warto dopisać funkcję samemu, czasem nie.
| Zakres | Godziny | Co wpływa na górną granicę |
|---|---|---|
| Sklep podstawowy | 40–80 h | liczba wariantów produktów, niestandardowy szablon |
| Płatności + kurierzy | 90–160 h | liczba bramek, płatności odroczone, wielu kurierów |
| Migracja z SEO | 120–200 h | liczba adresów URL do przekierowania, historia treści |
Sklep bez integracji to katalog. Wartość siedzi w tym, co dzieje się po kliknięciu „Zamawiam”.
Płatności. Minimum: BLIK, szybki przelew, karta. Płatności odroczone dodają konwersji, ale generują własną obsługę. Każda bramka musi mieć tryb testowy i produkcyjny — testy robi się na kartach testowych i na prawdziwej, małej kwocie po przełączeniu na produkcję. Sprawdź dwa scenariusze, o których większość zapomina: nieudana płatność (zamówienie zostaje w statusie „oczekuje na płatność”, klient dostaje maila z linkiem do ponownej próby) oraz zwrot środków (czy da się zrobić z panelu sklepu, czy trzeba wchodzić do panelu operatora).
Kurierzy. InPost Paczkomaty, DPD, DHL — przez API, nie przez przepisywanie danych. Integracja powinna: generować etykiety, pobierać listę punktów odbioru do mapy w koszyku, przyjmować statusy zwrotne z systemu kuriera i aktualizować status zamówienia w sklepie. Bez tego ostatniego punktu wysyłasz klientowi link do śledzenia ręcznie.
ERP i księgowość. Subiekt, Comarch, Fakturownia. Ustal kierunek synchronizacji (kto jest źródłem prawdy o stanie magazynowym), częstotliwość — dla stanów magazynowych 5–15 minut przy normalnym ruchu — oraz co się dzieje, gdy API nie odpowiada. Kolejka z ponowieniem jest obowiązkowa, inaczej jeden timeout oznacza nadmiarowe zamówienie.
Pułapka operacyjna: integracja bez automatycznych statusów i zwrotów zamienia się w ręczną pracę po przekroczeniu ok. 100 zamówień miesięcznie. Wtedy dochodzi etat, którego nie było w budżecie.
| Obszar | Co musi działać automatycznie | Typowa pułapka |
|---|---|---|
| Płatności | tryb testowy/produkcyjny, ponowna próba, zwroty | brak scenariusza nieudanej płatności |
| Kurierzy | etykiety, punkty odbioru, statusy zwrotne | statusy aktualizowane ręcznie |
| ERP / księgowość | stany magazynowe co 5–15 min, dokumenty | brak kolejki i ponowień przy błędzie API |
Na hostingu da się oszczędzić, ale nie na wszystkich warstwach. Zacznij od parametrów, poniżej których nie ma po co startować:
Punkty przesiadkowe. Shared hosting wystarcza do kilkudziesięciu zamówień dziennie, jeżeli oferuje PHP 8.2+, HTTP/2 lub HTTP/3 i sensowny panel. Przy rosnącej bazie i integracjach (kolejki, cron co kilka minut, Redis) przechodzisz na VPS — dostajesz kontrolę nad konfiguracją, ale też obowiązek aktualizacji i monitoringu. Jeśli nie ma w firmie osoby technicznej, managed hosting jest tańszy niż etat, nawet gdy cena za miesiąc wygląda wysoko.
Kopie zapasowe w modelu 3-2-1: trzy kopie, na dwóch różnych nośnikach, jedna poza serwerem produkcyjnym. Raz na kwartał odtwórz kopię na środowisku testowym i sprawdź, czy sklep wstaje. Kopia, której nie odtworzono, nie jest kopią — to plik, w którym masz nadzieję.
Konfiguracja wpływa na wynik. Cel: TTFB poniżej 400 ms na stronie produktu. Do tego cache obiektowy przy WooCommerce, kompresja obrazów do WebP, włączone cache stron z wykluczeniem koszyka i panelu klienta. Sprawdź to w praktyce, bo progi Core Web Vitals są liczone na rzeczywistych wizytach użytkowników, a nie w laboratorium — warto przejść przez dokumentację Web Vitals i porównać własne pomiary z tym, co raportuje Search Console.
Nie przenoś sklepu „przy okazji zmiany szablonu”. Migracja hostingu i zmiana wyglądu w jednym tygodniu to dwa razy trudniejsze szukanie przyczyny, gdy coś przestanie działać.
| Parametr | Minimum startowe | Kiedy podnieść |
|---|---|---|
| CPU / RAM | 2 vCPU / 4 GB | WooCommerce + duża baza: 8 GB RAM |
| Dysk | NVMe | Zawsze, bez wyjątków |
| PHP / baza | PHP 8.2+, MySQL 8 / MariaDB 10.6 | Aktualizacja razem z wtyczkami |
| Cache | Redis (cache obiektowy) | Przy WooCommerce i integracjach |
| TTFB | poniżej 400 ms | Przy każdym wzroście powyżej progu |
Zanim ktokolwiek kupi, Google musi wiedzieć, co ma zaindeksować. Zaczynasz od trzech rzeczy: robots.txt, sitemap.xml i parametrów filtrów. W robots.txt zezwalasz na kategorie i produkty, blokujesz /koszyk, /zamowienie, /moje-konto oraz wewnętrzne wyszukiwanie (?s=, ?q=). Sitemapę zgłaszasz w Google Search Console i sprawdzasz, czy zawiera docelowe adresy produktów, a nie przekierowania.
Największy cichy zabójca indeksu to parametry sortowania i filtrowania: ?orderby=, ?price=, ?color=. Jeden katalog 300 produktów potrafi wygenerować kilka tysięcy adresów z identyczną treścią. Rozwiązanie jest jedno: canonical wskazujący na wersję bez parametrów albo blokada w robots.txt dla tych, które nie mają wartości SEO. Efekt widzisz w Search Console w raporcie „Zaindeksowane, ale zablokowane" i w statystyce duplikatów.
Drugi filar to szybkość na telefonie. Cele są twarde: LCP poniżej 2,5 s, INP poniżej 200 ms, CLS poniżej 0,1. W praktyce psują je: zdjęcia produktowe wgrane w pełnej rozdzielczości 4000 px, moduły dociągające skrypty na każdej podstronie i banery bez zarezerwowanej wysokości. Zmierz to PageSpeed Insights przed wdrożeniem i po nim — na tym samym adresie i na mobile.
Do wyników z ceną i dostępnością potrzebne są dane strukturalne Product oraz Offer, a do ścieżki nawigacji BreadcrumbList. Bez nich Google pokaże zwykły niebieski link, a konkurencja z ceną obok.
Sprzedaż poza Polską otwiera się dopiero wtedy, gdy dodasz hreflang, osobne waluty, osobne metody wysyłki i jasno policzony koszt zwrotu w opisie. Sam tłumacz nie wystarczy. Przez pierwsze 90 dni płatny ruch (Google Ads, Meta) jest wsparciem — dopóki treści i SEO nie zaczną pracować organicznie.
| Wskaźnik | Cel na mobile | Co najczęściej go psuje |
|---|---|---|
| LCP | poniżej 2,5 s | zdjęcia hero w pełnej rozdzielczości, brak cache |
| INP | poniżej 200 ms | zewnętrzne moduły, ciężki JavaScript, chaty |
| CLS | poniżej 0,1 | obrazy bez width/height, banery wstrzykiwane nad treścią |
Wdrożenie kończy się w dniu, w którym sklep przyjmuje pierwsze zamówienie. Od tego momentu zaczyna się druga, dłuższa część pracy. W typowym zakresie opieki po starcie są cztery bloki: aktualizacje PrestaShop i wersji PHP (nowa gałąź PHP wychodzi co roku i starsza przestaje dostawać poprawki bezpieczeństwa), monitoring dostępności sklepu co minutę z alertem SMS, kopie zapasowe z testem odtworzenia raz na kwartał oraz godziny na wsparcie autorskie i rozwój funkcji.
Punkt o kopii zapasowej warto doprecyzować: backup, którego nikt nie odtworzył, nie jest kopią zapasową. Raz na kwartał odtwarzasz sklep na środowisku testowym i sprawdzasz, czy baza i pliki wgrywają się bez błędów.
Umowa bez SLA to umowa bez terminu. Sensowne poziomy wyglądają tak: reakcja w 4 h w dni robocze, reakcja w 8 h lub do następnego dnia roboczego. Reakcja oznacza potwierdzenie zgłoszenia i wstępną diagnozę — nie naprawę. To rozróżnienie wpisz do umowy, bo inaczej każde zdarzenie kończy się sporem.
Budżet rozłóż realistycznie: około 60% na wdrożenie i 40% na rozwój oraz utrzymanie w pierwszych sześciu miesiącach. Sklep, w który włożyłeś cały budżet, a potem nic, stoi w miejscu.
Co mierzyć co miesiąc: konwersję, liczbę porzuconych koszyków, czas odpowiedzi serwera (TTFB) i liczbę błędów PHP w logach. Cztery liczby w jednym mailu raz w miesiącu mówią więcej niż raport ze 40 stron.
| Poziom SLA | Czas reakcji | Kiedy wystarcza |
|---|---|---|
| Priorytetowy | 4 h w dni robocze | sklep robi obrót powyżej kilkudziesięciu tys. zł miesięcznie |
| Standardowy | 8 h w dni robocze | mniejszy sklep, sprzedaż w godzinach pracy |
| Ekonomiczny | do następnego dnia roboczego | sklep w fazie startu, ruch poniżej 100 zamówień/mies. |
Ta lista działa też wtedy, gdy wdrożenie robi ktoś inny. Każdy punkt ma metodę sprawdzenia, nie tylko ostrzeżenie.
| Pułapka | Jak wykryć | Kiedy sprawdzić |
|---|---|---|
| Płatności nietestowane | test realnej karty na 1 zł, pełny łańcuch statusów | przed startem |
| Brak przekierowań 301 | raport 404 w Search Console | 7. dzień po starcie |
| Nadpisane pliki szablonu | diff szablonu dziecka przed aktualizacją | przed każdą aktualizacją |
| Niezabezpieczone formularze | limit prób + weryfikacja serwerowa, test wysyłki | przed startem i po każdej zmianie formularza |
| Brak właściciela projektu | lista osób decyzyjnych i technicznych w umowie | na starcie współpracy |
Start prac przed zebraniem treści: brak zdjęć, opisów, regulaminu i cennika z VAT.
Jak wykryć: Na pytanie „kiedy dostaniemy materiały?” nikt nie umie podać daty. Programista w tym czasie konfiguruje szablon na przykładowych produktach, które i tak trzeba wyrzucić.
Jak naprawić: Przed pierwszym spotkaniem wypisz listę materiałów z osobą odpowiedzialną i terminem. Zdjęcia i opisy produktów startowych (np. 20–50 pozycji) muszą być gotowe najpóźniej na etapie konfiguracji szablonu.
Wdrożenie prowadzone jako jeden niepodzielny projekt, bez etapów i odbiorów.
Jak wykryć: Nie ma harmonogramu z etapami i płatnościami. Klient pyta „co się dzieje?” co tydzień, a odpowiedź brzmi „trwają prace”.
Jak naprawić: Podziel prace na sześć etapów: discovery i zakres, wybór platformy, konfiguracja i szablon, integracje, migracja danych, testy i start. Każdy etap kończy się krótkim podsumowaniem na piśmie i decyzją o przejściu dalej.
Brak zdefiniowanego „gotowe do startu”. Nikt nie wie, kiedy sklep jest skończony.
Jak wykryć: Pojawiają się zdania „to jeszcze dopiszemy po starcie” i brak listy testów. Start przesuwa się tygodniami bez wyraźnej przyczyny.
Jak naprawić: Ustal definicję: 10 zamówień testowych, w tym 1 złożone jako gość, 1 z kodem rabatowym i 1 z pełnym zwrotem środków. Dopiero po tym sklep idzie na produkcję.
Wybór platformy na podstawie cudzego porównania funkcji, bez własnych kryteriów.
Jak wykryć: Decyzja zapada bez odpowiedzi na pytania o liczbę SKU, liczbę rynków i języków oraz sprzedaż B2B z cenami indywidualnymi.
Jak naprawić: Zrób tabelę decyzyjną po czterech kryteriach: liczba SKU, rynki i języki, B2B z cenami indywidualnymi, budżet na rozwój. Decyzję podejmij w 15 minut na podstawie tej tabeli, nie na podstawie rankingów.
Dopisywanie funkcji w trakcie prac bez zmiany budżetu i terminu (scope creep).
Jak wykryć: Lista funkcji rośnie po podpisaniu wyceny, a zakres „drobnych poprawek” przekracza kilkanaście godzin. Faktury nie nadążają za ustaleniami.
Jak naprawić: Ustal zakres MVP na piśmie i osobną listę backlogu. Każda nowa pozycja dostaje własną wycenę w godzinach i nową datę — albo czeka na kolejny etap.
Migracja z istniejącego sklepu bez mapy przekierowań 301 i bez zachowania adresów URL.
Jak wykryć: Przed startem nikt nie porównał starych adresów z nowymi. Spadek ruchu z organicznych wejść widać w statystykach dopiero po dwóch–trzech tygodniach.
Jak naprawić: Przed wdrożeniem przygotuj plik ze starymi i nowymi adresami URL oraz reguły 301, a po starcie sprawdź w Search Console, czy adresy się indeksują bez błędów. Zasady tworzenia treści, które mają szansę na widoczność, opisuje dokumentacja Google dla twórców treści: https://developers.google.com/search/docs/fundamentals/creating-helpful-content
„Wierzymy w twój pomysł” to nie hasło, a proces: sześć etapów, konkretne godziny i jasna definicja startu. Bez przygotowanych treści, regulaminu i ceny z VAT każdy harmonogram się rozjeżdża, niezależnie od tego, jak dobry jest pomysł. Największy wpływ na koszt i termin mają trzy decyzje: platforma, zakres integracji i to, czy migrujesz dane z istniejącego sklepu. Ustal te trzy rzeczy przed pierwszym spotkaniem i reszta prac stanie się przewidywalna.
Na gotowej platformie typowy czas to 3–8 tygodni. Dolna granica jest możliwa, gdy masz już treści, zdjęcia i regulamin, a zakres ogranicza się do konfiguracji i podstawowych integracji. Górna dotyczy migracji z zachowaniem SEO, niestandardowych modułów albo sprzedaży B2B z cenami indywidualnymi.
Wyceniamy w godzinach pracy, nie w gotowych pakietach. Sklep podstawowy to 40–80 godzin, sklep z płatnościami i integracjami kurierskimi 90–160 godzin, a migracja z zachowaniem SEO 120–200 godzin. Do tego dochodzą koszty, które nie są pracą: licencje płatnych wtyczek (200–1500 zł rocznie), szablon, serwer, certyfikat i budżet na płatny ruch.
PrestaShop wygrywa przy katalogu powyżej 2000 SKU, bo wbudowane warianty, multistore i zaawansowane reguły cenowe nie wymagają dokupywania wtyczek. WooCommerce wygrywa, gdy sklep jest częścią serwisu na WordPressie i liczy się elastyczność treści oraz integracja z blogiem. Dokumentacja techniczna PrestaShop jest dostępna pod adresem: https://devdocs.prestashop-project.org/
Nie. Pomysł odpowiada na pytanie „co sprzedajemy”, ale sklep to jeszcze strona, płatności, wysyłka, obsługa zwrotów i wsparcie po starcie. Przed startem warto odpowiedzieć na trzy pytania kwalifikujące: kto kupuje i jak trafia do sklepu, ile kosztuje pozyskanie klienta oraz czy marża pokrywa wysyłkę i prowizje płatności.
Przy małym katalogu i standardowych funkcjach często tak — koszt jest przewidywalny miesięcznie. Przy dużym katalogu i potrzebie niestandardowych modułów abonament rośnie szybciej niż jednorazowe wdrożenie, bo płacisz za każdy dodatkowy zakres co miesiąc, a nie raz.
Policz roczny koszt licencji. Jeśli przekracza on jednorazowy koszt 6–10 godzin pracy programisty, własny moduł zwraca się w pierwszym roku. Jeśli licencja jest tańsza, wtyczka zwykle wygrywa, bo dostajesz aktualizacje i wsparcie bez utrzymywania kodu.
Nie blokuj całego projektu — podziel prace. Konfigurację platformy, szablon i integracje można prowadzić równolegle na niewielkiej grupie produktów startowych. Import pełnego katalogu zrób po zatwierdzeniu wyglądu szablonu, żeby nie powtarzać pracy dwa razy.
Jeśli chcesz przełożyć swój pomysł na harmonogram i widełki godzinowe, napisz do nas — powiemy wprost, co da się zrobić w 3–8 tygodni, a co wymaga osobnego etapu.