01

Wdrożenie zamyka projekt. Zgodność otwiera proces.

Wdrożenie Omnibus ma datę startu, kierownika, zadanie w Jirze i podpis integratora. Zgodność z Omnibus nie ma żadnej z tych rzeczy. Projekt zamyka się w cztery do ośmiu tygodni, proces trwa bez końca, najczęściej bez właściciela i bez linijki w budżecie. Polski e-commerce zrobił projekt i zapomniał o procesie.

Naruszenia nie wychodzą przy starcie. Testy przechodzą, prawnik podpisuje protokół, integrator wystawia fakturę. Problemy pojawiają się pół roku do półtora roku później: przy migracji platformy, zmianie ERP, sezonowym przeindeksowaniu katalogu po Black Friday, podziale albo łączeniu wariantów. To rutynowe operacje. Żadna z nich nie wraca do działu pricingu z flagą "uwaga, Omnibus".

Potem przychodzi pismo. Podstawa: art. 106 ust. 1 pkt 4 ustawy o ochronie konkurencji i konsumentów, plus obowiązek zwrotu różnicy każdemu klientowi, który kupił w promocji. Wystarczy jedna skarga przez formularz online. Decyzje wobec średnich sklepów z lat 2024-2025 mieszczą się w setkach tysięcy złotych. To nie maksimum ustawowe, tylko środek rozkładu.

Test trzech produktów

Otwórz arkusz z dziesięcioma najlepiej sprzedającymi się produktami. Wybierz trzy. Sprawdź w bazie cen platformy, czy najniższa wartość przy ostatniej aktywnej promocji to faktycznie minimum z 30 dni przed startem obniżki, a nie cena "poprzednia", "regularna" albo "katalogowa". Jeśli odpowiedź brzmi "sprawdzaliśmy przy wdrożeniu w 2023", luka istnieje. Żaden dashboard jej nie pokaże. Kontrola znajdzie ją przy pierwszym pytaniu.

02

Sześć miejsc, w których psuje się zgodność

Niezależnie od platformy zgodność psuje się w tych samych sześciu miejscach. Trzy z nich UOKiK opisał w wyjaśnieniach z 2023 roku, pozostałe trzy wychodzą w postępowaniach z lat 2024-2025. W katalogu powyżej 200 produktów zwykle występują wszystkie.

1. Baza 30 dni liczona z niewłaściwego pola

Art. 4 ust. 2 ustawy o informowaniu o cenach definiuje bazę jako najniższą cenę z 30 dni przed obniżką. Nie cenę poprzednią, nie regularną, nie katalogową z PIM. Plugin często pobiera pole "cena poprzednia" z tabeli produktu zamiast liczyć minimum z historii. Test integratora używa danych syntetycznych z pełną historią i tego nie wykrywa. Produkcyjny log cenowy wykrywa, ale nikt go nie przegląda.

Przykład z audytu w sklepie odzieżowym: cena 199 zł przez trzy miesiące, cicha obniżka do 189 zł na piętnaście dni, Black Friday z komunikatem "minus 20%" do 151 zł. Poprawna baza to 189 zł, sklep liczył od 199. Różnica na sztuce: cztery złote. Przy kilku tysiącach transakcji wystarczyło, żeby urząd zadał pytania.

2. Zestawy, warianty, cross-sell

Zestaw pod osobnym kodem ma własną historię cen, nie sumę historii składników. Jeśli powstał dwanaście dni przed promocją, baza 30-dniowa formalnie nie istnieje i każda obniżka w pierwszych 30 dniach jest naruszeniem. Podział wariantu (jeden produkt dzielony na cztery kolory) albo łączenie (cztery warianty w jeden) resetuje historię, bo platforma traktuje nowe ID jako nowy produkt. To najczęstsze źródło naruszeń przy kontroli, bo nikt nie zapisuje podziału wariantów jako zdarzenia cenowego. Cross-sell "kup X, dostaniesz minus 15% na Y" wymaga liczenia bazy dla Y osobno, nie dla konfiguracji X plus Y.

3. Kody rabatowe i krótkie promocje

UOKiK w wyjaśnieniach z lat 2022 i 2023 potwierdził, że kod rabatowy jest obniżką ceny. Cena po kodzie nie może zejść poniżej bazy 30-dniowej. Wiele sklepów wyłącza kody z logiki Omnibus, bo traktuje je jako rabat dla klienta, nie zmianę ceny produktu. Urząd tej interpretacji nie podziela. Najgroźniejsza kombinacja: krótka promocja, która po 30 dniach staje się nową bazą, plus kod obniżający tę bazę dalej. Moduł kodów i moduł promocji to dwa osobne systemy, które nie czytają swoich logów.

4. Migracja platformy

Historia cen rzadko jedzie razem z danymi produktowymi. W przetargu IT nikt o nią nie pyta. Po przejściu na nową platformę w marcu sklep może legalnie ogłosić promocję wyłącznie od najniższej ceny po pierwszym marca. Jeśli komunikat odnosi się do wartości z lutego, naruszenie jest formalne. To dokładnie mechanizm z przykładu na początku tekstu.

5. Marketplace

Allegro nie weryfikuje poprawności bazy Omnibus u sprzedawców. Odpowiedzialność leży po stronie oferty. Synchronizacja cen przez systemy pośredniczące tworzy dodatkową warstwę rozjazdu: historia cen na Allegro to to, co tam trafiło, niekoniecznie to, co jest w ERP.

6. Konkurent z błędnym Omnibus

Konkurent podnosi cenę z 199 do 299 zł na 36 godzin przed Black Friday, a potem ogłasza "minus 40%" do 179 zł. Formalnie nie spełnia Omnibus. Realnie zbiera ruch, dopóki urząd nie odpowie na skargę, co trwa od kilku do kilkunastu miesięcy. Brak monitoringu zgodności u konkurencji to nie tylko ryzyko prawne, ale oddanie przewagi na zasadach, których uczciwy sprzedawca nie może powtórzyć.

03

Kary i trzy interpretacje, których nie ma w ustawie

Maksimum ustawowe (10% rocznego obrotu) trafia do nagłówków. Realne decyzje wobec sklepów średniej wielkości to setki tysięcy złotych, czyli rząd wielkości, przy którym CFO pyta o procedury, nie tylko o zapłatę. Większość decyzji z 2025 roku dotyczy promocji z 2023. Między naruszeniem a karą mija zwykle od szesnastu do dwudziestu miesięcy.

Ścieżka wygląda tak: konsument składa skargę przez formularz na uokik.gov.pl, urząd wszczyna postępowanie wyjaśniające, wezwanie trafia do działu prawnego. Dział pricingu dowiaduje się kilka tygodni później, czyli rok po samym naruszeniu. Pracownik, który w maju 2025 dostaje pytanie o kampanię z listopada 2023, nie pamięta szczegółów: kiedy ruszyła obniżka na konkretny produkt, jakie były ustawienia repricera, kto zatwierdził bazę, czy między tymi datami była migracja.

Urząd przedstawia zrzuty z własnego monitoringu, materiały od skarżącego, dane z porównywarek i Wayback Machine. Brak własnych logów po stronie sklepu oznacza w praktyce domniemanie winy: nie negocjuje się wysokości kary, dostaje się decyzję. To samo postępowanie z pełną historią cen kończy się w większości przypadków obniżeniem kary albo umorzeniem części zarzutów.

Trzy interpretacje spoza ustawy

  • Promocja krótsza niż doba. Ustawa milczy, wyjaśnienia UOKiK z 2023 roku nie: czterogodzinny "happy hour" z newslettera wymaga bazy 30-dniowej. Nie ma wyjątku czasowego.
  • Cena klubowa widoczna publicznie. Komunikat "dla członków klubu minus 20%" na stronie produktu liczy się jako cena prezentowana publicznie. Wymóg posiadania konta nie ma znaczenia; znaczenie ma widoczność.
  • Wyprzedaż sezonowa. Okno 30 dni liczy się od dnia ogłoszenia komunikatu "minus X%", nie od logistycznego startu kampanii. Baner ruszył piątego, ceny realnie spadły dziewiętnastego: okno cofa się o dwa tygodnie dalej, niż liczy marketing.
04

Minimalny ślad audytowy, który wytrzyma kontrolę

Pierwsze pytanie kontroli brzmi zwykle: "prosimy o historię cen produktu X za okres od 1 do 30 października wraz z dziennymi zrzutami". Odpowiedź "sprawdzę w systemie" oznacza brak obrony. Odpowiedź "wysyłam CSV w dwadzieścia minut" oznacza, że rozmowa trwa dalej.

Pięć typów zdarzeń trzeba logować z czasem co do sekundy i identyfikatorem operatora:

  1. Zmiana ceny regularnej. Rekord: czas, produkt, cena stara, cena nowa, operator, źródło. Zmiana z repricera, importu PIM i ręcznej edycji ląduje w jednym strumieniu.
  2. Start promocji. Rekord: czas, produkt, procent obniżki, baza Omnibus, cena wynikowa. Baza musi być zamrożona w momencie startu, nie liczona po fakcie.
  3. Operacja na wariancie (podział, łączenie, zmiana ID) z flagą "reset historii". Jedyne zdarzenie, które wymaga ręcznej weryfikacji następnego dnia.
  4. Użycie kodu rabatowego. Rekord: czas, kod, produkt, cena po kodzie, baza Omnibus. Bez tego nie da się odtworzyć, dlaczego klient zapłacił 89 zamiast 99 zł.
  5. Dzienny zrzut pełnego cennika. CSV o 23:59 dla aktywnych produktów. Retencja: 90 dni w gorącej bazie, 12 miesięcy w tanim archiwum (koszt rzędu kilku złotych miesięcznie za 50 GB).

Pole, które bywa pomijane, a jest kluczowe: "czy w promocji" (tak/nie). Bez niego nie da się jednym zapytaniem wyciągnąć minimum cen regularnych z 30 dni.

Platformy

Co platforma loguje sama, a co trzeba dołożyć

Trzy najczęstsze platformy w polskim e-commerce średniej wielkości.

Natywne wsparcie Omnibus na popularnych platformach
PlatformaLogowanie natywneDo dołożenia
ShoperModuł Omnibus od wersji 6.x, baza wyświetlana na karcie produktuAktywacja modułu (domyślnie wyłączony), eksport CSV z czasem, alert, gdy cena promocyjna spada poniżej bazy
IdoSellWłasna logika Omnibus, baza liczona automatycznieRęczna weryfikacja historii po każdym podziale lub łączeniu wariantów; historia może nie przejść na nowe ID
MagentoBrak natywnego modułu, wymaga rozszerzenia lub własnego koduWłasny ślad audytowy: observer na zapisie produktu plus tabela historii cen
Niezależnie od platformy warto dołożyć zewnętrzny monitoring cen i alert "cena wynikowa poniżej bazy" dla stu najważniejszych produktów. Ręcznie taki monitoring to kilka godzin tygodniowo, z narzędziem kilkanaście minut dziennie.
05

Monitoring Omnibus u konkurencji

Konkurent uruchamia kampanię na pięciu produktach z pokrywającego się katalogu, na przykład pralkach w przedziale 1899-2199 zł: "Black Week, minus 40% od 2999 zł, dziś 1799 zł". Twoja oferta jest zgodna z Omnibus: minus 25% od bazy 30-dniowej, cena wynikowa 1849 zł. Klient widzi dwie liczby, 1799 i 1849, obok dużego czerwonego "minus 40%". Konwersja na karcie produktu spada w dwa dni.

Faktyczna najniższa cena z 30 dni u konkurenta wynosiła 2199 zł, więc "minus 40%" powinno brzmieć "minus 18%". Naruszenie jest jawne i tymczasowo opłacalne. Allegro pogłębia problem: algorytm sortowania nie sprawdza poprawności bazy, tylko cenę wynikową, koszt wysyłki i ocenę sprzedawcy. Oferta z błędnym Omnibus, ale niską ceną finalną, wskakuje nad ofertę zgodną.

Minimum operacyjne

Zbieraj historię cen stu najważniejszych produktów konkurencji, które pokrywają się z Twoim katalogiem: daty zmian, poziomy cen, daty ogłoszonych promocji z deklarowanym procentem. Nie cały katalog, tylko produkty, o które faktycznie toczy się walka. Dla każdej promocji dwa pytania: czy cena bazowa w komunikacie równa się najniższej z 30 dni przed ogłoszeniem i czy procent obniżki liczony od tej bazy zgadza się z deklarowanym. Rozjazd to naruszenie do udokumentowania.

Materiał do urzędu: oś czasu cen konkurenta w CSV, zrzut ekranu wyświetlanej obniżki z datą i godziną, adres kampanii. Skarga przez formularz na uokik.gov.pl. Postępowanie wyjaśniające trwa kilka miesięcy; w tym czasie urząd może wezwać do korekty kampanii.

Publicznie dostępne ceny to dane faktyczne, nie utwór. Orzeczenie TSUE w sprawie C-30/14 (Ryanair przeciwko PR Aviation) i polskie prawo autorskie wykluczają ich ochronę. Mechanizm jest ten sam co przy zbieraniu danych publicznych z CEIDG: publiczna dostępność i brak twórczego wkładu w samym cenniku. Ograniczenia: rozsądne tempo zapytań i regulamin serwisu w zakresie rejestracji konta.

06

Lista 15 pytań: godzina pracy, bez zewnętrznego audytu

Godzina, dostęp do panelu pricingu i do logów platformy. Tyle wystarczy, żeby wyjść z konkretną listą: piętnaście zielonych odpowiedzi albo osiem zielonych i siedem czerwonych z priorytetami na najbliższe dwa tygodnie. Zasada jedna: każde "nie wiem" liczy się jak "nie". Pytania 3, 9, 13 i 15 to najczęstsze luki w polskich sklepach.

Blok A. Baza i algorytm

  • 1. Baza 30 dni jest liczona jako minimum ceny z okna 30 dni przed startem promocji, nie z pola "cena poprzednia", "katalogowa" ani "z ostatniej akcji"?
  • 2. Algorytm obsługuje wielokrotne zmiany ceny w oknie? Cena spadała 199, 189, 175, 189 i ruszyła promocja: baza to 175, nie 189 i nie 199.
  • 3. Podział lub łączenie wariantów (kolor, rozmiar, pakiet) zachowuje historię cen? Większość platform tworzy nowy produkt z pustą historią.
  • 4. Cena po kodzie rabatowym jest porównywana z bazą Omnibus tego produktu w momencie użycia kodu? Kody osobiste i masowe podlegają tej samej logice.
  • 5. Promocja krótsza niż doba jest traktowana jako obniżka z zapisem w logu zdarzeń?

Blok B. Zakres

  • 6. Zestawy mają własne kody z własną historią cen, a nie sumę historii składników?
  • 7. Subskrypcje i abonamenty pokazywane publicznie na stronie produktu mają przypisaną bazę Omnibus?
  • 8. Omnibus działa poprawnie na marketplace'ach (Allegro, Ceneo)? Niezsynchronizowana baza między sklepem a Allegro to osobne naruszenie.
  • 9. W ostatnich 24 miesiącach nie było migracji platformy, zmiany ERP ani ponownego importu PIM bez przeniesienia historii cen?
  • 10. Baza przy wyprzedaży sezonowej liczy się od dnia pierwszej ekspozycji komunikatu, nie od startu wysyłek?

Blok C. Ślad audytowy i monitoring

  • 11. Każda zmiana ceny regularnej jest logowana z czasem, produktem, ceną starą i nową, operatorem i źródłem, bez nadpisywania wstecz?
  • 12. Każda promocja zapisuje obliczoną bazę Omnibus jako osobne pole, nie tylko cenę wynikową?
  • 13. Codzienny zrzut pełnego cennika jest archiwizowany (90 dni gorące plus 12 miesięcy archiwum) w formacie CSV gotowym do wysłania?
  • 14. Działa automatyczny alert, gdy cena promocyjna lub cena po kodzie schodzi poniżej bazy?
  • 15. Zespół pricingu sprawdził ręcznie dziesięć najważniejszych produktów w ostatnich 30 dniach roboczych?

Punktacja

13-15 odpowiedzi twierdzących: solidna zgodność. 9-12: luki operacyjne, priorytet na pytania z "nie", najczęściej 3, 9 i 13. Poniżej dziewięciu: ekspozycja jest realna, najpierw blok C, potem reszta. Jeśli równolegle w ostatnich dwunastu miesiącach wpłynęło pytanie lub wezwanie urzędu w sprawie Omnibus, lista nie wystarczy; pierwszy telefon idzie do kancelarii, nie do dostawcy narzędzia.

Format roboczy: arkusz z kolumnami TAK, NIE, W TRAKCIE, plus właściciel i termin. Dokument operacyjny na spotkanie z IT i prawnikiem, nie prezentacja.

Źródła i zastrzeżenia
  • Ustawa o informowaniu o cenach towarów i usług, art. 4 ust. 2 (baza 30-dniowa); ustawa o ochronie konkurencji i konsumentów, art. 106 ust. 1 pkt 4 (kary).
  • UOKiK, wyjaśnienia dotyczące dyrektywy Omnibus (2022, 2023) oraz decyzje publikowane w bazie decyzji Prezesa UOKiK, 2024-2025.
  • Komisja Europejska, wyniki skoordynowanej kontroli CPC Sweep 2023 dotyczącej prezentacji obniżek cen.
  • TSUE, wyrok C-30/14 Ryanair przeciwko PR Aviation (ochrona baz danych a dane faktyczne).
  • Przykłady sklepów pochodzą z audytów DataMiners i są zanonimizowane. Tekst nie zastępuje porady prawnej.