Przycisk odstąpienia od umowy w sklepie internetowym: od kiedy obowiązuje w Polsce

Przycisk odstąpienia od umowy w sklepie internetowym: od kiedy obowiązuje w Polsce

Zaktualizowano: 13 listopada 2026
18 min czytania
Przewodnik
Ekspert WooCommerce

Od 19 czerwca 2026 r. sklepy internetowe w Unii mają dawać konsumentowi przycisk, którym odstąpi od umowy tak łatwo, jak ją zawarł. Wymóg pochodzi z art. 11a dyrektywy 2011/83/UE, dodanego dyrektywą (UE) 2023/2673. Polska tego artykułu do dziś nie wdrożyła: 24 października 2026 r. ani tekst jednolity ustawy o prawach konsumenta, ani lista jej nowelizacji w ISAP nie zawierają funkcji odstąpienia. Ten tekst pokazuje, co dokładnie mówi przepis, jak sprawdziłem stan polskiego prawa, kiedy polski sklep i tak musi mieć przycisk, i jak go zbudować w WooCommerce, Shopify albo we własnym systemie.

Artykuł opisuje treść przepisów i stan prac legislacyjnych na dzień publikacji, nie jest indywidualną poradą prawną dla twojego sklepu.

#Od kiedy obowiązuje przycisk odstąpienia od umowy

Dyrektywa (UE) 2023/2673 z 22 listopada 2023 r. (EUR-Lex) dotyczy głównie usług finansowych zawieranych na odległość, ale jej art. 1 pkt 3 dopisuje do ogólnej dyrektywy o prawach konsumentów nowy art. 11a. Ten artykuł obejmuje każdą umowę zawieraną na odległość przez interfejs internetowy, nie tylko finansową. Motyw 37 mówi to wprost: obowiązek ma dotyczyć także umów o inne towary i usługi, przy których prawo Unii daje prawo odstąpienia.

Daty są w art. 2 ust. 1 dyrektywy:

EtapDataPodstawa
Przyjęcie i publikacja przepisów krajowychdo 19 grudnia 2025 r.art. 2 ust. 1 akapit pierwszy
Stosowanie przepisów krajowychod 19 czerwca 2026 r.art. 2 ust. 1 akapit pierwszy
Raport Komisji o funkcjonowaniu przyciskudo 31 lipca 2030 r.art. 2 ust. 3

Dyrektywa nie działa bezpośrednio wobec sklepu. Obowiązek powstaje dopiero w prawie krajowym, które ją przenosi. Stąd różnica między “przepis obowiązuje w UE od 19 czerwca” a “przepis obowiązuje mój sklep”, i stąd sekcja niżej.

#Czy Polska wdrożyła przycisk odstąpienia od umowy

Nie. Sprawdziłem to w trzech miejscach.

Pierwsze to tekst jednolity ustawy z 30 maja 2014 r. o prawach konsumenta, ogłoszony obwieszczeniem Marszałka Sejmu z 4 września 2026 r. (Dz.U. 2026 poz. 1244). Zwrot “odstąpienia od umowy” pada w nim kilkadziesiąt razy, ale nie ma ani funkcji odstąpienia, ani etykiety “odstąp od umowy tutaj”, ani odesłania do dyrektywy 2023/2673.

Drugie to karta ustawy w ISAP (Dz.U. 2014 poz. 827) i jej lista aktów zmieniających. Najnowszy z nich to ustawa z 4 września 2026 r. o zmianie ustawy o przeciwdziałaniu nieuczciwym praktykom rynkowym oraz ustawy o prawach konsumenta (Dz.U. 2026 poz. 1353). Ona wdraża inną dyrektywę, 2024/825 o ekologicznych twierdzeniach i aktualizacjach oprogramowania, i wchodzi w życie 27 września 2027 r. O funkcji odstąpienia nie ma w niej ani słowa.

Trzecie to lista druków Sejmu X kadencji, pobrana 24 października 2026 r. z API Sejmu (ostatni druk z 22 października). Wśród druków, których tytuł wymienia ustawę o prawach konsumenta albo umowy zawierane na odległość, jedynym rządowym projektem jest druk 2799, czyli ten sam projekt, który stał się ustawą z poz. 1353. Projekt zmieniający kilka ustaw pod innym tytułem mógłby to wyszukiwanie ominąć. Nie sprawdzałem też etapu rządowego w Rządowym Centrum Legislacji, więc nie wykluczam, że projekt istnieje przed skierowaniem do Sejmu.

Polskie prawo zna już coś podobnego, tylko dobrowolnego. Art. 30 ust. 3 ustawy o prawach konsumenta pozwala przedsiębiorcy dać możliwość złożenia oświadczenia o odstąpieniu na swojej stronie internetowej, a art. 30 ust. 4 każe wtedy niezwłocznie przesłać konsumentowi potwierdzenie na trwałym nośniku. Art. 11a idzie dalej w trzech punktach: funkcja staje się obowiązkowa, ma określoną etykietę i osobny przycisk potwierdzenia, a potwierdzenie musi zawierać treść oświadczenia oraz datę i godzinę złożenia.

#Co dokładnie musi robić funkcja odstąpienia od umowy

Art. 11a ma pięć ustępów. Poniżej każdy z nich przełożony na zachowanie sklepu, z oficjalnym polskim brzmieniem etykiet z Dziennika Urzędowego UE.

UstępWymógCo to znaczy w sklepie
ust. 1Funkcja oznaczona słowami „odstąp od umowy tutaj” lub odpowiadającym im jednoznacznym sformułowaniem, w czytelnej formieprzycisk albo link z tym napisem, nie “Zwroty” ani “Pomoc”
ust. 1Stale dostępna przez cały okres na odstąpienie, umieszczona w wyróżniony sposób i łatwo dostępnawidoczna od złożenia zamówienia do końca terminu, nie schowana w regulaminie
ust. 2Internetowe oświadczenie pozwala łatwo podać lub potwierdzić imię i nazwisko, dane identyfikujące umowę i dane środka elektronicznego do potwierdzeniaformularz z numerem zamówienia i adresem e-mail, wstępnie wypełniony u zalogowanego klienta
ust. 3Wysłanie przez funkcję potwierdzenia oznaczoną słowami „potwierdź odstąpienie od umowy” lub jednoznacznym odpowiednikiemdrugi krok z osobnym przyciskiem, dopiero on wysyła oświadczenie
ust. 4Po potwierdzeniu: bez zbędnej zwłoki potwierdzenie otrzymania na trwałym nośniku, z treścią oraz datą i godziną złożeniaautomatyczny e-mail z pełną treścią i znacznikiem czasu
ust. 5Termin jest zachowany, jeśli oświadczenie złożono przed jego upływemliczy się chwila kliknięcia, nie chwila, w której ktoś w sklepie przeczyta zgłoszenie

Motyw 37 dodaje kilka wskazówek do interpretacji. Konsument nie powinien musieć wykonywać czynności, żeby znaleźć funkcję, na przykład pobierać aplikacji, jeśli umowy nie zawarł w tej aplikacji. Przedsiębiorca może prowadzić do funkcji hiperłączami. Klient zalogowany nie powinien drugi raz podawać danych identyfikacyjnych. Przy zamówieniu kilku towarów sklep może pozwolić odstąpić od części umowy. Krok potwierdzenia ma chronić przed przypadkowym odstąpieniem.

Dwie rzeczy z tej tabeli najczęściej giną przy wdrożeniu. Pierwsza to etykieta: “Zwróć produkt” opisuje coś innego, bo zwrot towaru to skutek odstąpienia, nie samo oświadczenie. Druga to ust. 5: jeśli formularz zapisuje zgłoszenie w kolejce, a e-mail wychodzi godzinę później, liczy się czas złożenia, więc ten czas trzeba zapisać po stronie serwera w chwili kliknięcia.

#Kogo dotyczy obowiązek przycisku odstąpienia

Art. 11a dotyczy umów zawieranych na odległość “za pośrednictwem interfejsu internetowego”, czyli strony, sklepu, aplikacji. Nie ma znaczenia platforma: WooCommerce, Shopify, PrestaShop, sklep headless na Astro albo Next.js, aplikacja mobilna. Zakres wyznacza prawo odstąpienia, więc obowiązek odpada tam, gdzie tego prawa nie ma.

  • Sprzedaż firmom (B2B) nie jest objęta, bo dyrektywa 2011/83 chroni konsumentów. Sklep mieszany potrzebuje przycisku dla zamówień konsumenckich.
  • Wyjątki z art. 16 dyrektywy 2011/83 (EUR-Lex), w Polsce art. 38 ustawy o prawach konsumenta: towary wykonane według specyfikacji konsumenta, szybko psujące się, zapieczętowane towary otwarte po dostarczeniu ze względów higienicznych, treści cyfrowe po rozpoczęciu dostarczania za zgodą konsumenta, usługi w pełni wykonane za jego zgodą i inne.
  • Sklep z personalizowanymi i zwykłymi towarami potrzebuje przycisku, ale może wyłączyć z formularza pozycje objęte wyjątkiem.
  • Subskrypcje i usługi cyfrowe zawierane online są objęte w okresie odstąpienia. Wypowiedzenie umowy po tym okresie to osobny temat, którego art. 11a nie reguluje.

#Polski sklep sprzedaje do Niemiec: czy musi mieć przycisk już teraz

Brak polskiej ustawy nie chroni sklepu, który sprzedaje konsumentom w państwie, które art. 11a wdrożyło. Decyduje o tym art. 6 rozporządzenia Rzym I (WE) nr 593/2008 (EUR-Lex). Jeśli przedsiębiorca kieruje działalność do państwa, w którym konsument ma miejsce zwykłego pobytu, umowa podlega prawu tego państwa (ust. 1 lit. b). Strony mogą wybrać inne prawo, ale ten wybór nie może pozbawić konsumenta ochrony przepisów, których nie da się wyłączyć umową (ust. 2). Klauzula “prawem właściwym jest prawo polskie” w regulaminie nie usuwa więc obowiązków z prawa kraju klienta.

Kierowanie działalności to kwestia oceny konkretnego sklepu: wersja językowa, waluta, dostawa do danego kraju, domena krajowa, reklama skierowana na ten rynek. Sklep, który ma niemiecką wersję i wysyła do Niemiec, trudno uznać za niekierujący oferty do Niemiec.

Niemcy mają przepis gotowy. § 356a BGB “Elektronische Widerrufsfunktion bei Fernabsatzverträgen” (gesetze-im-internet.de) przenosi art. 11a niemal słowo w słowo: etykieta “Vertrag widerrufen”, przycisk potwierdzenia “Widerruf bestätigen”, potwierdzenie na trwałym nośniku z treścią oraz datą i godziną. Art. 246e § 1 ust. 2 pkt 14a EGBGB (gesetze-im-internet.de) wymienia brak takiej funkcji wśród zakazanych naruszeń interesów konsumentów, gdy naruszenie jest powszechne w rozumieniu rozporządzenia (UE) 2017/2394, a § 2 tego artykułu przewiduje za nie grzywnę. Wzór pouczenia o odstąpieniu w załączniku 1 do EGBGB ma też nowe zdanie o tym, gdzie konsument znajdzie funkcję online.

Praktyczna reguła dla polskiego sklepu: sprawdź prawo każdego kraju, do którego kierujesz ofertę konsumentom. Tam, gdzie art. 11a jest wdrożony, przycisk jest obowiązkowy już teraz. Dla rynku polskiego obowiązek zacznie się z dniem wejścia w życie polskiej nowelizacji. Najprościej wdrożyć jedną funkcję dla wszystkich rynków: działa tak samo, a po polskiej nowelizacji nie trzeba niczego przebudowywać.

#Co grozi sklepowi za brak przycisku odstąpienia

Sankcje ustala prawo krajowe, więc odpowiedź zależy od kraju klienta. Dla Niemiec podstawę daje wspomniany art. 246e EGBGB. Dla Polski dziś nie ma przepisu, który można naruszyć, bo art. 11a nie został przeniesiony.

Jedna konsekwencja wynika z samej dyrektywy. Art. 6 ust. 1 lit. h dyrektywy 2011/83 po zmianie wymaga podania przed zawarciem umowy także “w stosownych przypadkach” informacji o istnieniu i umiejscowieniu funkcji odstąpienia. Art. 10 tej dyrektywy wydłuża termin na odstąpienie o 12 miesięcy, jeśli przedsiębiorca nie przekazał informacji z art. 6 ust. 1 lit. h. W Polsce odpowiednikiem art. 10 jest art. 29 ustawy o prawach konsumenta. Czy sąd w danym kraju zastosuje wydłużenie terminu do sklepu, który nie podał informacji o funkcji odstąpienia, przepisy nie przesądzają, ale sklep, który podaje tę informację i ma działający przycisk, nie musi tego sprawdzać w sądzie.

Dlatego regulamin i pouczenie o odstąpieniu warto zaktualizować razem z przyciskiem: jedno zdanie o tym, że konsument może odstąpić online, i link do funkcji.

#Przycisk odstąpienia od umowy w WooCommerce: gdzie go umieścić

W WooCommerce masz dziś trzy drogi: funkcję wbudowaną od wersji 11.1, wtyczkę albo własny kod. Wszystkie muszą odpowiedzieć na te same pytania: gdzie klient zobaczy przycisk, czy gość bez konta też go znajdzie, co trafia do bazy i jaki mail wychodzi.

Funkcja wbudowana. WooCommerce 11.1, wydany 3 września 2026 r. (GitHub), dodał funkcję Order withdrawal. Według dokumentacji WooCommerce i kodu wersji 11.2.1, którą sprawdziłem:

  • jest domyślnie wyłączona, włączasz ją w panelu w WooCommerce > Settings > Advanced > Features (ścieżka z angielskiej wersji panelu),
  • formularz działa bez logowania pod adresem /ja-account/withdraw-order/ (końcówkę adresu zmienisz w Advanced > Page setup),
  • pyta o imię, nazwisko, e-mail podany dwa razy i numer zamówienia, potem o to, czy odstąpienie dotyczy całego zamówienia czy wybranych pozycji (pozycje klient opisuje tekstem),
  • ma krok przeglądu z przyciskiem “Confirm withdrawal” i wysyła klientowi potwierdzenie z danymi oraz datą i godziną złożenia,
  • dopasowane zgłoszenie dodaje notatkę do zamówienia i powiadomienie w skrzynce WooCommerce, jedno zamówienie przyjmuje jedno zgłoszenie, a kolejne próby z tego samego adresu e-mail i IP blokuje na 30 sekund,
  • ostrzeżenie o upływie 14 dni liczy od daty utworzenia zamówienia, bo WooCommerce nie zna daty dostawy, i jest tylko informacją dla sprzedawcy.

Czego funkcja nie robi: nie umieszcza nigdzie linku. W kodzie 11.2.1 nie ma pozycji w menu konta klienta, przycisku przy zamówieniu, linku w mailach ani w stopce. Bez tego formularz istnieje, ale klient go nie znajdzie, a art. 11a ust. 1 wymaga funkcji umieszczonej w wyróżniony sposób. Etykieta “odstąp od umowy tutaj” w polskiej wersji sklepu i miejsca jej wyświetlania to twoja praca.

Wtyczka. Jedną z opcji jest Withdraw, wtyczka do WooCommerce, którą rozwijam w WPPoland i publikuję w katalogu WordPress.org (wersja 1.10.1). Według jej opisu dodaje przycisk Withdraw from contract here pod szczegółami zamówienia i na liście zamówień w Moim koncie, wstawia link do maili o zamówieniu w realizacji i zrealizowanym, pozwala odstąpić od wybranych sztuk każdej pozycji, liczy okres dla towarów od realizacji zamówienia i prowadzi rejestr zgłoszeń ze statusami. Odrzucenie zgłoszenia wymaga podania powodu. Wtyczka niczego nie zwraca sama, zwrot pieniędzy robisz w zamówieniu jak zwykle. Zrzut z jej widoku zamówień jest grafiką tego artykułu.

Aktualizacja, . Withdraw 1.8.0 liczy termin odstąpienia według art. 3 rozporządzenia 1182/71: dnia początkowego nie wlicza, termin kończy się o północy ostatniego dnia, a gdy ten wypada w sobotę lub niedzielę, przesuwa się na poniedziałek. Terminy tylko się wydłużają, nigdy nie skracają. Gdy znasz faktyczną datę dostawy, filtr withdraw/delivery_date zastępuje nią status “zrealizowane”, ustawienie dni zwłoki dodaje dni, a tryb doradczy przyjmuje spóźnione oświadczenie i oznacza je w rejestrze oraz w notatce do zamówienia. Po częściowym odstąpieniu reszta zamówienia nadal może być objęta odstąpieniem: sztuki z oświadczeniem oczekującym, przyjętym lub zrealizowanym nie są już oferowane, a odrzucone zwalnia swoje. Produkty i kategorie oznaczysz jako wyjątki z art. 16 lit. c, d i e dyrektywy (w Polsce art. 38 ustawy o prawach konsumenta), z informacją na karcie produktu, a oznaczenie zapisuje się przy pozycji zamówienia w kasie, więc późniejsza zmiana nie rusza prawa przy złożonych już zamówieniach. Przy usługach pomaga Polski for WooCommerce 1.44.0: w kasie, klasycznej i blokowej, pokazuje pole wyboru dla usług (żądanie rozpoczęcia świadczenia przed upływem terminu), gdy w koszyku jest produkt z kategorii wyłączonej z odstąpienia powodem Usługa (art. 38 ust. 1), a odpowiedź zapisuje przy zamówieniu. Taka usługa przestaje podlegać odstąpieniu dopiero wtedy, gdy żądanie jest przy zamówieniu, a zamówienie zrealizowane. Dla towarów dla dorosłych ta sama wtyczka dodaje pole potwierdzenia wieku 18+, zapisane przy zamówieniu. To moje wtyczki, darmowe w katalogu WordPress.org.

Aktualizacja, . Withdraw 1.8.1 pokazuje na ekranie potwierdzenia hash weryfikacyjny SHA-256 oświadczenia (dyrektywa 2011/83/UE art. 11a ust. 4), wpisuje go do potwierdzenia dla klienta i do rejestru zgłoszeń oraz eksportuje rejestr do CSV z filtrami statusu i daty oraz ochroną przed wstrzyknięciem formuł do arkusza. Na liście zamówień WooCommerce pojawia się kolumna ze statusem odstąpienia, linkiem do rejestru i ostrzeżeniem o spóźnionym zgłoszeniu (lista zmian).

Aktualizacja, . Withdraw 1.11.0, moja własna wtyczka do WooCommerce, wysyła teraz potwierdzenie także wtedy, gdy oświadczenie o odstąpieniu nie pasuje do żadnego zamówienia. Włączasz opcję Accept declarations that match no order, a klient, który wpisał zły numer zamówienia lub inny adres e-mail, i tak dostaje potwierdzenie (dyrektywa 2011/83/UE, załącznik I część A, instrukcja wypełniania 3). Adres nie jest zweryfikowany, więc wiadomość podaje tylko, że oświadczenie wpłynęło, kiedy, i jego kod odbioru, bez numeru zamówienia, towaru i powodu. Dla sklepu oznacza to, że żadne oświadczenie nie zostaje bez odpowiedzi.

Aktualizacja, . Withdraw 1.9.0 i 1.10.0 odróżniają towary od usług. Zamówienie złożone wyłącznie z produktów wirtualnych (usług, treści cyfrowych) liczy okres odstąpienia od daty zamówienia, czyli dnia zawarcia umowy (art. 9 ust. 2 lit. a i c dyrektywy 2011/83/UE). Zamówienie z choć jednym towarem fizycznym nadal liczy go od dostawy. Ustawienie Your contracts are for (towary, usługi, treści cyfrowe) dopasowuje wzór pouczenia o odstąpieniu i wzór formularza: dla usług i treści cyfrowych pouczenie liczy termin od zawarcia umowy i pomija akapity o odesłaniu towaru, a usługi dostają jeszcze akapit o zapłacie za świadczenie wykonane do chwili odstąpienia i wersję formularza dla usług (załącznik I część A i B dyrektywy). Towary, czyli ustawienie domyślne, działają jak dotąd (lista zmian).

Aktualizacja, . Od wersji 1.0.18 Redono Pro, moja wtyczka do zwrotów w WooCommerce, współpracuje z Withdraw. Oświadczenie o odstąpieniu zapisane przez Withdraw od razu otwiera zgłoszenie zwrotu, które wskazuje to oświadczenie, a pieniądze wracają do klienta tylko z tego zgłoszenia (lista zmian). Sklep ma wtedy jeden ślad od oświadczenia do zwrotu pieniędzy i nie wypłaci zwrotu dwa razy, gdy klient napisze jeszcze maila albo założy drugie zgłoszenie.

Aktualizacja, . Najwięcej pułapek kryje się w liczeniu terminu. Przy sprzedaży towaru okres odstąpienia kończy się 14 dni po dniu, w którym konsument wszedł w posiadanie rzeczy (art. 9 ust. 2 lit. b dyrektywy 2011/83/UE), a funkcja odstąpienia ma być dostępna nieprzerwanie przez cały ten okres (art. 11a ust. 1). Sklep, który liczy 14 dni od daty zamówienia, zabiera przycisk klientowi, którego paczka jeszcze jedzie, na przykład przy przedsprzedaży albo długiej wysyłce. Tak to rozwiązuje moja wtyczka Polski for WooCommerce: przycisk pojawia się od zawarcia umowy (zamówienie w realizacji albo wstrzymane), zostaje do zrealizowania zamówienia i znika 14 dni po tej dacie, a zamówienia anulowane, zwrócone i nieopłacone go nie pokazują. W oświadczeniu klient widzi swoje imię i adres e-mail, na który pójdzie potwierdzenie, bo tych danych wymaga art. 11a ust. 2. Withdraw pokazuje akcję odstąpienia na liście zamówień w Moim koncie i link w mailach tylko w okresie odstąpienia, a dopóki strona z formularzem nie jest opublikowana, nie drukuje linku, który prowadziłby donikąd. Status “zrealizowane” jest tu przybliżeniem daty doręczenia, więc ustawiaj go po dostawie, nie w chwili nadania paczki. Sprawdzisz swój sklep jednym testem: zostaw zamówienie testowe w realizacji dłużej niż 14 dni i zobacz, czy przycisk nadal jest widoczny.

Własny kod ma sens, gdy sklep ma niestandardowy proces zwrotów, integrację z ERP albo działa headless. Wtedy wymagania z tabeli wyżej są specyfikacją.

Niezależnie od drogi, przycisk powinien być w czterech miejscach:

MiejsceDla kogoUwagi
Lista zamówień i szczegóły zamówienia w Moim koncieklienci z kontemukryj po upływie terminu
Mail z potwierdzeniem i mail o wysyłce lub realizacjiwszyscy, także gościelink z numerem zamówienia, bez zmuszania do logowania
Stopka sklepugoście, którzy zgubili mailalink do formularza z wyszukiwaniem po numerze i e-mailu
Pouczenie o odstąpieniu i regulaminwszyscyinformacja o istnieniu i miejscu funkcji

Goście to najsłabszy punkt. Funkcja wbudowana i wtyczka Withdraw obsługują ich przez numer zamówienia i adres e-mail. Jeśli twój formularz wymaga konta, klient, który kupił bez rejestracji, musiałby je zakładać, a motyw 37 mówi o braku dodatkowych procedur przy dostępie do funkcji.

#Przycisk odstąpienia w Shopify

Shopify opisuje temat na dwóch stronach pomocy. Strona o prawie odstąpienia w UE streszcza wymogi dyrektywy: łatwy do znalezienia przycisk lub link, na przykład z konta klienta albo strony statusu zamówienia, dwuetapowe potwierdzenie i automatyczne potwierdzenie na trwałym nośniku. Strona o regułach zwrotów podaje konfigurację:

  • włącz samoobsługowe zwroty i anulowania, z opcją zgłaszania zarówno zwrotów, jak i anulowań,
  • ustaw okno anulowania na Until item is fulfilled, żeby klient mógł zrezygnować przed wysyłką,
  • ustaw okno zwrotu na co najmniej 14 dni liczone od dostawy ostatniej pozycji i zaznacz wydłużenie na weekendy i święta,
  • dodaj widoczny link do kont klientów albo pozycję menu prowadzącą do zamówień, osobno dla rynku UE, jeśli masz osobne menu per rynek.

Shopify sam zaznacza, że te narzędzia nie oznaczają automatycznie zgodności. Dwie rzeczy warto sprawdzić względem art. 11a. Pozycja menu może mieć dowolną nazwę, więc nazwij ją “odstąp od umowy tutaj”, a nie “Moje zamówienia”. Konta klientów w Shopify wymagają zalogowania kodem z e-maila, więc oceń, czy dla gościa to nie jest dodatkowa procedura, i rozważ osobną stronę z formularzem bez logowania.

#Sklep headless lub własny system: co musi zapisać backend

W sklepie na Astro, Next.js albo własnym frameworku wszystko powyżej trzeba zbudować samodzielnie. Minimalny zapis zgłoszenia, który pozwoli wykazać spełnienie ust. 4 i 5:

  • identyfikator zamówienia i, przy odstąpieniu częściowym, lista pozycji z ilościami,
  • imię i nazwisko oraz adres e-mail, na który poszło potwierdzenie,
  • dokładny tekst oświadczenia, który klient zobaczył w kroku potwierdzenia, zapisany w chwili wysłania, a nie odtwarzany później z szablonu,
  • znacznik czasu z serwera w UTC, z wyświetleniem w strefie sklepu w mailu,
  • identyfikator wysłanego maila i status doręczenia z dostawcy poczty.

Ostatni punkt łączy się z dostarczalnością. Potwierdzenie na trwałym nośniku to zwykle e-mail, a sklep, którego maile trafiają do spamu albo w ogóle nie wychodzą, nie spełnia ust. 4, choć formularz działa. Jak to sprawdzić w WordPressie, opisałem w poradniku o SMTP, SPF i DKIM.

Formularz bez logowania to też powierzchnia ataku: ktoś znający numer zamówienia i e-mail może złożyć odstąpienie w cudzym imieniu albo podejrzeć zawartość zamówienia. Ograniczenie liczby prób, brak różnicy w odpowiedzi dla istniejącego i nieistniejącego zamówienia oraz pokazywanie pozycji dopiero po weryfikacji to rozsądne minimum. Wtyczka Withdraw ma do tego opcjonalny jednorazowy link wysyłany na adres z zamówienia, domyślnie wyłączony, bo uzależnia odstąpienie od działającej poczty.

#Jak przetestować przycisk odstąpienia przed wdrożeniem

Testuj na stagingu, na fikcyjnym zamówieniu i skrzynce, którą kontrolujesz. Dokumentacja WooCommerce proponuje podobną procedurę dla funkcji wbudowanej. Lista kontrolna:

  1. Otwórz sklep w oknie prywatnym, bez logowania. Znajdź przycisk ze strony głównej w nie więcej niż dwóch kliknięciach.
  2. Złóż zamówienie jako gość. Sprawdź, czy mail z potwierdzeniem zamówienia zawiera link do funkcji.
  3. Wypełnij formularz. Sprawdź, czy krok drugi ma osobny przycisk z etykietą “potwierdź odstąpienie od umowy” i czy przed jego kliknięciem nic nie zostało wysłane.
  4. Potwierdź. Sprawdź, czy mail przyszedł od razu, zawiera pełną treść oświadczenia, datę i godzinę, i czy nie trafił do spamu.
  5. Sprawdź w panelu, czy zgłoszenie jest przypisane do zamówienia i czy status płatności się nie zmienił.
  6. Złóż zgłoszenie dla zamówienia z nieistniejącym numerem. Sprawdź, czy sklep i tak je przyjął i powiadomił obsługę do ręcznego sprawdzenia.
  7. Zmień datę realizacji testowego zamówienia na starszą niż termin. Sprawdź, czy przycisk zniknął z konta klienta.
  8. Przejdź formularz samą klawiaturą i czytnikiem ekranu. Funkcja, której nie da się obsłużyć bez myszy, nie jest “łatwo dostępna”; wymagania dostępności sklepu opisałem w artykule o WCAG 2.2 i EAA.

Po wdrożeniu sprawdź jeszcze, czy narzędzia analityczne nie ładują się na stronie formularza bez zgody: formularz odstąpienia to strona z danymi osobowymi, a typowe błędy banerów zgód opisałem w tekście o skryptach ładujących się mimo odrzucenia.

#Od czego zacząć w swoim sklepie

Najpierw lista rynków: do jakich krajów kierujesz ofertę konsumentom i które z nich wdrożyły art. 11a. Potem wybór drogi technicznej i miejsca przycisku według tabeli wyżej, aktualizacja pouczenia o odstąpieniu i test z listy. Kolejność ma znaczenie, bo od listy rynków zależy, czy przycisk jest pilny już dziś, czy dopiero po polskiej nowelizacji.

Jeśli chcesz, żeby ktoś przejrzał sklep pod kątem tego i innych wymogów unijnych (dostępność, zgody, GPSR, Omnibus), opisuję to w audycie zgodności EU dla WordPressa. Wdrożenie w WooCommerce, od funkcji wbudowanej po integrację zwrotów z ERP, robię w ramach usług programisty WooCommerce.

Następny krok

Przekuj artykuł w realne wdrożenie

Pod tym wpisem dokładam linki, które domykają intencję użytkownika i prowadzą dalej w strukturze serwisu.

Sprawdź inne usługi WordPress i bazę wiedzy

Często zadawane pytania

Najważniejsze odpowiedzi, które pomagają wdrożyć temat w praktyce.

Czy przycisk odstąpienia od umowy jest już obowiązkowy w Polsce#
Dyrektywa każe go stosować od 19 czerwca 2026 r., ale Polska nie przeniosła art. 11a do ustawy o prawach konsumenta. Tekst jednolity z 4 września 2026 r. (Dz.U. 2026 poz. 1244) nie ma takiego przepisu, a lista aktów zmieniających w ISAP nie zawiera ustawy, która by go dodała. Termin na wdrożenie minął 19 grudnia 2025 r.
Czy polski sklep sprzedający do Niemiec musi mieć przycisk#
Jeśli sklep kieruje ofertę do konsumentów w Niemczech, umowa z nimi podlega co do zasady prawu niemieckiemu (art. 6 rozporządzenia Rzym I), a wybór prawa polskiego w regulaminie nie odbiera im ochrony bezwzględnie obowiązujących przepisów. Niemcy mają funkcję odstąpienia w § 356a BGB.
Czy WooCommerce ma wbudowany przycisk odstąpienia#
Od wersji 11.1 WooCommerce ma funkcję Order withdrawal, domyślnie wyłączoną. Daje publiczny formularz z krokiem potwierdzenia i e-mailem z datą i godziną, ale nie dodaje linku do konta klienta, maili ani stopki. Etykietę i miejsce przycisku trzeba dodać samemu.
Jakie dane musi zapisać sklep po odstąpieniu przez przycisk#
Art. 11a wymaga potwierdzenia na trwałym nośniku z treścią oświadczenia oraz datą i godziną jego złożenia. W praktyce sklep powinien przechowywać dokładnie tę treść, którą klient potwierdził, numer zamówienia, wybrane pozycje, adres, na który wysłano potwierdzenie, i znacznik czasu.

Polecane artykuły

Omnibus w WooCommerce: najniższa cena z 30 dni

Art. 4 ust. 2 ustawy o informowaniu o cenach każe przy każdej obniżce pokazać najniższą cenę z 30 dni przed nią. WooCommerce nie przechowuje historii cen, więc robi to wtyczka albo własny kod. Jak działa poprawna historia, co psuje się w praktyce i jak to przetestować we własnym sklepie.