PayPal w PrestaShop to nie jedna wtyczka, a kilka różnych rozwiązań o łudząco podobnych nazwach — i stąd bierze się większość problemów przy wdrożeniu. Najpierw trzeba wybrać wariant integracji, potem przygotować konto i aplikację REST, a dopiero na końcu klikać „włącz” w panelu sklepu. Ten tekst to część organizacyjna: kolejność działań, kryteria wyboru i lista rzeczy, które trzeba sprawdzić przed pierwszym zamówieniem na produkcji. Konkrety techniczne z konfiguracji znajdziesz w osobnym materiale: PayPal w PrestaShop: szybka konfiguracja krok po kroku. Jeśli potrzebujesz uporządkowania całego procesu od strony projektu, zacznij od organizacji wdrożenia modułu PayPal.

PayPal w PrestaShop – które warianty integracji masz do wyboru

Największy bałagan w projektach z PayPalem nie bierze się z kodu, a z nazw. W panelu modułów możesz mieć jednocześnie „PayPal”, „PayPal Standard” i wtyczkę zewnętrznego dostawcy, a każda z nich rozmawia z innym API. Zanim cokolwiek klikniesz, ustal, którą ścieżką idziesz.

Po stronie konta potrzebujesz konta Business (Personal odpada), potwierdzonego e-maila oraz uzupełnionych danych firmy i rachunku bankowego. Sprawdź to wcześniej – weryfikacja bywa ręczna i zajmuje od kilku godzin do kilku dni roboczych. Te same dane posłużą potem do logowania w panelu deweloperskim, gdzie tworzysz aplikację REST i pobierasz Client ID oraz Secret.

Samych wariantów wdrożenia są cztery: oficjalny moduł PrestaShop, wtyczka z marketplace (płatna subskrypcja, czasem z kodem zamkniętym), własny moduł pod konkretny sklep oraz integracja REST bez modułu – np. gdy płatność odpala system zamówień poza PrestaShopem.

Dobór sprowadza się do modelu sprzedaży: mały sklep detaliczny w Polsce poradzi sobie na oficjalnym module; w B2B najpierw sprawdź, czy klienci faktycznie zapłacą PayPalem, bo często wygrywa przelew i płatność odroczona; sklep eksportowy z wieloma walutami potrzebuje Commerce Platform i modułu, który obsługuje webhooki oraz przelicza waluty bez sztywnego kursu.

Kolejność działań po stronie sklepu i klienta rozpisaliśmy osobno w materiale o organizacji wdrożenia modułu PayPal w PrestaShop.

WariantMechanizmDla kogoKiedy odpada
PayPal Standard / Express CheckoutNVP/SOAP + IPNSklepy na starym module, które nie chcą ruszać koszykaGdy pojawiają się odrzucenia z powodu SCA i brakuje webhooków
PayPal Commerce PlatformREST API + webhooki + kartyNowe wdrożenia, sklepy z kartami i wieloma walutamiGdy sklep nie ma publicznego HTTPS na endpointy zwrotne
Własny modułREST API w kodzie sklepuNiestandardowy koszyk, ERP, płatności częścioweGdy nie masz kogoś, kto utrzyma kod po wdrożeniu
Integracja bez modułuREST API poza PrestaShopemZamówienia obsługiwane w zewnętrznym systemieGdy cała sprzedaż i statusy żyją w PrestaShop

Oficjalny moduł vs wtyczka z marketplace vs własny moduł – jak wybrać

Zadaj trzy pytania: kto to utrzyma, czy mam dostęp do kodu i co się stanie za 12 miesięcy. Odpowiedzi rozstrzygają więcej niż lista funkcji na karcie produktu.

Koszty. Licencje wtyczek są wyceniane w euro i rozliczane rocznie. Kwoty się zmieniają, więc sprawdź aktualny cennik, ale do kalkulacji przyjmij trzy lata, nie pierwszy rok. Kluczowe jest to, co dzieje się po wygaśnięciu subskrypcji: czy moduł dalej przyjmuje płatności, a tylko nie dostaje aktualizacji, czy przestaje działać lub wsparcie przestaje odpowiadać. To różnica między zamrożonym kodem a wyłączoną płatnością. Policz też koszt przestoju: przy 50 zamówieniach dziennie i średniej wartości 200 zł każdy dzień bez płatności to około 10 tys. zł obrotu.

Dostęp do kodu. Pliki zakodowane ionCube albo Zend to brak możliwości hotfixu w piątek wieczorem. Aktualizacje. Sprawdź datę ostatniego wydania i changelog. PrestaShop 1.7 i 8.x różnią się warstwą Symfony i hookami, więc moduł bez wydania od dwóch lat nie wjedzie na 8.x bez poprawek. Cykl życia modułów opisuje dokumentacja dla deweloperów PrestaShop.

Kiedy własny moduł wygrywa: koszyk z rabatami liczonymi po stronie serwera, wielowalutowość z własnym kursem i zaokrąglaniem, integracja z ERP (statusy, faktury, magazyn), płatność częściowa lub dopłata po złożeniu zamówienia.

Sygnały ostrzegawcze w wtyczkach z marketplace: brak wsparcia webhooków i sprawdzanie statusu po cronie; zapisywanie transakcji we własnych tabelach zamiast powiązania z zamówieniem; brak obsługi SCA i rosnące odrzucenia; brak zwrotów z panelu sklepu; zero logów, gdy płatność nie dojdzie.

Jeśli w projekcie jest kilka integracji naraz, uporządkuj je wspólnie – patrz integracje z PrestaShop: organizacja pracy i wdrożenia.

KryteriumOficjalny modułWtyczka z marketplaceWłasny moduł
KosztBrak licencjiSubskrypcja roczna w euroJednorazowe prace + utrzymanie
Dostęp do koduTakCzęsto nie (kod zamknięty)Tak, po twojej stronie
Aktualizacje pod 8.xPo stronie PrestaShopZależne od wydawcyTy decydujesz o terminie
Niestandardowa logikaOgraniczonaZwykle brakPełna
Webhooki i SCAZależne od wersji modułuTrzeba sprawdzić przed zakupemDo zaprojektowania

Konfiguracja krok po kroku: konto, aplikacja, sandbox i tryb live

Zacznij od konta Business i domknij weryfikację, zanim dotkniesz modułu. Potem zaloguj się tym samym kontem do panelu deweloperskiego i utwórz aplikację osobno dla środowiska Sandbox i osobno dla Live. Typ aplikacji: Merchant. Zaznacz tylko te uprawnienia, których użyjesz – jeśli nie chcesz zapisywać kart, nie włączaj funkcji powiązanych z przechowywaniem danych karty.

Pobierz Client ID i Secret. Secret pokazuje się raz, więc wrzuć go do menedżera haseł, a nie do repozytorium. Dla trybu live wygeneruj nowe klucze – kopiowanie sandboxowych to najczęstszy błąd przy przełączaniu.

Sandbox. W panelu utwórz dwa konta testowe: Business (sprzedawca) i Personal (kupujący). Do sandboxa logujesz się osobnym logowaniem – dane z konta live nie zadziałają. Karty testowe generuje narzędzie w panelu; dostępne są też scenariusze 3D Secure: płatność zaakceptowana i odrzucona. Przetestuj oba, bo dopiero odrzucenie pokazuje, czy sklep poprawnie oznacza nieudaną transakcję.

Webhooki. Adres musi być publiczny i po HTTPS. Nie lokalny host, nie adres w sieci wewnętrznej, nie endpoint za logowaniem – PayPal nie zaloguje się do panelu sklepu. Certyfikat musi mieć pełny łańcuch. Endpoint powinien odpowiadać kodem 2xx w kilka sekund i nie wykonywać ciężkiej pracy – zapisz zdarzenie i przetwórz je w cronie. Kody odpowiedzi i zachowanie przekierowań opisuje dokumentacja MDN dotycząca HTTP. Jeśli sklep stoi za CDN lub WAF, po pierwszym teście zajrzyj w logi serwera – ruch z PayPala bywa tam blokowany.

Przejście na live. Zmieniają się tylko klucze i adres webhooka; konfiguracja koszyka zostaje. Po przełączeniu wykonaj jedną realną płatność na małą kwotę, a potem zwrot z panelu PayPala i sprawdź, czy status zamówienia się zaktualizował. W PrestaShop ustaw waluty i kursy, ograniczenia krajów i stref, geolokalizację oraz kolejność metod płatności w preferencjach. Przy testach wyłącz cache. Samą konfigurację modułu rozpisaliśmy w tekście PayPal w PrestaShop: szybka konfiguracja krok po kroku.

PSD2, SCA i 3D Secure – co musi spełnić polski sklep

SCA (silne uwierzytelnianie klienta) to wymóg PSD2: przy płatności w EOG trzeba potwierdzić tożsamość kupującego dwoma z trzech elementów — czymś, co wie (hasło), czymś, co ma (telefon, aplikacja banku) i czymś, czym jest (biometria). W praktyce w PayPal uwierzytelnienie prowadzi PayPal jako dostawca usług płatniczych i podmiot obsługujący 3D Secure. Klient loguje się do konta PayPal albo przechodzi challenge 3DS wystawiony przez swój bank. W sklepie nie integrujesz 3DS osobno i nie potrzebujesz do tego dodatkowej wtyczki.

Trzy wyjątki, które realnie zobaczysz w rozliczeniach:

Co to oznacza dla Ciebie: nazwa prawna na koncie PayPal musi zgadzać się z KRS lub CEIDG, kwota i waluta w zamówieniu muszą pasować do groszaka do tego, co wysyła moduł, a adres dostawy musi być adresem z transakcji. Gdy kwoty się rozjeżdżają (typowo przez zaokrąglenia w koszyku albo rozbieżny podatek), transakcja ląduje jako PENDING i rośnie ryzyko przegranego sporu. Efektem ubocznym SCA jest mniej porzuceń koszyka — klient nie jest wyrzucany do banku, tylko zostaje w PayPalu. Same ustawienia modułu i dane wysyłane do API opisujemy w dokumentacji deweloperskiej PrestaShop oraz w materiale o szybkiej konfiguracji PayPal w PrestaShop. Kolejność prac po stronie sklepu rozpisaliśmy w tekście o organizacji wdrożenia modułu PayPal.

Zwroty, dysputy i chargebacki – obsługa po sprzedaży

Zwrot w panelu PayPal nie aktualizuje zamówienia w PrestaShop. To najczęstsza pułapka po wdrożeniu: księgowość widzi korektę, a w sklepie zamówienie dalej wisi jako opłacone i zrealizowane.

Kolejność działań przy zwrocie:

Nie robimy zwrotów „przelewem na telefon”. Tracisz wtedy dowód i prawo do ochrony sprzedawcy. Przy reklamacjach wrzucaj do panelu: potwierdzenie nadania i dostawy ze śledzeniem, korespondencję mailową, logi zamówienia (IP, data, statusy), regulamin z potwierdzoną akceptacją. Ochrona sprzedawcy nie obejmuje towarów niematerialnych i usług — tam wygrywasz tylko dokumentacją.

Jeśli odbierasz powiadomienia webhook, odpowiadaj kodem 200 — błędy powodują ponowienia i duplikaty operacji, co przy zwrotach boli podwójnie (specyfikacja HTTP i kody statusu w MDN). Zwroty muszą też mieć osobny status zamówienia, inaczej raport sprzedaży pokaże przychód, którego nie było — opisaliśmy to przy okazji wdrożenia DataLayer w PrestaShop. Całość procesów okołopłatnościowych porządkuje materiał o integracjach z PrestaShop.

CechaDysputa (reklamacja)Chargeback (obciążenie zwrotne)
Kto prowadzi sprawęPayPal, w Resolution CenterBank/instytucja wydająca kartę, PayPal tylko pośredniczy
InicjatorKupujący składa reklamację w PayPaluKupujący składa reklamację w banku
Termin na Twoją odpowiedźZwykle ok. 10 dni — dokładny termin widzisz przy sprawieKrótki, często 7–10 dni na zebranie dowodów
Kto decydujePayPal na podstawie dowodów obu stronBank wydawcy karty; decyzja bywa nieodwołalna
Czas rozstrzygnięciaKrótszy, sprawa zamyka się w Resolution CenterDłuższy — potrafi ciągnąć się tygodniami
Koszt po Twojej stronieBrak dodatkowej opłaty przy ugodzieOsobna opłata za chargeback — sprawdź aktualną kwotę w cenniku konta

Ile realnie kosztuje PayPal w polskim sklepie

Koszt PayPala w polskim sklepie składa się z trzech pozycji: prowizji od transakcji, opłaty stałej i przewalutowania, do których dochodzi wypłata środków oraz ewentualne opłaty za spory.

Poniższa tabela to rachunek na jawnych założeniach, a nie cennik dostawców. Podstaw własne stawki z umów i policz to samo na swoich danych: średni koszyk × udział metody × liczba zamówień w miesiącu.

Konwersja: w płatnościach krajowych BLIK, Przelewy24 i InPost Pay wygrywają przyzwyczajeniem i brakiem logowania. PayPal wygrywa tam, gdzie klient nie ma polskiej karty: eksport, klienci z UE i USA, B2B kupujące na fakturę z zagranicy, kursy i usługi cyfrowe. Nie wyłączaj P24 na rzecz PayPala — to nie albo-albo. Po włączeniu nowej metody sprawdź w wdrożeniu GA4 eCommerce, czy faktycznie rośnie udział zamówień, a nie tylko liczba kliknięć. Jeśli nie wiesz, kto ma liczyć te stawki i porównywać warianty wdrożenia, punktem wyjścia jest materiał o kosztach wdrożenia PrestaShop.

MetodaModel opłat (typowo)Koszt przy koszyku 250 zł — przykład na założeniach
PayPalprocent od transakcji + opłata stała, wyższa stawka dla transakcji zagranicznych2,9% + 1,00 zł = 8,25 zł
Przelewy24procent od transakcji + opłata stała, stawka zależna od obrotu1,5% + 0,30 zł = 4,05 zł
PayUprocent od transakcji + opłata stała, stawka negocjowana1,9% + 0,30 zł = 5,05 zł
BLIK (przez PSP)procent od transakcji, często niżej niż karty1,2% + 0,20 zł = 3,20 zł
InPost Paystawka ustalana indywidualnie, często w pakiecie z usługami InPostbrak publicznego cennika — zapytaj o wycenę

Najczęstsze błędy konfiguracji i jak je zdiagnozować

Trzy objawy odpowiadają za większość zgłoszeń do wsparcia przy PayPal w PrestaShop: status zamówienia nie zmienia się po opłaceniu, zamówienie tworzy się podwójnie, a klucze z sandbox trafiają na produkcję. Każdy z nich da się zdiagnozować lokalnie, bez pisania do helpdesku.

Status nie zmienia się po opłaceniu. Zamówienie stoi na „Oczekiwanie na płatność PayPal”, choć w panelu PayPal transakcja ma status Completed. Prawie zawsze winny jest webhook: nie doszedł, doszedł pod zły adres albo zwrócił kod inny niż 200. Diagnoza w trzech krokach: (1) Advanced Parameters → Logs w back office, tam moduł zapisuje własne błędy, (2) panel PayPal Developer → twoja aplikacja → Webhooks → lista zdarzeń z kodem odpowiedzi, jaką zwrócił twój sklep, (3) access.log i error.log serwera. Jeśli zdarzenia mają status 500, sprawdź, czy WAF lub proxy nie blokuje adresów IP PayPal. Jeśli nie ma ich wcale — adres webhooka jest zły albo aplikacja nie ma subskrypcji na zdarzenie typu PAYMENT.CAPTURE.COMPLETED.

Duplikaty zamówień. Powstają, gdy powrót klienta z PayPal (return URL) i webhook tworzą zamówienie niezależnie — dwa kody ścieżki, dwa wpisy w bazie. Drugi wariant to podwójne kliknięcie „Zapłać” albo odświeżenie strony powrotu. Lekarstwo jest jedno: identyfikacja po identyfikatorze transakcji i wspólny punkt tworzenia zamówienia dla obu ścieżek.

Sandbox pomieszany z live. Najczęstsza przyczyna to podmiana tylko części danych: nowe klucze, stare adresy powrotu, wpisy w ps_configuration z poprzedniego środowiska. Porównaj parę client_id/secret, adresy powrotu i anulowania oraz wyczyść cache po zmianie. Kody zwrotu warto czytać ze zrozumieniem — opis znajdziesz w dokumentacji HTTP: Hypertext Transfer Protocol w MDN Web Docs. Diagnozę zacznij od uporządkowania środowisk zgodnie z zasadami organizacji wdrożenia płatności PayPal w PrestaShop.

ObjawGdzie sprawdzićNajczęstsza przyczyna
Zamówienie nie zmienia statusu po opłaceniuLogi modułu, Webhooks w PayPal Developer, error.logWebhook nie doszedł lub zwrócił 500 – blokada firewall/WAF albo brak subskrypcji zdarzenia
Dwa zamówienia z jednej płatnościLista zamówień, identyfikator transakcji, logi modułuReturn URL i webhook tworzą zamówienie niezależnie
Płatność odrzucana tylko na produkcjiPorównanie client_id/secret sandbox vs liveKlucze sandbox wklejone do środowiska live
Brak zdarzeń w panelu PayPal DeveloperAplikacja REST → WebhooksZły adres webhooka, brak HTTPS lub literówka w URL

Testy przed uruchomieniem – checklist wdrożeniowy

Checklistę uruchomieniową traktuj jak listę zadań z kryterium zaliczenia. Nie „przetestowaliśmy PayPal”, tylko „każdy scenariusz z tabeli przeszedł i mam na to numer transakcji lub zrzut ekranu”.

Ostatni etap przed live: jedno prawdziwe zamówienie na symboliczną kwotę (np. 1 zł) z prawdziwej karty, na produkcyjnych kluczach. Nie pomijaj tego kroku — sandbox nie odzwierciedla reguł ryzyka ani limitów konta live.

Waluta obca i mobile. Złóż zamówienie w EUR lub USD i porównaj kwotę w sklepie, w PayPal i na dokumencie — różnice z przewalutowania muszą zgadzać się z tym, co obiecujesz klientowi. Na telefonie sprawdź, czy przycisk płatności nie ucieka pod stopkę i czy powrót z aplikacji PayPal wraca do właściwego kroku zamówienia.

E-maile. Przejdź przez International → Translations → E-mails i sprawdź szablony płatności oraz order_conf — czy zawierają numer transakcji i kwotę. Osobno zweryfikuj powiadomienia wewnętrzne dla obsługi. Samą konfigurację modułu opisujemy w materiale szybka konfiguracja PayPal w PrestaShop krok po kroku. Jeśli modyfikujesz kod modułu, punktem wyjścia jest dokumentacja deweloperska PrestaShop.

ScenariuszJak wykonaćKryterium zaliczenia
Płatność udanaSandbox, karta testowaStatus zaakceptowany, e-mail do klienta, spadek stanu magazynowego
AnulowaniePrzycisk „Anuluj i wróć do sklepu”Koszyk zachowany, brak zamówienia oczekującego
Zwrot pełnyZwrot z panelu PayPalStatus zwrotu i dokument korygujący
Zwrot częściowyZwrot kwoty niższej niż zamówienieStatus i kwota zgodne z rzeczywistym zwrotem
ReklamacjaTestowe obciążenie zwrotne w sandboxSklep pokazuje informację o sporze
Płatność z 3DSKarta testowa wymuszająca uwierzytelnienieWyzwanie przechodzi, zamówienie kończy się poprawnie

Kiedy PayPal warto dodać, a kiedy odpuścić

PayPal nie jest uniwersalnym lekiem na konwersję. Realnie podnosi ją tam, gdzie klient ma ograniczone zaufanie do sklepu albo nie chce podawać danych karty: w sklepach z ruchem zagranicznym, z koszykiem liczonym w setkach złotych i przy widocznych odrzuceniach płatności kartą. Wtedy działa jak warstwa zaufania — sprzedawca nie dostaje numeru karty, a klient kończy zakup w kilka sekund, bo dane już ma zapisane w koncie PayPal.

Kiedy odpuścić. Gdy większość zamówień pochodzi z Polski i klient płaci BLIK-iem lub szybkim przelewem, a w analityce nie widzisz porzuconych koszyków z komentarzem o braku PayPal. Wtedy każda dodatkowa metoda to kolejne pole do utrzymania: obsługa sporów, uzgadnianie salda, prowizja, kolejny zestaw kluczy do rotacji i jeszcze jeden scenariusz w testach przed każdym wdrożeniem. Prowizja zależy od rynku i warunków na twoim koncie — sprawdź ją w cenniku w panelu, zanim włączysz metodę „na próbę” i zostawisz na rok bez przeglądu.

Strategia: metoda uzupełniająca. Płatności lokalne zostają na pierwszym miejscu, PayPal wchodzi jako druga lub trzecia opcja dla klientów, którzy nie chcą podawać karty. Taki układ porządkuje też konfigurację — jeśli wszystkie metody korzystają z jednego modelu statusów zamówienia i jednego sposobu powiadamiania, mniej rzeczy się rozjeżdża przy zmianach.

Rekomendacja kolejnego kroku. Jeśli PayPal już działa, ale nie wiesz, czy webhooki dochodzą i czy statusy są spójne — zacznij od audytu obecnej konfiguracji, zanim cokolwiek dołożysz. Szersze spojrzenie na całość połączeń opisujemy w materiale o organizacji pracy przy integracjach z PrestaShop. Jeśli dopiero dodajesz metodę — zaplanuj wdrożenie od zera: wybór wariantu, konto i aplikacja, konfiguracja, checklista testów, dopiero potem live.

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

Mieszanie nazw integracji: w jednym miejscu „PayPal Standard”, w drugim „Express Checkout”, a w dokumentacji projektu „Commerce Platform”. To trzy różne rzeczy, a zespół traktuje je jak jedną metodę płatności.

Jak wykryć: Wypisz na kartce, jaki moduł jest faktycznie zainstalowany (nazwa katalogu w /modules), jaką metodę pokazuje koszyk i co widnieje w panelu PayPal Developer. Jeśli to trzy różne nazwy — masz problem.

Jak naprawić: Ustal jeden wariant jako docelowy (najczęściej PayPal Commerce Platform) i zapisz go w dokumentacji projektu razem z nazwą modułu i wersją. Stare integracje wyłącz, a nie „chowaj” w kolejności płatności.

Zakup wtyczki z marketplace bez sprawdzenia, czy obsługuje webhooki i czy kod jest dostępny po wygaśnięciu subskrypcji.

Jak wykryć: Test w sandbox: zapłać i sprawdź, czy status zamówienia w PrestaShop zmieni się sam, bez odświeżania strony przez klienta. Drugi test: wygaśnięcie licencji na kopii staging — czy moduł dalej działa.

Jak naprawić: Przed zakupem zapytaj dostawcę na piśmie o trzy rzeczy: dostęp do kodu źródłowego, model licencji po roku i politykę aktualizacji pod nowe wersje PrestaShop. Brak odpowiedzi to odpowiedź.

Klucze API (Client ID, Secret) wklejone na sztywno w pliki motywu albo do repozytorium Git.

Jak wykryć: Przeszukaj katalog /themes i /modules pod kątem frazy „secret” oraz ciągów znaków wyglądających jak klucze. Sprawdź też historię commitów — usunięcie klucza z najnowszego pliku nie usuwa go z historii.

Jak naprawić: Klucze trzymaj w konfiguracji modułu lub w zmiennych środowiskowych poza repozytorium. Jeśli wyciekły — wygeneruj nowe w panelu PayPal Developer i unieważnij stare.

Testy wyłącznie na localhost bez publicznego adresu HTTPS, więc webhooki i statusy zwrotne nigdy nie docierają do sklepu.

Jak wykryć: W logach zdarzeń aplikacji PayPal nie ma wywołań webhooków, a zamówienia zostają w statusie „oczekiwanie na płatność”, mimo że klient zapłacił.

Jak naprawić: Postaw środowisko staging z publicznym adresem HTTPS (subdomena + certyfikat) albo tunel do lokalnej instalacji. Adres webhooka w aplikacji PayPal musi być osiągalny z internetu — to wymóg protokołu, nie widzimisię modułu. Podstawy: MDN Web Docs – HTTP.

Pominięcie SCA i 3D Secure przy płatnościach kartą w strefie EOG, bo „przecież PayPal sam to obsłuży”.

Jak wykryć: Test płatności kartą testową wymagającą uwierzytelnienia: jeśli transakcja kończy się błędem uwierzytelniania albo klient widzi biały ekran po powrocie z 3DS, integracja nie jest gotowa.

Jak naprawić: Włącz obsługę 3D Secure w module i sprawdź, czy sklep przekazuje poprawne dane transakcji. Przy płatnościach cyklicznych ustal z klientem model zgody na obciążenia poza sesją (MIT/CIT).

Zwroty robione wyłącznie z panelu PayPal, bez odbicia w PrestaShop i w dokumentach księgowych.

Jak wykryć: Porównaj listę zwrotów w panelu PayPal z listą zwrotów w PrestaShop za ten sam miesiąc. Rozjazd choćby o jedną pozycję to sygnał, że procedura nie działa.

Jak naprawić: Wprowadź kolejność: zwrot w PrestaShop (stan magazynowy + dokument), potem zwrot w PayPal, na końcu weryfikacja, czy kwoty i waluty się zgadzają. Przy częstych zwrotach część kroków da się zautomatyzować przez API.

Lista kontrolna do odklikania

Podsumowanie

Wdrożenie PayPal w PrestaShop wygrywa albo przegrywa na etapie przygotowania, a nie klikania w panelu. Wybierz jeden wariant integracji i nazwij go wprost, przygotuj konto Business, aplikację REST i publiczny adres HTTPS do webhooków, a dopiero potem konfiguruj moduł. Testuj w sandbox pełną ścieżkę zakupu oraz zwrot, bo to tam wychodzą różnice między wtyczkami. Reszta, czyli SCA, dysputy i koszty, to już konsekwencja porządku z pierwszych trzech kroków.

Najczęściej zadawane pytania

Czy PayPal w PrestaShop wymaga konta Business?

Do przyjmowania płatności i do integracji przez REST API potrzebne jest konto Business — konto prywatne nie wystarczy. W praktyce dochodzi jeszcze weryfikacja danych firmy, która bywa wymagana przed pierwszą wypłatą albo przy wyższych obrotach. Warto to załatwić przed konfiguracją modułu, bo brak weryfikacji zatrzymuje wypłaty, a nie samo przyjmowanie płatności.

Czy muszę używać oficjalnego modułu PayPal do PrestaShop?

Nie musisz, ale dla większości sklepów to najbezpieczniejszy start: dostajesz wsparcie producenta i aktualizacje pod nowe wersje PrestaShop. Wtyczka z marketplace bywa tańsza w pierwszym roku, ale kosztuje roczną subskrypcją i bywa, że po jej wygaśnięciu nie masz dostępu do kodu. Własny moduł ma sens wtedy, gdy koszyk ma niestandardową logikę, sklep obsługuje wiele walut albo płatność musi być spięta z ERP.

Jak sprawdzić, czy webhooki PayPal faktycznie działają?

Zajrzyj do logów zdarzeń aplikacji w panelu PayPal Developer i porównaj je ze statusami zamówień w PrestaShop. Jeśli w logach widać zdarzenia, a zamówienie dalej wisi w „oczekiwanie na płatność”, problem jest po stronie modułu, a nie konfiguracji aplikacji. Testuj na środowisku z publicznym adresem HTTPS, bo lokalna instalacja bez niego nie odbierze żadnego wywołania.

Ile trwa wdrożenie PayPal w PrestaShop?

Prosty sklep z oficjalnym modułem i standardowym koszykiem to zwykle kwestia godzin pracy plus testy. Własny moduł z integracją ERP, wielowalutowością i niestandardowymi regułami koszyka to raczej tygodnie, głównie przez testy zwrotów i scenariuszy błędów. Termin wyznacza nie sama instalacja, a liczba ścieżek, które trzeba przetestować przed live.

Czy PayPal obsługuje SCA i 3D Secure po swojej stronie?

PayPal Commerce Platform obsługuje uwierzytelnianie 3D Secure po swojej stronie, ale tylko wtedy, gdy sklep przekazuje poprawne dane transakcji i ma włączoną obsługę w module. Płatności w strefie EOG podlegają wymogowi silnego uwierzytelniania klienta. Po poprawnym wdrożeniu zwykle spada liczba porzuceń koszyka przy płatności kartą, ale rośnie znaczenie zgodności danych firmy na koncie.

Czy zwrot w PayPal automatycznie aktualizuje stan magazynowy w PrestaShop?

Zwykle nie. Zwrot w panelu PayPal to operacja finansowa, a nie magazynowa — PrestaShop nie dowie się o nim sam, jeśli moduł nie ma takiej funkcji. Dlatego zwrot wprowadzaj najpierw w sklepie, a potem w PayPal, i pilnuj zgodności kwot oraz walut. Na końcu potrzebna jest jeszcze faktura korygująca po stronie księgowości.

Czy mogę mieć w sklepie jednocześnie kilka integracji PayPal?

Technicznie tak, ale nie warto. Dwie metody płatności obsługujące to samo konto potrafią się nawzajem nadpisywać — klient widzi błąd po powrocie z płatności, a zamówienia trafiają w dziwne statusy. Wybierz jeden wariant jako docelowy i wyłącz pozostałe, zamiast zostawiać je „na wszelki wypadek”. Porządek w metodach płatności warto spisać razem z resztą projektu, patrz: organizacja wdrożenia modułu PayPal w PrestaShop.

Jeśli wolisz przejść przez to z kimś, kto robił to wcześniej, DropDigital prowadzi wdrożenia płatności w PrestaShop razem z konfiguracją konta, testami w sandbox i procedurą zwrotów. Napisz, jaki masz koszyk i ile metod płatności — odpowiemy, który wariant ma u Ciebie sens.

Źródła i materiały