Key features and functionalities w kontekście sklepu to nie lista z oferty handlowej, a zestaw funkcji, które da się wskazać palcem w procesie zamówienia i zmierzyć w GA4. Feature oznacza, co system potrafi; functionality — jak ta zdolność działa w praktyce, od koszyka do faktury i statusu przesyłki. Poniżej rozkładam temat na cztery części: rdzeń PrestaShop 8.x, realne różnice wobec WooCommerce, funkcje przekładające się na konwersję oraz pomiar, bez którego żadna z tych decyzji nie ma podstaw. Bez obiecywania cudów — tylko to, co można sprawdzić w panelu sklepu i w danych analitycznych.
Key features and functionalities w ofercie wygląda jak lista życzeń: dwadzieścia punktów, każdy z ptaszkiem. W codziennej pracy sklepu to dwa różne pojęcia i warto je rozdzielić. Feature to zdolność systemu — PrestaShop potrafi obsłużyć wiele języków, warianty produktu, faktury PDF. Functionality to sposób, w jaki ta zdolność działa w procesie zamówienia: czy klient z Niemiec dostaje e-mail ze statusem „Wysłano” po niemiecku, czy zmiana rozmiaru przelicza cenę i stan bez przeładowania strony, czy faktura PDF powstaje sama przy zmianie statusu na „Płatność zaakceptowana”.
Przykład pary, którą często rozbieramy z klientami: wielojęzyczność jako feature i automatyczne tłumaczenie statusów zamówień oraz szablonów e-mail jako functionality. Pierwsze mówi „mamy 4 wersje językowe”. Drugie mówi: zamówienie #1043 zmieniło status na „Wysłane”, a klient z Włoch dostał wiadomość po włosku, z poprawną nazwą statusu i numerem przesyłki. Tłumaczenia szablonów ustawiasz w panelu: Międzynarodowe → Tłumaczenia → Tłumaczenia szablonów e-mail.
Zanim funkcja trafi do umowy wdrożeniowej, przepuszczamy ją przez trzy pytania:
Pułapka powtarza się w co drugim przetargu: funkcje wymienione w ofercie, ale nigdy nie włączone i nieprzetestowane. W panelu wpisane są cztery języki, działa jeden; jest moduł zwrotów, ale nikt nie wie, gdzie kliknąć. Włącz, złóż zamówienie testowe, sprawdź e-mail i fakturę. Po stronie Google mierzalność wspierają dane strukturalne produktu — cena i dostępność widoczne w wynikach.
| Feature (co system potrafi) | Functionality (jak działa w procesie) |
|---|---|
| Wielojęzyczność (4 wersje) | Status zamówienia i e-mail po języku klienta, bez ręcznego kopiowania |
| Warianty produktu | Zmiana rozmiaru przelicza cenę i stan, koszyk aktualizuje się bez przeładowania |
| Statusy zamówień | Zmiana na „Wysłane” wysyła e-mail i udostępnia fakturę PDF |
| Reguły cenowe | Rabat 10% od 500 zł nalicza się sam w koszyku, także dla zalogowanych B2B |
Rdzeń PrestaShop 8.x daje więcej, niż większość firm zakłada na starcie. Katalog: produkty, kombinacje generowane z atrybutów (rozmiar, kolor, pojemność), cechy, stany magazynowe, tryb multistore. Uwaga na eksplozję kombinacji: 5 kolorów × 8 rozmiarów = 40 wariantów na produkt, każdy z własnym SKU, ceną i stanem. Przy kilku tysiącach kombinacji na jednej karcie panel zaczyna się dławić — dziel produkt albo upraszczaj atrybuty.
Zamówienia: statusy z automatycznym e-mailem przy zmianie (Zamówienia → Statusy), faktury PDF, zwroty, reguły koszyka i reguły cenowe katalogowe (Katalog → Rabaty). Do tego uprawnienia pracowników w profilach (Parametry zaawansowane → Zespół), dziennik zdarzeń (Parametry zaawansowane → Logi), zadania cron i kolejka maili — bez kolejki przy 100 zamówieniach w godzinę skrzynka wysypuje się błędami SMTP.
Wydajność, którą włączasz ręcznie po instalacji: cache Smarty i CCC (Combine, Compress, Cache) w Parametry zaawansowane → Wydajność, kompresja oraz nagłówki Cache-Control i ETag po stronie serwera. Warstwa bazowa to PHP 8.1+ i MySQL 8 — sprawdź tabelę zgodności dla swojej wersji rdzenia, bo instalator nie ustawi tego za Ciebie. Świeży sklep potrafi ładować kartę produktu o 1,5–2 s dłużej właśnie z powodu wyłączonego cache.
Granica z wersjami płatnymi: PrestaShop Essential i Enterprise to plany komercyjne. Ich zakres zmienia się w czasie — nie przepisuję go z pamięci, sprawdź aktualną tabelę na stronie PrestaShop. Zasada praktyczna: jeśli funkcja jest w rdzeniu, nie płać za nią drugi raz w module.
| Element rdzenia | Gdzie go włączysz | Stan po instalacji |
|---|---|---|
| Multistore | Parametry zaawansowane → Multistore | Wyłączony |
| CCC i cache Smarty | Parametry zaawansowane → Wydajność | Wyłączony / wymaga decyzji |
| Reguły koszyka i cenowe | Katalog → Rabaty | Puste |
| Faktury PDF i zwroty | Zamówienia → Faktury / Zwroty | Aktywne |
| Dziennik zdarzeń | Parametry zaawansowane → Logi | Zapisuje i rośnie — czyść |
Próg wejścia: WooCommerce startuje szybciej. WordPress, WooCommerce i motyw to kilka godzin pracy, jeśli katalog jest mały. Problem pojawia się później, bo każda dodatkowa funkcja to kolejna wtyczka. Faktury, kurierzy, płatności ratalne, warianty, B2B — po dziesięciu wtyczkach aktualizacja WordPressa przestaje być rutynową czynnością, a staje się projektem z testami.
Koszt utrzymania w horyzoncie 3 lat: w Woo płacisz głównie licencjami — w praktyce od kilku do kilkunastu płatnych wtyczek, rozliczanych rocznie lub miesięcznie. Do tego konflikty po aktualizacjach, czyli czas dewelopera: 2–6 godzin po każdej większej aktualizacji motywu lub samego Woo. W PrestaShop wtyczek jest mniej, bo rdzeń pokrywa zamówienia, faktury, zwroty i warianty, ale płacisz za wdrożenie i za sprawdzanie zgodności modułów z nową wersją rdzenia przed każdą aktualizacją.
Kiedy wygrywa WooCommerce: dużo treści i sklep jako dodatek, blog plus sprzedaż, katalog do kilkuset produktów, prosty model wysyłki i płatności. Kiedy PrestaShop: B2B z cenami per grupa klientów, duży katalog (tysiące SKU), rozbudowane warianty, multistore, kilka walut i języków. Wydajność sprawdź przed decyzją: Woo z kilkudziesięcioma wtyczkami potrafi nie zmieścić się w progach Core Web Vitals na mobile, a to przekłada się na widoczność w Google i na konwersję.
Test decyzyjny — 5 pytań:
Funkcję uznajemy za działającą dopiero wtedy, gdy da się ją wskazać palcem w ścieżce zakupu i przypisać do zdarzenia w GA4. W praktyce o wyniku decydują trzy obszary: checkout, płatności i dostawa.
Płatności: BLIK, Przelewy24 lub PayU, karty oraz płatności odroczone. Każda metoda, która wyrzuca użytkownika na zewnętrzny serwis, musi poprawnie wracać do sklepu i domykać zamówienie — inaczej rośnie liczba zamówień ze statusem „oczekiwanie na płatność”.
Dostawa: InPost Paczkomaty, DPD, DHL. Liczy się mapa punktów odbioru (widget z API kuriera), generowanie etykiet bez wychodzenia z panelu i statusy przesyłek wracające do sklepu automatycznie.
Wyszukiwarka i filtry fasetowe to najczęstszy cichy wyciek ruchu wewnętrznego. Monitoruj frazy bez wyników przez zdarzenie view_search_results i poprawiaj słownik synonimów oraz atrybuty filtrów.
Zasada na koniec: każdy dodatkowy krok w checkoucie weryfikujesz danymi z GA4, nie przeczuciem. Osobno pilnuj czasu ładowania koszyka i płatności — Core Web Vitals to najprostszy punkt odniesienia.
| Obszar | Co sprawdzić w panelu | Jak to zmierzyć |
|---|---|---|
| Checkout | Zakup jako gość, liczba kroków, szacowanie dostawy w koszyku | Eksploracja ścieżki: begin_checkout → purchase |
| Płatności | Czy webhook potwierdza płatność, czy tylko powrót na stronę | Liczba zamówień ze statusem nieopłaconych |
| Dostawa | Mapa punktów, generowanie etykiet, statusy zwrotne | Czas od zamówienia do nadania |
| Wyszukiwarka i filtry | Frazy bez wyników, atrybuty fasetowe | view_search_results, strony z zerem wyników |
Minimum pomiarowe to pięć zdarzeń e-commerce: view_item_list, view_item, add_to_cart, begin_checkout i purchase. Każde musi nieść tablicę items[] z polami item_id, item_name, price i quantity. Bez tego raporty produktowe w GA4 są puste, a kampanie nie mają się do czego przyłożyć.
GTM i kolejność ładowania. Kontener wklejasz w nagłówek szablonu (w PrestaShop: themes/<twoj_szablon>/templates/_partials/head.tpl; w WooCommerce przez wtyczkę albo functions.php). Tag konfiguracyjny GA4 musi odpalać się najwcześniej, przed tagami zdarzeń, najlepiej na wyzwalaczu Initialization. Tagi zdarzeń czytają z dataLayer, więc kolejność wpisów ma znaczenie.
Consent Mode v2. Włączasz cztery sygnały: analytics_storage, ad_storage, ad_user_data, ad_personalization. Przy odrzuconej zgodzie nie tracisz wszystkiego — Google modeluje część konwersji i sesji. Nie odzyskasz natomiast danych na poziomie użytkownika, remarketingu i pełnych ścieżek w eksploracjach. Tego nie da się obejść.
Weryfikacja w 5 minut. Podgląd GTM (Preview) plus GA4 → Administracja → DebugView lub Test Events w Google Ads. Sprawdź trzy rzeczy: czy purchase leci, czy ma poprawną value z currency i czy niesie unikalny transaction_id.
Najczęstsze błędy: brak zdarzenia po płatności z przekierowaniem (zdarzenie musi odpalać się na stronie powrotu albo przez Measurement Protocol z backendu), duplikaty purchase po odświeżeniu strony potwierdzenia oraz brak kosztu dostawy doliczonego do value — raport sprzedaży rozjeżdża się wtedy z fakturą.
GTM server-side rozważ, gdy masz budżet na kontener w chmurze i chcesz wydłużyć żywotność ciasteczek first-party oraz ograniczyć utratę danych przez blokery. Zmienia to jakość danych, ale nie zastąpi poprawnego dataLayer po stronie sklepu.
| Zdarzenie | Kiedy odpala | Kluczowe parametry |
|---|---|---|
| view_item_list | Wyświetlenie listy produktów lub wyników filtrów | item_list_id, item_list_name, items[] |
| view_item | Wejście na kartę produktu | item_id, item_name, price, currency |
| add_to_cart | Dodanie do koszyka | items[], value, currency |
| begin_checkout | Wejście do checkoutu | items[], value, coupon |
| purchase | Potwierdzenie opłaconego zamówienia | transaction_id, value (z dostawą), currency, items[] |
Integrację oceniasz nie po tym, że działa, tylko po tym, jak zachowuje się przy błędzie. Zanim podpiszesz umowę, zadaj wykonawcy pytania techniczne z trzech obszarów.
ERP. Ustal jedno źródło prawdy: najczęściej stany magazynowe i faktury w ERP, ceny i opisy w sklepie. Wymagaj tabeli mapowania statusów — co dokładnie w ERP odpowiada statusowi „oczekiwanie na płatność”, „w realizacji”, „wysłane”. Zapytaj o częstotliwość synchronizacji stanów: raz na 5 minut czy webhook przy każdej zmianie. Pierwsze rozwiązanie sprzedaje towar, którego już nie ma, gdy w kampanii zejdzie 200 sztuk w kwadrans.
API i webhooki. Poproś o limity zapytań dostawcy i informację, co się dzieje przy kodzie odpowiedzi 429. Musisz wiedzieć, czy zamówienia trafiają do kolejki, czy są gubione, oraz jak działają ponowienia. Kluczowa jest idempotencja: ten sam numer zamówienia wysłany dwa razy nie może utworzyć dwóch dokumentów w ERP. Standard HTTP jest tu jednoznaczny — metody i kody odpowiedzi mają określone znaczenie, warto to zweryfikować w RFC 9110.
Kurierzy. Sprawdź generowanie etykiet w formacie wymaganym przez terminal, obsługę punktów odbioru przez API oraz statusy zwrotne. Zapytaj wprost: co się dzieje, gdy API kuriera odrzuci paczkę — błędny kod pocztowy, brak gabarytu, awaria po ich stronie? Kto widzi błąd i kto go naprawia?
Płatności. Źródłem prawdy jest webhook potwierdzający, nie powrót użytkownika na stronę sklepu — klient może zamknąć kartę po zapłacie. Webhook musi być idempotentny i weryfikować podpis.
I najważniejsza pułapka: integracja sprawdzona na 10 zamówieniach testowych wysypuje się przy 500 w kampanii. Test obciążeniowy i monitoring kolejki to nie dodatek, a warunek startu.
| Obszar | Pytanie do wykonawcy | Sygnał ostrzegawczy |
|---|---|---|
| ERP | Które pole jest źródłem prawdy o stanie magazynowym i cenie? | „Wszystko synchronizujemy w obie strony” bez mapowania statusów |
| API | Jaki jest limit zapytań i co przy odpowiedzi 429? | Brak kolejki i brak ponowień |
| Zamówienia | Czy zapis jest idempotentny po numerze zamówienia? | Test na 10 zamówieniach bez testu obciążeniowego |
| Kurierzy | Jak obsługiwane są błędy walidacji przesyłki? | Brak informacji, kto widzi błąd i jak go naprawia |
| Płatności | Webhook czy powrót użytkownika zmienia status na opłacone? | Status ustawiany po powrocie na stronę sklepu |
Odbioru wdrożenia nie robi się na słowo. Potrzebujesz stagingu – kopii sklepu na subdomenie (np. staging.twojadomena.pl), z osobną bazą danych, wyłączoną indeksacją (noindex + ochrona hasłem) i wyłączonymi wysyłkami do prawdziwych klientów. Na staging wgrywasz dane testowe: minimum 20 produktów w 3 kategoriach, w tym jeden z wariantami (rozmiar/kolor), jeden z rabatem czasowym i jeden z niskim stanem magazynowym. Klucze API płatności i kurierów ustawiasz w trybie testowym/sandbox (Przelewy24, PayU, Stripe i większość kurierów mają osobne środowisko testowe). Bez tego pierwszy „testowy” zakup to prawdziwa płatność i prawdziwa etykieta.
Test end-to-end wykonaj w jednej sesji: dodanie do koszyka → dane klienta → wybór dostawy i płatności → przejście przez bramkę → powrót do sklepu → mail z potwierdzeniem i etykietą → zdarzenie purchase w GA4. Do sprawdzenia zdarzeń używaj DebugView i real-time w osobnej usłudze GA4 dla stagingu, żeby nie mieszać danych testowych z produkcyjnymi. Sprawdź, czy w purchase zgadza się wartość, koszt dostawy i zawartość items.
Ciche błędy to najczęstsza pułapka: płatność wchodzi, ale hook nie zmienia statusu zamówienia, więc klient nie dostaje maila i nie ma etykiety. Sprawdzasz to w trzech miejscach: logi PHP (var/logs/prod.log w PrestaShop 8.x, w starszych wersjach panel → Zaawansowane → Logi), kolejka zadań i crony, oraz webhooki bramki – czy wracają z kodem 200 i czy nie ma ponownych prób. Dorzuć alert na nieudane płatności (np. gdy odsetek błędów przekroczy ustalony próg), bo bez tego dowiesz się o awarii od klienta.
Wydajność mierz na realnym szablonie, nie na demo. PageSpeed Insights daje dane laboratoryjne, a dane polowe (CrUX) tylko przy odpowiednim ruchu – mały sklep może ich nie mieć i wtedy musisz opierać się na własnym RUM. Cele: LCP ≤ 2,5 s, INP ≤ 200 ms, CLS ≤ 0,1. Więcej o tych metrykach pisze web.dev.
Na koniec protokół odbioru na piśmie: lista przetestowanych scenariuszy, zrzuty ekranu z logów i GA4, lista znanych błędów z terminami, przekazane dostępy i dokumentacja.
| Obszar | Gdzie sprawdzasz | Sygnał, że jest OK |
|---|---|---|
| Płatność | webhook w logach + panel bramki | kod 200, zamówienie przeszło na status opłaconego |
| skrzynka testowa + logi mailowe | mail z potwierdzeniem i etykietą, SPF/DKIM bez błędów | |
| Analityka | GA4 DebugView | zdarzenie purchase z poprawną wartością i pozycjami |
| Wydajność | PageSpeed Insights + dane polowe | LCP ≤ 2,5 s, INP ≤ 200 ms, CLS ≤ 0,1 |
| Błędy PHP | var/logs/prod.log | brak nowych wpisów po przejściu testu |
Nie ma jednej ceny sklepu. Jest liczba godzin pomnożona przez stawkę – i to jedyny uczciwy sposób liczenia. Stawki wdrożeniowe w Polsce mieszczą się dziś najczęściej w przedziale 100–200 zł netto za godzinę, w zależności od doświadczenia zespołu. Poniżej typowe rozbicie prac dla sklepu B2C na PrestaShop 8.x.
Prosty sklep bez migracji i z dwiema integracjami to zwykle 80–120 godzin. Sklep z migracją z innej platformy, trzema integracjami i wielosklepowością – 150–250 godzin. Przy 120 zł/h daje to odpowiednio ok. 9,6–14,4 tys. zł i 18–30 tys. zł netto.
Co podnosi koszt: integracja z systemem ERP, który nie ma API (zostaje odczyt z bazy albo pliki CSV), migracja z platformy bez pełnego eksportu danych, wielosklepowość i osobne cenniki, własny moduł pod nietypową regułę dostawy lub rabatu, niestandardowy szablon graficzny.
Rozliczenie godzinowe vs cennik „z sufitu”. Stała cena oznacza, że wykonawca dolicza sobie premię za ryzyko, a każda zmiana zakresu staje się sporem. Godzinowe jest korzystniejsze, jeśli masz: górny limit budżetu, tygodniowy raport z przepracowanych godzin i zasadę, że zmiany zakresu idą przez pisemny change request. Bez limitu i raportu to Ty ponosisz całe ryzyko.
Utrzymanie i SLA. Realne widełki to 300–1500 zł netto miesięcznie. W umowie zapisz cztery rzeczy: czas reakcji na zgłoszenie (np. 4 h robocze dla krytycznych, 1 dzień roboczy dla pozostałych), okno serwisowe na prace wdrożeniowe (np. 22:00–6:00), kopie zapasowe (1× dziennie, retencja 30 dni, kopia poza serwerem) oraz aktualizacje bezpieczeństwa w ciągu 7 dni od wydania krytycznej łatki. Monitoring powinien sprawdzać dostępność co minutę i pilnować webhooków płatności, nie tylko tego, czy strona się otwiera.
| Etap wdrożenia | Typowy zakres godzin |
|---|---|
| Analiza potrzeb i mapowanie procesów | 8–16 h |
| Konfiguracja sklepu (kategorie, podatki, dostawy, warianty) | 40–80 h |
| Integracje (płatności, kurierzy, faktury, ERP) | 16–40 h za integrację |
| Migracja danych (produkty, klienci, zamówienia, przekierowania URL) | 20–60 h |
| Testy odbiorowe i poprawki | 16–32 h |
| Szkolenie i dokumentacja | 4–8 h |
1. Audyt funkcji (1–2 tygodnie). Zanim cokolwiek wycenisz, spisz procesy: jak dziś wpływa zamówienie, kto wystawia fakturę, kto generuje etykietę, kto odpowiada na zwroty. Wynikiem jest mapa integracji – jedno zdanie na każde połączenie z zewnętrznym systemem.
2. Lista must-have i nice-to-have. Ustaw maksymalnie 10 pozycji must-have. Reszta trafia do puli nice-to-have z kolejnością – to ona chroni budżet, gdy pojawi się niespodzianka.
3. Wycena godzinowa. Godziny z kroku 1 i 2 razy stawka, plus bufor 15–20% na rzeczy, które wyjdą dopiero w konfiguracji. Bufor nie jest marżą wykonawcy – jest rezerwą na poprawki po testach.
4. Konfiguracja na stagingu. Cała praca dzieje się na kopii. Raz w tygodniu odbierasz przyrost funkcji, żeby nie zostać z gotowym sklepem do przejrzenia w jednym dniu.
5. Testy odbiorowe. Scenariusze z sekcji pierwszej, min. 20 zamówień end-to-end, lista błędów z podziałem na krytyczne i kosmetyczne. Wdrożenie nie kończy się, dopóki krytycznych nie ma zero.
6. Start z monitoringiem przez 30 dni. Po przeniesieniu na produkcję wykonawca patrzy na logi, webhooki płatności, kolejkę zadań i Core Web Vitals. Checkpointy w dniu 7 i dniu 30. W kryteriach wydajności pomaga dokumentacja Google o Core Web Vitals.
Co przygotować przed pierwszym spotkaniem: listę integracji, które muszą działać, eksport produktów z obecnego sklepu, liczbę produktów i kombinacji, informację o językach i walutach, budżet, termin startu oraz nazwisko osoby, która po Twojej stronie podejmuje decyzje.
Kryterium zakończenia: 20 zamówień testowych przechodzi bez błędów, zdarzenie purchase w GA4 ma poprawną wartość, faktura i etykieta generują się automatycznie, przez 7 dni w logach nie pojawia się nowy błąd, kopie zapasowe i monitoring działają, a Ty masz dokumentację i przeszłeś szkolenie z obsługi zamówień.
| Zadanie | Klient | Deweloper |
|---|---|---|
| Decyzje i akceptacje | wybór bramki, kurierów, zakresu | rekomendacja z uzasadnieniem |
| Treści | opisy, zdjęcia, regulamin, polityka zwrotów | przygotowanie miejsc i szablonów |
| Dane | eksport produktów, cennik, kody rabatowe | import, mapowanie kategorii, przekierowania |
| Dostępy | domena, hosting, GA4, GSC, konta bramek | konfiguracja i zabezpieczenie środowisk |
| Testy i dokumentacja | odbiór scenariuszy, szkolenie | testy, poprawki, protokół odbioru, monitoring |
Kupowanie funkcji, których nikt nigdy nie włączył i nie przetestował na produkcji. W ofercie wdrożenia jest wielojęzyczność, a w sklepie działa tylko polska wersja, bo nikt nie dokończył konfiguracji.
Jak wykryć: Zestaw specyfikację wdrożenia z listą modułów i wtyczek aktywnych w panelu. Sprawdź dziennik zdarzeń i datę ostatniego testu zamówienia end-to-end. Jeśli funkcja nie ma właściciela ani terminu włączenia, nie istnieje.
Jak naprawić: Dla każdej funkcji z umowy ustal właściciela, datę włączenia i scenariusz testowy: koszyk, płatność, faktura, e-mail, status przesyłki. Test zapisz w jednym miejscu razem z wynikiem.
Włączanie modułów bez pomiaru efektu. Ktoś dodaje zakup bez rejestracji i „chyba jest lepiej”, ale nikt nie porównał koszyka i konwersji przed zmianą i po niej.
Jak wykryć: W GA4 sprawdź, czy zdarzenia begin_checkout i purchase zawierają komplet parametrów items[]. Brak tych zdarzeń oznacza, że nie masz czym porównać dwóch wersji checkoutu.
Jak naprawić: Przed wdrożeniem zmiany zapisz wartości bazowe: liczba sesji, begin_checkout, purchase, wartość koszyka. Zmianę oceniaj po dwóch–trzech tygodniach na porównywalnym ruchu, nie po jednym dniu.
Traktowanie wtyczki jako funkcji. W WooCommerce każda dodatkowa możliwość to kolejna wtyczka, licencja do odnawiania i kolejne miejsce, w którym coś może się zepsuć po aktualizacji.
Jak wykryć: Policz wtyczki z płatną licencją i zsumuj roczne odnowienia na trzy lata. Do tego dołóż godziny pracy dewelopera na aktualizacje i konflikty — to realny koszt utrzymania, nie „dodatek”.
Jak naprawić: Łącz funkcje w mniejszą liczbę sprawdzonych wtyczek albo przenoś je do rdzenia platformy. Każdą nową wtyczkę oceniaj nie tylko po cenie, ale po tym, jak często jest aktualizowana i czy ma wsparcie w języku, który rozumie Twój wykonawca.
Zostawienie wydajności na ustawieniach domyślnych po instalacji. Cache Smarty, kompresja i OPcache bywają wyłączone, a sklep i tak „jakoś działa”.
Jak wykryć: Sprawdź w panelu, czy cache Smarty i kompresja są włączone, jaką wersję PHP i MySQL ma serwer (docelowo PHP 8.1+ i MySQL 8). Zestaw to z danymi Core Web Vitals dla realnych użytkowników, a nie tylko z jednego testu w laboratorium.
Jak naprawić: Włącz cache Smarty i kompresję, skonfiguruj OPcache, sprawdź LCP, INP i CLS na katalogu z dużą liczbą wariantów. Priorytety według dokumentacji Google opisanej w materiałach o Core Web Vitals.
Pomiar ustawiony bez obsługi zgody. Po odrzuceniu cookies dane przestają spływać, a właściciel patrzy na zaniżoną sprzedaż i podejmuje decyzje na niepełnych liczbach.
Jak wykryć: W podglądzie GTM sprawdź, co dzieje się ze zdarzeniami po odmowie zgody. W GA4 porównaj liczbę transakcji z liczbą zamówień w panelu sklepu za ten sam okres.
Jak naprawić: Wdróż Consent Mode v2, ustal kolejność ładowania skryptów i sprawdź, czy zdarzenia e-commerce nadal są wysyłane w trybie bez cookies. Zapisz różnicę między GA4 a panelem sklepu jako stały wskaźnik kontrolny.
Wybór platformy na podstawie ceny licencji, a nie procesów. Sklep B2B bez walidacji NIP i faktury bez ręcznej pracy wygląda dobrze w demo i przewraca się przy 50. zamówieniu dziennie.
Jak wykryć: Spróbuj złożyć w demo zamówienie B2B z NIP, fakturą, odroczoną płatnością i dostawą do punktu odbioru. Policz, ile kroków wymaga ręcznej pracy pracownika.
Jak naprawić: Przejdź test decyzyjny przed wyborem platformy: katalog, model sprzedaży, płatności, warianty, kto utrzymuje sklep. Wynik testu jest ważniejszy niż cennik licencji.
Kluczowa funkcja to nie pozycja w ofercie, a element procesu, który da się wskazać w zamówieniu i zmierzyć w GA4. Rdzeń PrestaShop 8.x pokrywa większość potrzeb sklepu, ale wymaga ręcznego włączenia cache, kompresji i poprawnych wersji PHP oraz MySQL. WooCommerce wygrywa tam, gdzie liczy się szybki start i treści, a PrestaShop — przy B2B, dużym katalogu i wariantach. Bez pomiaru zdarzeń e-commerce i obsługi zgody każda decyzja o funcjonalnościach jest zgadywaniem.
Nie. Lista z oferty mówi, co system potrafi, ale nie mówi, czy ta zdolność działa w procesie zamówienia i czy da się ją zmierzyć. Funkcja kwalifikuje się jako kluczowa, gdy skraca ścieżkę do zakupu, eliminuje pracę ręczną albo ma przypisany miernik. Jeśli nie spełnia żadnego z tych warunków, jest ozdobą w specyfikacji, a nie funkcją sklepu.
Rdzeń obejmuje katalog z produktami, kombinacjami, atrybutami i stanami magazynowymi, tryb multistore, statusy zamówień, faktury PDF, zwroty, reguły cenowe i promocje katalogowe, uprawnienia pracowników, dziennik zdarzeń oraz zadania cron i kolejkę maili. Dopłaty zaczynają się przy wersjach Essential i Enterprise, gdzie pojawiają się funkcje niedostępne w wersji darmowej. Przed zakupem porównaj konkretną listę, bo nazwy wersji bywają mylące.
Przy B2B, dużym katalogu i rozbudowanych wariantach PrestaShop zwykle wygrywa, bo te mechanizmy siedzą w rdzeniu zamiast w kilku wtyczkach. WooCommerce startuje szybciej i jest sensowny, gdy stawiasz na treści, blog plus sklep i niewielki katalog. Decyzję podejmij po teście pięciu pytań: model sprzedaży, wielkość katalogu, warianty, płatności i to, kto będzie utrzymywał sklep po wdrożeniu.
Najczęściej te, które skracają checkout: zakup bez rejestracji, koszt dostawy widoczny przed rejestracją, walidacja NIP dla B2B, BLIK i płatności odroczone oraz mapy punktów odbioru przy dostawie. Drugą grupę stanowią wyszukiwarka i filtry fasetowe, bo od nich zależy ruch wewnętrzny. Każdą zmianę oceniaj na danych z GA4, a nie na przeczuciu — inaczej nie odróżnisz poprawy od zwykłej zmienności ruchu.
Zacznij od podglądu kontenera GTM i DebugView: zdarzenia view_item_list, view_item, add_to_cart, begin_checkout i purchase powinny mieć komplet parametrów items[]. Potem porównaj liczbę transakcji w GA4 z liczbą zamówień w panelu sklepu za ten sam okres i zanotuj różnicę. Jeśli odstęp jest duży, sprawdź kolejność ładowania skryptów oraz to, czy płatność nie zabiera użytkownika na stronę bez tagu.
Po odrzuceniu zgody przez użytkownika stracisz część danych o zdarzeniach i konwersjach, a raporty pokażą niższą sprzedaż, niż faktycznie zrealizowałeś. Przy podejmowaniu decyzji o budżecie i zmianach w sklepie pracujesz wtedy na zaniżonych liczbach. Consent Mode v2 pozwala przekazać sygnał zgody i zachować ciągłość pomiaru w zakresie dopuszczalnym przez przepisy.
Jeśli chcesz sprawdzić, które funkcje w Twoim sklepie faktycznie działają, a które tylko widnieją w specyfikacji, napisz do nas. Przejrzymy konfigurację PrestaShop lub WooCommerce i pomiar w GA4, a potem podamy listę konkretów do poprawy.