Kiedy w 2023 roku weszla w zycie dyrektywa Omnibus, wiekszosc polskich sklepow internetowych zareagowala... bylejakoscia. PrzekreSlona cena, obok niej nowa, ewentualnie etykietka 'PROMOCJA' - i tyle. Problem w tym, ze takie podejscie to nie tylko naruszenie prawa, ale rowniez krotka droga do kary, ktora moze byc bolesna nawet dla sredniej wielkosci sklepu.

W tym artykule pokaze Ci, co dokladnie narzuca przepis, jak wdrozyc go poprawnie w WooCommerce (i nie tylko), jakie sytuacje sa wyjatek a nie regula, oraz co konkretnie sprawdzaja inspektorzy podczas kontroli - zeby nie bylo potem zaskoczen.

Co mowi prawo: najnizsza cena z 30 dni krok po kroku

Dyrektywa Omnibus (oficjalnie: dyrektywa Parlamentu Europejskiego i Rady 2019/2161) zostala wdrozona do polskiego prawa 1 stycznia 2023 r., zmieniajac m.in. ustawe o informowaniu o cenach towarow i uslug. Dodany art. 4a mowi wprost: przy kazdym ogloszeniu obnizki ceny przedsiebiorca musi podac najnizsza cene danego towaru lub uslugi obowywazyujaca w ciagu co najmniej 30 dni przed wprowadzeniem obnizki.

Brzmi prosto, ale diabelek tkwi w szczegolach. Czym jest 'ogloszenie obnizki'? Co liczymy jako 'najnizsza cene'? Inspekcja Handlowa kontroluje nie tylko to, czy informacja jest obecna, ale tez czy jest prawdziwa i czytelna. Jestem webdeveloperem, nie prawnikiem ani ksiegowym - dlatego w kwestiach interpretacji przepisow zawsze polecam klientom konsultacje z radca prawnym specjalizujacym sie w e-commerce. Ale sam mechanizm techniczny i typowe pulapki znam dobrze z wdrozen.

do 20 000 zlkara Inspekcji Handlowej za pierwsze naruszenie
do 40 000 zlkara za powtorzone naruszenie
37 mln zllaczna kara dla Zalando i Temu w 2024 r.
30 dniminimalny okres historii cen wymagany przez przepisy

Kiedy obowiazek wchodzi w gre, a kiedy nie

Nie kazda zmiana ceny wymaga pokazania historii 30-dniowej. Wazne jest rozroznienie: obowiazek pojawia sie wtedy, gdy informujesz klienta o obnizce - czyli aktywnie komunikujesz, ze cena jest nizsza niz byla. Jesli po prostu zmieniasz cene bez zadnej adnotacji o promocji, formalnie nie musisz pokazywac historii.

W praktyce sklepy rzadko obniazaja ceny 'w ciszy'. Etykieta '-30%', pasek 'WYPRZEDAZ', przekreSlona stara cena - to wszystko kwalifikuje sie jako ogloszenie obnizki i uruchamia obowiazek.

Sytuacje wylaczone z obowiazku:

Kiedy NIE musisz pokazywac najnizszej ceny z 30 dni

  • Produkty szybko psujace sie z krotkim terminem przydatnosci do spozywania
  • Rabaty spersonalizowane wyslane imiennie do konkretnego klienta (np. kod urodzinowy)
  • Cena obnizona bez zadnej komunikacji o promocji czy wyprzedazy
  • Programy lojalnosciowe z indywidualnymi cenami dla stalych klientow (ale tu uwazaj - granica jest cienka)

Jesli masz watpliwosci, czy Twoja sytuacja to wyjetek - domyslnie zaloz, ze obowiazek istnieje. To bezpieczniejsza postawa niz ryzykowanie kary.

Jak liczyc podstawe rabatu - tu najczesciej sa bledy

Jeden z najczestszych bledow, ktory widzialem u klientow: sklep podnosi cene produktu z 199 zl na 299 zl na tydzien przed 'wielka promocja', po czym obniza do 219 zl i komunikuje '-27%'. Taki zabieg to klasyczny greenwashing cenowy, w dodatku wprost sprzeczny z duchem dyrektywy Omnibus.

Jesli w ciagu 30 dni przed promocja podniosles cene produktu, najnizsza cena z tego okresu to ta nizsza wartosc - czyli ta sprzed podwyzki. Rabat musisz komunikowac wlasnie od niej, nie od sztucznie zawyzonej ceny regularnej.

Konkretny przyklad: produkt kosztowal przez 25 dni 199 zl, przez 5 dni 249 zl, a teraz idziesz na promocje. Najnizsza cena z 30 dni to 199 zl - i to ona musi byc widoczna jako 'cena przed promocja'. Jesli obniazasz do 179 zl, Twoj rzeczywisty rabat wynosi 10%, nie 28%.

Dyrektywa zostala napisana wlasnie po to, zeby wyeliminowac takie praktyki. UOKiK jest tego swiadomy i uwzglednia historia cen przy ocenie naruszen.

Kody rabatowe i kupony - specjalny przypadek

Tutaj pojawia sie pytanie, ktore dostalem od kilku klientow przy wdrozeniach: czy jesli wyslam newsletter z kodem '-20% na wszystko', to przy kazdym produkcie muszam pokazac cene 30-dniowa?

Odpowiedz z wyjasnieniami Prezesa UOKiK brzmi: tak, jesli kod jest publicznie dostepny (np. w newsletterze do calej bazy, na stronie, w reklamie). Wtedy dla kazdego produktu objetego kodem obowiazuje pelna historia cenowa.

Wyjetek to kody autentycznie spersonalizowane - jednorazowe, przypisane do konkretnego klienta, niedostepne publicznie. Taki kod urodzinowy wyslany do Jana Kowalskiego z imienia i nazwiska, dla niego jako jedynego, nie uruchamia obowiazku. Ale 'KOD_VIP' wyslany do 30 000 subskrybentow newslettera - jak najbardziej.

Kody rabatowe a dyrektywa Omnibus

Typ koduObowiazek OmnibusPrzyklad
Publiczny kod w newsletterzeTAKLATO20 dla wszystkich
Kod na stronie glownejTAKWELCOME10 dla nowych
Kod w reklamie FacebookTAKFB15 w kampanii
Kod urodzinowy imiennieNIEdla Jana Kowalskiego
Kod powitanie VIP (indywidualny)NIEjednorazowy unikalny

WooCommerce: jak to wdrozyc technicznie

WooCommerce sam w sobie nie przechowuje historii cen produktow. Standardowo system zapisuje tylko aktualna cene regularną i promocyjną - zadnego logu zmian. Dlatego do wdrozenia Omnibus potrzebujesz wtyczki, ktora zacznie sledzic ceny od momentu instalacji.

To kluczowe zdanie: wtyczka musi byc zainstalowana przed pierwsza obnizka, ktora chcesz komunikowac. Nie ma mozliwosci retroaktywnego odtworzenia historii cen, jesli jej nie logowales.

Opcja 1: WP Desk Omnibus WooCommerce (platna, 149 zl netto/rok)

To najpopularniejsze rozwiazanie na polskim rynku, z ponad 5000 aktywnych instalacji. Wtyczka sledzi ceny produktow prostych i wariantowych, przechowuje log w bazie danych, i wyswietla informacje o najnizszej cenie w odpowiednim miejscu przy produkcie. Wspiera WPML dla sklepow wielojezycznych, co jest istotne jesli prowadzisz sprzedaz rowniez na rynki DE lub EU.

U klienta z branzy odziezowej w Poznaniu uzywam wlasnie WP Desk - ma okolo 400 SKU z wariantami (rozmiar, kolor), i wtyczka radzi sobie bez problemow. Historia jest przechowywana per wariant, co jest wymagane przy roznych cenach rozmiarow.

Opcja 2: Omnibus - pokaz najnizsza cene (darmowa, Marcin Pietrzak, WordPress.org)

Darmowa, dostepna bezposrednio z repozytorium WordPress.org. Prostsza w konfiguracji, dobra dla sklepow z mniejszym asortymentem i bez wariantow. Nie ma zaawansowanego zarzadzania historia, ale dla sklepu z kilkudziesiecioma produktami prostymi moze byc wystarczajaca.

Opcja 3: DC Woo Omnibus (lekka, bez bazy danych)

Zamiast SQL, ta wtyczka zapisuje cenowa historię jako pliki tekstowe w katalogu uploads. Podejscie ultralkkie, nie obciaza bazy. Dla mniejszych sklepow na slabszych serwerach moze byc lepszym wyborem niz rozwiazanie oparte na dodatkowych tabelach.

Zanim wybierzesz wtyczke, sprawdz, czy Twoj motyw pokazuje cene w standardowym miejscu WooCommerce (woocommerce_single_product_summary). Niestandardowe motywy czesto wymagaja drobnej konfiguracji lub hooka, zeby informacja Omnibus wyswietlala sie w wlasciwym miejscu.

Jesli budujesz sklep na zamowienie lub przejmujesz projekt od innego developera, sprawdz takze, czy historia cen nie zostala przypadkowo wyczyszczona przy migracji lub aktualizacji WooCommerce. To jeden z tych drobiazgow, ktory latwiej sprawdzic zawczasu niz tlumaczac sie przed inspektorem.

Wiecej o kompletnym obslugu prawnym sklepu internetowego znajdziesz w artykule o obowiazkach prawnych sklepu i kalendarzu terminow na 2026, a o zwrotach i prawie odstapienia - w osobnym wpisie o 14-dniowym prawie do odstapienia od umowy.

Shoper: natywna obsluga Omnibus

Jesli Twoj sklep dziala na Shoperze, masz luksus braku dodatkowych wtyczek. Shoper od poczatku 2023 wbudowal obsluge dyrektywy Omnibus natywnie - w panelu administracyjnym mozesz wlaczyc automatyczne sledzenie historii cen lub ustawiac ja recznie dla kazdego produktu.

W ustawieniach promocji w Shoperze mozesz wybrac, czy system ma automatycznie pobierac i wyswietlac najnizsza cene z 30 dni, czy chcesz wpisywac ja recznie. Dla wiekszosci sklepow tryb automatyczny jest bezpieczniejszy - eliminuje ryzyko ludzkiego bledu przy ustawianiu promocji.

Produkty wariantowe - pulapka, o ktorej mowi niewielu

Jedna z czestszych bledow przy wdrozeniu Omnibus w WooCommerce to traktowanie calego produktu wariantowego jako jednosci. Jesli masz kurtke dostepna w rozmiarach S, M, L, XL - i kazdy rozmiar ma inna cene - to historia cenowa powinna byc prowadzona i prezentowana osobno dla kazdego wariantu.

Przyklad: rozmiar S kosztowal zawsze 199 zl, a rozmiar XL - 219 zl. Przy promocji -20% na caly asortyment, najnizsza cena z 30 dni dla S to 199 zl, dla XL - 219 zl. Pokazanie jednej wspolnej 'najnizszej ceny' dla calego produktu moze byc mylace i stanowic naruszenie.

Plusy

  • Prawidlowe sledzenie per wariant daje pena przejrzystosc dla klientow
  • Unikasz ryzyka zanizona lub zawyzona 'ceny z 30 dni' dla danego rozmiaru
  • Lepsze doswiadczenie uzytkownika - klient widzi konkretna informacje po wybraniu rozmiaru

Minusy

  • Wymaga wtyczki, ktora obsluguje warianty (nie kazda to robi)
  • Wiekszy narzut danych w bazie lub plikach historii
  • Przy bardzo duzym asortymencie (1000+ wariantow) moze spowolnic sklep - warto sprawdzic wydajnosc

Co kontroluje Inspekcja Handlowa - wyniki z 2025 r.

W 2025 r. Inspekcja Handlowa przeprowadzila ogolnopolska akcje kontrolna dotyczaca oznakowan cenowych. Skontrolowano ponad 3000 przedsiebiorcow i prawie pol miliona produktow, w tym ponad 5000 produktow oferowanych w obnizonych cenach. Wyniki? Nieprawidlowosci sa nadal czeste.

Najczesciej sprawdzane punkty podczas kontroli e-sklepu:

Lista kontrolna inspektora Inspekcji Handlowej

  • Czy przy produkcie w promocji widnieje najnizsza cena z 30 dni przed obnizka
  • Czy informacja jest czytelna i nie wymaga dodatkowego klikania, by ja znalezc
  • Czy rabat procentowy jest liczony od najnizszej ceny z 30 dni (nie od zawyzonej ceny regularnej)
  • Czy sklep potrafi udokumentowac historię cenową produktu na zadanie inspektora
  • Czy na listingach kategorialnych i w wynikach wyszukiwania rowniez widnieje ta informacja (nie tylko na karcie produktu)
  • Czy kody rabatowe publiczne sa obsluzone zgodnie z wymaganiami

Ten ostatni punkt - listy kategorii i wyniki wyszukiwania - jest przez wielu wlascicieli sklepow pomijany. Tymczasem prawo wymaga, by informacja o najnizszej cenie towarzyszyla produktowi wszdzie tam, gdzie komunikowana jest obnizka. Jesli banner 'WYPRZEDAZ -30%' pojawia sie na listingu kategorii, to przy kazdym produkcie na tej liscie powinna byc takze najnizsza cena z 30 dni.

Jak prawidlowo sformulowac i wyswietlic informacje

Prawo nie narzuca konkretnej formuly slownej, ale wymaga jednoznacznosci. Dobrze sprawdzone formuly:

  • 'Najnizsza cena z 30 dni przed obnizka: 199,00 zl'
  • 'Cena minimalna z ostatnich 30 dni: 199,00 zl'

Unikaj dwuznacznych sformulowań w rodzaju 'cena przed' bez dookreslen - inspektor moze uznac, ze informacja jest niepelna lub mylaaca.

Jesli jestes na etapie budowania nowego sklepu lub gruntownej przebudowy istniejacego, warto skonsultowac UX tej informacji z grafike - powinna byc widoczna, ale nie powinna zasmiecac karty produktu. Dobrze sprawdza sie subtelny podpis pod cena, wyroznionym kolorem lub kursywa, ale o czytelnej wielkosci czcionki.

W WooCommerce z wtyczka WP Desk miejsce wyswietlania konfiguruje sie przez ustawienia wtyczki (mozna wybrac powyzej lub ponizej ceny, na listingach itd.). Dla sklepow z niestandardowymi motywami czasem potrzebny jest dodatkowy hook - tutaj przydaje sie developer, ktory zna strukture konkretnego theme.

Jesli chcesz, zebym pomog Ci wdrozyc Omnibus w Twoim sklepie WooCommerce lub sprawdzil poprawnosc obecnej konfiguracji, odwiedz strone sklepow internetowych i napisz do mnie.

Automatyzacja faktur a zapis historii cen

Malo kto o tym mysli, ale historia cenowa w kontekscie Omnibus laczy sie posrednio z dokumentacja transakcji. Jesli uzywasz automatycznych faktur (np. przez integracje Fakturownia z WooCommerce), masz w systemie fakturowym dodatkowy slad cen z konkretnych dat - to moze byc pomocne przy ewentualnym sporze z Inspekcja Handlowa. Oczywiscie faktury to dokumenty sprzedazy, nie historia cenowa produktu, ale jako material uzupelniajacy moga potwierdzic, ze cena X obowiazywala w danym przedziale czasowym.

Eksportuj regularnie logi historii cen z wtyczki Omnibus - chocby raz na miesiac do pliku CSV. W przypadku migracji sklepu, zmiany hostingu lub aktualizacji wtyczki historia cen moze zostac nadpisana lub utracona. Kopia zapasowa danych cenowych to minimum przezornosci.

Kary realne i co z nich wynika dla MSP

Zalando zaplacilo 30 945 000 zl, Temu okolo 6 mln zl - razem 37 mln zl kary nakladanej przez UOKiK za nieprawidlowe informowanie o promocjach i obnizach cen. To precedensowa decyzja z 2024 r., ktora pokazuje, ze UOKiK traktuje Omnibus powaznie i nie ogranicza sie do upomnien.

Dla malego sklepu stacionarne ryzyko to przede wszystkim kara Inspekcji Handlowej - do 20 000 zl przy pierwszym naruszeniu, do 40 000 zl przy powtorzenym. To kwoty, ktore bolac beda nawet przy skromnych obrotach. Warto pamietac, ze inspekcja dziala z urzedu i nie wymaga skargi konsumenta - moga skontrolowac kazdy sklep z wlasnej inicjatywy.

Koszt wdrozenia poprawnej obslugi Omnibus w WooCommerce? Przy platnej wtyczce WP Desk to 149 zl netto rocznie. Nawet jesli doliczysz kilka godzin pracy developera przy konfiguracji (u mnie standardowo to 1-2 godziny przy typowym sklepie), calkowity koszt zamknie sie w kwocie znaczaco ponizej mozliwej kary. Rachunki sa proste.

Migracja sklepu a historia cen - czego nie stracic

Jeden z trudniejszych scenariuszy to migracja sklepu - np. ze Shopera na WooCommerce, z PrestaShop na WooCommerce, albo po prostu zmiana hostingu z pelna migracja bazy. W kazdym z tych przypadkow istnieje ryzyko utraty historii cen.

Przy migracjach, ktore prowadzam, standardem jest eksport historii cen z wtyczki Omnibus do pliku CSV przed migracja, a po migracji - import tej historii do nowej instalacji wtyczki (WP Desk oferuje import danych). Jesli Twoj dotychczasowy system nie mial zadnej historii cenowej (bo dopiero zaczynalas z Omnibus), to po migracji zaczynasz zbierac dane od zera - bez mozliwosci odtworzenia przeszlosci.

Taki scenariusz spotkalem u klientki ze Slaska, ktora przenosila sklep z abonamentowej platformy na WooCommerce - trzy lata cen bez zadnego logu, zero historii po stronie starego systemu. Trzeba bylo zachowac cierpliwosc: przez pierwsze 30 dni po migracji nie mozna bylo uruchamiac promocji z 'najnizsza cena z 30 dni', bo danych po prostu nie bylo. Lepiej zaplanowac te kwestie z wyprzedzeniem.

Podsumowanie: co zrobic jeszcze dzisiaj

Jesli masz sklep WooCommerce i nie masz jeszcze wtyczki do sledzenia historii cen - zainstaluj ja dzisiaj. Nie jutro, nie po nastepnym sezonie wyprzedazowym. Wtyczka musi dzialac przez pelne 30 dni, zanim bedziez mogl uruchomic pierwsza promocje ze spójna historia cenowa.

Jesli masz juz wtyczke, sprawdz dwie rzeczy: po pierwsze, czy informacja o najnizszej cenie pojawia sie takze na listingach kategorii (nie tylko na karcie produktu), i po drugie, czy warianty produktow sa sledzone osobno. Te dwa punkty sa najczesciej pomijane przy wdrozeniach, ktore przejmuje od innych deweloperow.

Budujesz sklep od zera lub robisz gruntowny rebranding? Wiecej o kompleksowym podejsciu do budowania sklepu internetowego znajdziesz na mojej stronie.

Najczęstsze pytania

Od kiedy obowiazuje dyrektywa Omnibus w Polsce?

Dyrektywa Omnibus weszla w zycie w Polsce 1 stycznia 2023 r. Zostala wdrozona ustawa zmieniajaca m.in. ustawe o informowaniu o cenach towarow i uslug. Wszystkie sklepy internetowe i stacjonarne musialy dostosowac sie do przepisow od tego dnia.

Co dokladnie musi pokazywac sklep przy promocji?

Przy kazdej obnizce ceny sklep musi podac najnizsza cene, jaka obowywazywa w ciagu 30 dni poprzedzajacych wprowadzenie promocji. Informacja powinna byc czytelna i jednoznaczna - np. 'Najnizsza cena z 30 dni przed obnizka: 199 zl'. Samo pokazanie przekreslonej 'starej ceny' bez daty lub okresu juz nie wystarczy.

Jaka kara grozi za nieprzestrzeganie dyrektywy Omnibus?

Wedlug ustawy o informowaniu o cenach, Inspekcja Handlowa moze nalozyc kare do 20 000 zl za pierwsze naruszenie i do 40 000 zl przy powtorzonym naruszeniu. UOKiK ma z kolei kompetencje do nakladania kar do 10% rocznego obrotu w przypadku powaznych i systemowych naruszen - tak jak w przypadku Zalando (30,9 mln zl) i Temu (ok. 6 mln zl) w 2024 r.

Czy obowiazek dotyczy rowniez kuponow i kodow rabatowych?

Tak, jesli kod rabatowy jest publiczny (dostepny dla kazdego klienta), to przy kazdym produkcie objetym rabatem sklep musi pokazac najnizsza cene z ostatnich 30 dni. Wyjatkiem sa rabaty spersonalizowane - np. jednorazowy kod wysylany imiennie do konkretnego klienta z okazji urodzin - te nie wymagaja ujawnienia ceny 30-dniowej.

Czy produkty spozywcze i szybko psujace sie sa zwolnione z przepisow Omnibus?

Tak. Produkty szybko psujace sie lub majace krotki termin przydatnosci do spozywania sa wylaczone z obowiazku podawania najnizszej ceny z 30 dni. W ich przypadku wystarczy podac cene, ktora obowywazywa bezposrednio przed obnizka. To wyjynek zapisany wprost w dyrektywie i implementowany do polskiego prawa.

Jak obslugiwac produkty wariantowe (np. rozne rozmiary, kolory) w WooCommerce?

Kazdy wariant produktu powinien miec wlasna historie cenowa, bo ceny wariantow moga sie roznic. Dobre wtyczki (np. WP Desk Omnibus) sledzna ceny na poziomie wariantu i wyswietlaja informacje osobno dla kazdego wybranego wariantu. To wazne szczegolnie przy odziezy i obuwiu, gdzie roznicy rozmiaru czesto towarzyszy rozna cena.

Co zrobic, jesli produkt jest w sklepie krocej niz 30 dni?

Jesli towar byl dostepny w sklepie krocej niz 30 dni, to obowiazek jest proporcjonalny: sklep musi podac najnizsza cene od momentu wprowadzenia produktu do oferty az do chwili obnizki. Nie trzeba 'wymyslac' historii cenowej sprzed daty pojawienia sie produktu w sklepie.

Czy wystarczy recznie wpisywac najnizsza cene przy ustawianiu promocji?

Technicznie tak - prawo nie narzuca automatyzacji. Ale recznie wpisywana cena to ryzyko bledu i trudno utrzymywac ja spojnie przy duzym asortymencie. Przy sklepach z setkami produktow zdecydowanie wygodniejsza i bezpieczniejsza opcja jest wtyczka, ktora automatycznie loguje zmiany cen i wyswietla wlasciwa wartosc bez Twojej ingerencji.