# dfomnibus-woo — Zgodność z Dyrektywą Omnibus dla WooCommerce

> Wtyczka DataFirefly Omnibus Compliance for WooCommerce dostosowuje Twój sklep do europejskiej dyrektywy 2019/2161, zwanej dyrektywą Omnibus, obowiązującej od 28 maja 2022 roku. Zbiera historię cen od momentu aktywacji, oblicza prawną…

- Strona: <https://www.datafirefly.com/pl/documentation/dfomnibus-woo/>
- Język: pl
- Zaktualizowano: 2026-08-10
- Inne języki: [fr](https://www.datafirefly.com/documentation/dfomnibus-woo/index.md), [en](https://www.datafirefly.com/en/documentation/dfomnibus-woo/index.md), [es](https://www.datafirefly.com/es/documentation/dfomnibus-woo/index.md), [de](https://www.datafirefly.com/de/documentation/dfomnibus-woo/index.md), [it](https://www.datafirefly.com/it/documentation/dfomnibus-woo/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfomnibus-woo/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfomnibus-woo/index.md)
- Indeks: <https://www.datafirefly.com/pl/documentation/llms.txt>

Wtyczka **DataFirefly Omnibus Compliance for WooCommerce** dostosowuje Twój sklep do europejskiej dyrektywy 2019/2161, zwanej dyrektywą Omnibus, obowiązującej od 28 maja 2022 roku. Zbiera historię cen od momentu aktywacji, oblicza prawną cenę odniesienia według reguł, których prawie nikt nie wdraża, i przygotowuje dokumentację do przekazania podczas kontroli.

**Zgodność:** WordPress minimum 6.2, WooCommerce minimum 8.0, PHP minimum 8.0 (zgodność z 8.1, 8.2 i 8.3). Zadeklarowana zgodność z HPOS. Produkty proste i z wariantami, wiele walut, WPML i Polylang. Bez zewnętrznych zależności i bez CDN.

## Instalacja

1. Pobierz archiwum `dfomnibus-woo-1.0.0.zip` ze swojego panelu klienta DataFirefly.
2. W panelu WordPress przejdź do **Wtyczki, Dodaj wtyczkę, Wyślij wtyczkę na serwer** i aktywuj ją. WooCommerce musi być aktywne.
3. Zbieranie danych startuje natychmiast: tworzone są trzy tabele, a pierwsza migawka jest planowana w ciągu kilku minut od aktywacji.
4. Otwórz **WooCommerce, Omnibus Compliance**, aby skonfigurować wyświetlanie i aktywować licencję.

**Trzy utworzone tabele:** `wp_dfwomni_price_history` na zapisy cen, `wp_dfwomni_display_log` na rejestr wyświetlonych informacji oraz `wp_dfwomni_license_cache` na pamięć podręczną licencji. Przedrostek `wp_` jest automatycznie zastępowany Twoim.

## Silnik obliczeniowy

Obliczanie ceny odniesienia znajduje się w silniku niezależnym od WordPressa, pokrytym testami jednostkowymi. Reguły są sprawdzane w następującej kolejności.

### 1. Serie kolejnych obniżek

Gdy promocje następują po sobie, a produkt nie wraca do ceny nieobniżonej, prawna cena odniesienia pozostaje ceną stosowaną przed _pierwszą_ obniżką serii. Nie jest przeliczana przy każdej nowej promocji. Wtyczka wykrywa takie łańcuchy, zamraża cenę odniesienia i wyjaśnia to w panelu, na przykład „cena odniesienia zamrożona od 12 października, trwają kolejne promocje”.

Seria ma ograniczenie czasowe. Po domyślnych 60 dniach, regulowanych w zakresie od 30 do 120 dni, przyjmuje się, że cena obniżona stała się normalną ceną produktu: ponownie obowiązuje ogólna reguła 30 dni, a raport zgodności oznacza promocję jako stałą.

### 2. Przypadek zwykły, okno zakotwiczone

Cena odniesienia to najniższa cena stosowana w przedziale od 30 dni przed początkiem obniżki do początku obniżki. Okno jest **zakotwiczone** na starcie promocji: nie przesuwa się z dnia na dzień w trakcie jej trwania, w przeciwieństwie do ruchomego minimum, które ostatecznie wchłonęłoby samą cenę promocyjną.

### 3. Produkt niedawno wprowadzony do sprzedaży

Dla produktu sprzedawanego krócej niż 30 dni ceną odniesienia jest najniższa cena od momentu wprowadzenia do sprzedaży, a informacja w sklepie podaje rzeczywisty czas oferowania produktu, zgodnie z wymogiem przepisu.

### 4. Niewystarczające dane

Jeśli zebrana historia nie pokrywa wymaganego okna dla produktu, który nie jest nowy, cena odniesienia nie jest zwracana i nic nie jest wyświetlane. Cena odniesienia, której nigdy faktycznie nie zarejestrowano, nie może być wyświetlana ani odtwarzana po fakcie.

**Praktyczny wniosek:** zainstaluj wtyczkę **przed** sezonem promocyjnym, a nie tego samego dnia. Historia nie odtwarza się wstecz. To Twój dowód i może powstać wyłącznie z wyprzedzeniem.

## Automatyczne zbieranie danych

Dwa mechanizmy działają równolegle.

- **Dzienna migawka**: zadanie `dfwomni_daily_snapshot` przechodzi przez katalog i zapisuje stan cen. Jeśli ostatnie uruchomienie było ponad 24 godziny temu, automatycznie planowane jest jednorazowe nadrobienie `dfwomni_catchup_snapshot`.
- **Zapis zdarzeń**: każda rzeczywista zmiana ceny jest rejestrowana, niezależnie od tego, czy pochodzi z edytora produktu, szybkiej lub masowej edycji, importu CSV, aktualizacji REST lub CRUD, narzędzia do repricingu, czy ze startu i zakończenia zaplanowanych promocji.

Jeden wiersz historii odpowiada jednej realnej zmianie ceny, duplikaty są odrzucane. Ceny zapisywane są w postaci surowej wraz z kontekstem podatkowym i walutą, nigdy jako cena już sformatowana.

### Niezawodny cron w sklepie o małym ruchu

WP-Cron uruchamia się tylko przy wejściu odwiedzającego. W spokojnym sklepie skonfiguruj prawdziwy cron systemowy:

```
*/15 * * * * wget -q -O /dev/null "https://twoj-sklep.pl/wp-cron.php?doing_wp_cron"
```

Pulpit wyświetla ostrzeżenie, gdy ostatnia migawka ma ponad 48 godzin.

## Ustawienia

Zakładka **Ustawienia** na stronie WooCommerce, Omnibus Compliance.

- **Pokazuj cenę odniesienia na**: tylko produktach przecenionych, co stanowi minimum prawne, albo wszystkich produktach z zebraną historią, tryb przejrzystości zarezerwowany dla licencji Pro.
- **Pozycja wiersza**: tuż pod ceną albo po bloku ceny w podsumowaniu produktu. Wybierz drugą opcję, jeśli Twój motyw nadpisuje znaczniki ceny.
- **Wykres 30 dni**: pokazuje krzywą cen na karcie produktu, w natywnym canvasie o rozmiarze około 3 KB i bez zewnętrznych skryptów. Funkcja Pro.
- **Własne teksty**: dwa szablony, wiersz standardowy ze znacznikiem `{price}` oraz wiersz dla produktu nowego ze znacznikami `{price}` i `{days}`. Pozostaw puste, aby użyć dołączonych tłumaczeń na francuski, angielski, niemiecki, hiszpański i włoski. Funkcja Pro.
- **Wykluczenia**: identyfikatory produktów i kategorii, które nigdy nie pokazują informacji, przydatne przy cenach negocjowanych lub B2B.
- **Progi audytu**: liczba dni, po której promocja jest oznaczana jako stała, domyślnie 60, oraz maksymalny wiek serii kolejnych obniżek, domyślnie 60.
- **Przy deinstalacji**: pole wyboru pozwalające usunąć także zebraną historię cen. Domyślnie niezaznaczone, i jest to celowe.

## Pulpit

Zakładka **Pulpit** łączy trzy bloki.

### Kondycja zbierania danych

Liczba zebranych zapisów, liczba monitorowanych produktów oraz data ostatniej dziennej migawki, wraz z opisanym wyżej ostrzeżeniem, gdy cron przestaje działać.

### Raport zgodności

Audyt liczony na bieżąco na najnowszych danych, wskazujący produkty, których obecne wyświetlanie mogłoby zostać zakwestionowane podczas kontroli. Cztery statusy:

- **Brak ceny odniesienia**: produkt jest w promocji bez zarejestrowanej ceny odniesienia, obniżka jest pokazywana bez możliwej do obrony ceny wcześniejszej.
- **Promocja stała**: promocja trwa zbyt długo, cena obniżona stała się ceną normalną, a ogłaszana obniżka jest podważalna.
- **Produkt nowy**: informacyjnie, wyświetlanie poprawnie podaje rzeczywisty czas oferowania produktu.
- **Zamrożona cena odniesienia (seria)**: trwają kolejne promocje, cena odniesienia nie zostanie przeliczona, dopóki produkt nie wróci do ceny nieobniżonej.

### Eksporty ze znacznikiem czasu

Dwa eksporty CSV generowane strumieniowo, z nazwą zawierającą domenę i znacznik czasu UTC:

- **Historia cen**: wszystkie zebrane zapisy.
- **Rejestr wyświetleń**: która cena odniesienia została faktycznie pokazana, kiedy i na której karcie produktu.

Raport zgodności, eksporty i rejestr wyświetleń wchodzą w skład licencji Pro. Samo zbieranie danych nigdy nie jest ograniczane.

## Historia cen

Zakładka **Historia cen** pokazuje zapisy produkt po produkcie, z wariantem, walutą, ceną regularną, ceną promocyjną, ceną efektywną i źródłem zapisu. Gdy cena odniesienia jest zamrożona, podawane są data i powód zamrożenia.

## Planer zamrożeniowy

Pierwsza promocja blokuje cenę odniesienia dla kolejnej: każda cena stosowana w ciągu 30 dni przed kluczową datą obniża rabat, jaki będziesz mógł ogłosić tego dnia. Planer liczy wstecz.

Wybierz datę handlową z dołączonej listy (Black Friday, Cyber Monday, Boże Narodzenie, wyprzedaże zimowe i letnie, walentynki, Dzień Matki i Dzień Ojca) albo wpisz własną. Planer wskaże graniczną datę zakończenia ostatniej promocji, która pozwoli zachować zamierzony rabat, oraz okres, w którym każda stosowana cena zasila okno prawne. Kalendarz do subskrypcji zbiera wszystkie terminy. Funkcja Pro.

## Import istniejącej historii

Jeśli inne rozszerzenie już rejestrowało Twoje ceny, te dane są nie do zastąpienia. Zakładka **Import** analizuje strukturę tabel w bazie danych, nie opierając się na nazwie rozszerzenia, i wskazuje te, które zawierają identyfikator produktu, cenę i datę, z opcjonalnym wykryciem kolumny wariantu. Tabele systemowe WooCommerce i Action Scheduler są pomijane.

Tabela pokazuje każdą kandydatkę, wykryte kolumny i liczbę wierszy. Import jest idempotentny: duplikaty i wiersze nienadające się do użycia są liczone osobno i nigdy nie zanieczyszczają Twojej historii. Funkcja Pro.

## Licencja

Zakładka **Licencja** pokazuje bieżący plan, zamaskowany klucz i datę ostatniej weryfikacji. Wprowadź klucz otrzymany e-mailem po zakupie, w formacie `DFWOM-PRO-XXXX-XXXX-XXXX-XXXX`, i kliknij Aktywuj.

Jednorazowy zakup, 12 miesięcy aktualizacji, zwrot w ciągu 30 dni, kod źródłowy bez szyfrowania, jeden sklep na licencję. Jeśli serwer licencji jest nieosiągalny, wtyczka zachowuje wszystkie funkcje przez 7 dni, a następnie wraca do poziomu Free, nigdy nie psując sklepu. Zbieranie historii nie zatrzymuje się nigdy, niezależnie od planu.

### Co odblokowuje licencja Pro

- Wyświetlanie na wszystkich produktach z zebraną historią, a nie tylko na przecenionych
- Własne teksty informacji
- Wykres cen z 30 dni
- Panel dowodowy, raport zgodności i rejestr wyświetleń
- Eksporty CSV ze znacznikiem czasu
- Planer zamrożeniowy
- Import istniejącej historii

Zawsze aktywne, niezależnie od licencji: pełne zbieranie historii, informacja na produktach przecenionych oraz przeglądanie historii w panelu.

## Rozwiązywanie problemów

### Nie pojawia się żadna informacja

Sprawdź w tej kolejności:

1. Czy produkt jest rzeczywiście w promocji? Domyślnie informacja pojawia się tylko na produktach przecenionych.
2. Czy zebrana historia pokrywa wymagane okno? Przy świeżej instalacji odpowiedź często brzmi nie, i takie jest zamierzone działanie.
3. Czy produkt lub jego kategoria znajdują się na liście wykluczeń?
4. Czy pulpit sygnalizuje zbyt starą migawkę? Jeśli tak, zadbaj o niezawodny cron.

### Informacja pojawia się w nieoczekiwanym miejscu

Przełącz pozycję na **po bloku ceny w podsumowaniu produktu**. Niektóre motywy nadpisują znaczniki ceny i pochłaniają wstawkę umieszczoną bezpośrednio pod nią.

### Ostatnia migawka ma ponad 48 godzin

WP-Cron zależy od ruchu. Skonfiguruj cron systemowy pokazany wyżej lub sprawdź, czy stała `DISABLE_WP_CRON` nie jest włączona bez zastępczego crona systemowego.

### Wykres się nie pojawia

Wykres wchodzi w skład licencji Pro i musi zostać włączony w ustawieniach. Sprawdź także, czy historia produktu zawiera wystarczająco dużo punktów z ostatnich 30 dni.

### Import nie wykrywa żadnej tabeli

Wykrywanie jest strukturalne: tabela kandydująca musi zawierać kolumnę z identyfikatorem produktu, dziesiętną kolumnę ceny i kolumnę daty. Natywne tabele WooCommerce i Action Scheduler są celowo pomijane.

## Najczęstsze pytania

### Czy cena odniesienia jest przeliczana przy każdej nowej promocji?

Nie, i jest to najczęściej źle rozumiany punkt tej reguły. Dopóki produkt nie wróci do ceny nieobniżonej, ceną odniesienia pozostaje cena stosowana przed pierwszą obniżką serii.

### Czy produkty z wariantami są obsługiwane?

Tak. Cena odniesienia jest liczona dla wariantu, a nie na poziomie produktu nadrzędnego, a informacja aktualizuje się przy zmianie wariantu przez odwiedzającego.

### Co dzieje się przy deinstalacji?

Usuwane są ustawienia, pamięć podręczna licencji i jej tabela. Historia cen oraz rejestr wyświetleń są domyślnie zachowywane, ponieważ tych danych nie da się odtworzyć. Zaznacz wyraźnie opcję czyszczenia w ustawieniach, jeśli chcesz usunąć wszystko.

### Czy wtyczka spowalnia sklep?

Nie. Zbieranie danych zapisuje jeden niewielki wiersz na każdą rzeczywistą zmianę ceny, wyświetlanie odczytuje krótki indeksowany zakres z pamięcią podręczną, a wykres to około 3 KB natywnego kodu bez żadnego zapytania zewnętrznego.

### Czy obsługiwane jest wiele walut?

Tak. Każdy zapis zawiera swoją walutę, więc historia nigdy nie jest przeliczana po fakcie.

## Lista zmian

### 1.0.0 - 10 sierpnia 2026

- Wersja początkowa
- Podwójne zbieranie danych: dzienna migawka z nadrabianiem oraz zapis zdarzeń przy zmianach cen
- Cena odniesienia w oknie 30 dni zakotwiczonym na początku obniżki
- Reguła kolejnych obniżek z zamrożeniem ceny odniesienia na cenie sprzed serii
- Dedykowana informacja dla produktów niedawno wprowadzonych, z rzeczywistym czasem oferowania
- Planer zamrożeniowy i kalendarz terminów
- Panel dowodowy, raport zgodności, eksporty ze znacznikiem czasu i rejestr wyświetleń
- Strukturalny import istniejącej historii cen
- Cena odniesienia dla wariantu, zapisy w wielu walutach
- Tłumaczenia FR, EN, DE, ES, IT, zgodność z WPML i Polylang, zgodność z HPOS
