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.
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ć.
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.
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:
- 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.
- Start promocji. Rekord: czas, produkt, procent obniżki, baza Omnibus, cena wynikowa. Baza musi być zamrożona w momencie startu, nie liczona po fakcie.
- Operacja na wariancie (podział, łączenie, zmiana ID) z flagą "reset historii". Jedyne zdarzenie, które wymaga ręcznej weryfikacji następnego dnia.
- 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ł.
- 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.
| Platforma | Logowanie natywne | Do dołożenia |
|---|---|---|
| Shoper | Moduł Omnibus od wersji 6.x, baza wyświetlana na karcie produktu | Aktywacja modułu (domyślnie wyłączony), eksport CSV z czasem, alert, gdy cena promocyjna spada poniżej bazy |
| IdoSell | Własna logika Omnibus, baza liczona automatycznie | Ręczna weryfikacja historii po każdym podziale lub łączeniu wariantów; historia może nie przejść na nowe ID |
| Magento | Brak natywnego modułu, wymaga rozszerzenia lub własnego kodu | Własny ślad audytowy: observer na zapisie produktu plus tabela historii cen |
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.
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.
