Źródło: https://wpinplate.com/dokumentacja/promocje-i-happy-hours/

# Promocje, Omnibus i happy hours

WP InPlate pokazuje obniżki w menu tak, jak wymaga tego prawo: przy każdej ogłoszonej obniżce klient widzi najniższą cenę z 30 dni przed nią. Do tego happy hours – rabat, który sam nalicza się w wybranych dniach i godzinach, bez kodów rabatowych.

Ceny produktów w WooCommerce się przy tym nie zmieniają. Historię cen i reguły happy hours WP InPlate zapisuje we własnych tabelach.

Darmowa dostawa od kwoty, rabat na zamówienie, 2+1 i gratisy opisuje rozdział [Promocje](/dokumentacja/promocje/).

## Cena promocyjna w menu

Cenę promocyjną ustawiasz jak dotąd: w panelu managera (**Produkty → cena**) albo w edycji produktu WooCommerce. W **Ustawienia → Sprzedaż → Produkty → Cena promocyjna** wybierasz, jak ją pokazać klientowi:

| Opcja | Co widzi klient |
|---|---|
| **Pokazuj cenę promocyjną zamiast regularnej** (domyślnie) | Tylko aktualną cenę, jak dotąd |
| **Przekreśl cenę regularną i pokazuj promocyjną** | Przekreśloną cenę regularną obok promocyjnej |

Ustawienie działa na liście produktów w menu, w oknie produktu i w produktach powiązanych (cross-sell).

## Najniższa cena z 30 dni (Omnibus)

Ustawa o informowaniu o cenach towarów i usług (wdrożenie dyrektywy Omnibus) wymaga, żeby przy każdej informacji o obniżce podać najniższą cenę z 30 dni przed jej wprowadzeniem. WP InPlate robi to sam:

- **W oknie produktu** – na samym dole, pod przyciskiem dodawania: „Najniższa cena z 30 dni przed obniżką: 15,00 zł”. Linia pojawia się przy każdym produkcie w promocji, w obu trybach wyświetlania ceny.
- **Na karcie w menu i w produktach powiązanych** – krótsza linia pod ceną, zawsze gdy karta pokazuje obniżkę: przekreśloną cenę albo [happy hours](#happy-hours).

Przełącznik: **Ustawienia → System → Dyrektywa Omnibus → Pokazuj najniższą cenę z ostatnich 30 dni** (domyślnie włączony).

### Skąd WP InPlate zna ceny z przeszłości

WooCommerce przechowuje tylko bieżącą cenę, więc WP InPlate prowadzi własną historię cen. Zapisuje każdą zmianę ceny – z panelu managera, z WooCommerce, z importu i z zaplanowanych promocji WooCommerce. Raz dziennie sprawdza, czy żadna zmiana nie ominęła zapisu.

Po aktualizacji do wersji 1.27.0 historia każdego produktu zaczyna się od jego ostatniego zapisu w WooCommerce: od tego momentu cena na pewno się nie zmieniła. Dzięki temu dla większości produktów najniższa cena jest znana od pierwszego dnia.

### Kiedy obniżka nie jest pokazywana

Jeśli WP InPlate nie zna najniższej ceny z 30 dni, nie ogłasza obniżki – klient widzi samą aktualną cenę, bez przekreślenia i bez znacznika happy hours. Rabat w koszyku działa normalnie. Dotyczy to:

- produktów, które były w promocji WooCommerce już przed aktualizacją (historia zaczyna się razem z obniżką),
- produktów dodanych albo zmienionych w trakcie trwającego okna happy hours – znacznik pojawi się od następnego okna.

Po wyłączeniu przełącznika Omnibus linia z najniższą ceną znika, a przekreślenie działa zgodnie z ustawieniem **Cena promocyjna**.

**Uwaga:** za zgodność z prawem odpowiada sprzedawca. WP InPlate pokazuje informację w menu, oknie produktu i produktach powiązanych – nie na ekranach TV. Jeśli na telewizorze w lokalu oznaczasz danie jako promocję (np. znaczkiem „Promocja”), zadbaj o informację o najniższej cenie samodzielnie. Przy wątpliwościach, jak przepisy dotyczą Twojej oferty, skonsultuj się z prawnikiem.

## Happy hours

Rabat na wybrane kategorie albo produkty, który działa sam w ustawionych dniach i godzinach – np. −20% na burgery od poniedziałku do piątku 15:00–17:00, tylko przy stolikach QR.

Funkcję włączasz w **Ustawienia → Sprzedaż → Happy hours → Włącz funkcję Happy hours** (domyślnie wyłączona). Restauracja, która nie korzysta z happy hours, nie widzi jej nigdzie. Po włączeniu i zapisaniu ustawień reguły ustawiasz w dwóch miejscach, z tymi samymi możliwościami:

- w panelu managera w KDS: zakładka **Happy hours**,
- w panelu WordPress: **InPlate → Happy hours**.

Przełącznik **Happy hours włączone** w panelu włącza i wyłącza wszystkie reguły naraz, na co dzień. Wyłączenie funkcji w ustawieniach chowa zakładkę i stronę oraz zatrzymuje rabaty – reguły zostają zapisane i wracają po ponownym włączeniu.

### Reguła happy hours

| Pole | Opis |
|---|---|
| **Nazwa dla klientów** | Widoczna przy produktach i w podsumowaniu zamówienia, np. „Happy Hours” |
| **Dni tygodnia** | Dni, w które reguła działa |
| **Godziny** | Od–do. Okno przez północ (np. 22:00–02:00) należy do dnia, w którym się zaczyna |
| **Rabat** | Procent albo kwota od ceny produktu |
| **Kategorie**, **Produkty** | Co obejmuje reguła. Kategoria obejmuje też swoje podkategorie |
| **Kanały sprzedaży** | Stolik (QR), Na miejscu, Odbiór, Dostawa. Kanał wyłączony w harmonogramie albo bez aktywnych stolików QR możesz zaznaczyć z wyprzedzeniem – rabat zadziała, gdy kanał zacznie przyjmować zamówienia |
| **Obowiązuje (opcjonalnie)** | Daty od–do. Puste pola = bez ograniczenia |
| **Zasady → Obejmuj promocją dodatki** | Rabat procentowy obejmuje też dopłaty za dodatki do dania. Domyślnie wyłączone: dodatki zostają w pełnej cenie |
| **Zasady → Włącz na produkty w cenie promocyjnej** | Happy hours działa też na produkty w promocji WooCommerce, licząc rabat od ceny promocyjnej. Domyślnie wyłączone |
| **Zasady → Łącz z kodami rabatowymi** | Rabat łączy się z kodami rabatowymi klienta, także z kodami „tylko do użytku indywidualnego”. Domyślnie włączone |
| **Aktywna** | Wyłącza regułę bez jej usuwania |

Liczy się godzina złożenia zamówienia, nie godzina odbioru czy dostawy. Zamówienie złożone o 11:00 na 16:00 przy happy hours 10:00–12:00 dostaje rabat.

### Zasady naliczania

- Rabat nalicza się sam w koszyku, jako pozycja z nazwą reguły. Klient nie może go usunąć ani wpisać jako kodu.
- Dodatki do dania i produkty w promocji WooCommerce obejmuje tylko wtedy, gdy włączysz to w **Zasadach** reguły. Przy produkcie w promocji klient widzi przekreśloną cenę regularną, a rabat liczy się od ceny promocyjnej.
- Kody rabatowe: przy włączonym **Łącz z kodami rabatowymi** rabaty się sumują. Przy wyłączonym wygrywa to, co jest w koszyku pierwsze: jeśli klient ma już kod, reguła się na niego nie nalicza; jeśli reguła działa, kodu nie da się dodać (klient widzi komunikat). Okno produktu informuje klienta, że rabat nie łączy się z kodami.
- Gdy produkt obejmują dwie reguły, obowiązuje ta z niższą ceną – rabaty się nie sumują.
- Minimum zamówienia i minimum strefy dostawy liczą się po rabacie.

### Co widzi klient

- **Pasek nad menu**: „Happy Hours do 17:00 – wybrane produkty taniej”, w ostatnich 15 minutach z odliczaniem.
- **Na karcie i w oknie produktu**: znacznik „Happy Hours −20% | do 17:00”, pod nim metody, w których rabat obowiązuje (np. „Obowiązuje: Na miejscu, Dostawa”), cena po rabacie i linia z najniższą ceną z 30 dni.
- **W podsumowaniu zamówienia**: osobny wiersz z nazwą reguły i kwotą rabatu.

Ceny w menu zmieniają się same o godzinie rozpoczęcia i zakończenia okna, bez odświeżania strony.

### Kanały sprzedaży w menu

- Reguła tylko dla stolików QR jest widoczna wyłącznie w menu do zamawiania przy stoliku.
- W zwykłym menu online klient nie wybrał jeszcze sposobu realizacji. Dlatego menu pokazuje tylko reguły, które obejmują wszystkie włączone metody online. Reguła np. tylko na odbiór pojawia się w podsumowaniu zamówienia, gdy klient wybierze odbiór.

### Koniec happy hours w trakcie zamawiania

Liczy się moment złożenia zamówienia. Jeśli okno skończy się, zanim klient kliknie **Zamów i zapłać**, zamówienie nie zostanie złożone po cichu w innej cenie: klient zobaczy komunikat „Happy hours właśnie się zakończyły. Sprawdź nową sumę i złóż zamówienie ponownie.” i nową sumę. Po złożeniu zamówienia cena się już nie zmienia, także przy późniejszej płatności online.

### Happy hours w zamówieniu

- Zamówienie WooCommerce ma zwykłą pozycję rabatu – widać ją w panelu zamówienia, w e-mailach i na fakturach.
- KDS i etykieta pokazują nazwę reguły. Zamówienie zachowuje kopię reguły z chwili złożenia, więc późniejsza zmiana albo usunięcie reguły go nie zmienia.
- W edycji zamówienia w panelu WordPress rabat ma kod w rodzaju `happy-hours-12`.
- Raporty kuponów WooCommerce Analytics mogą nie obejmować rabatów happy hours – są widoczne w zamówieniach i ich sumach.

### Happy hours a Omnibus

Ceny z wcześniejszych okien happy hours liczą się do najniższej ceny z 30 dni – na każdym kanale, także gdy reguła dotyczyła np. tylko stolików QR. Przy produkcie w promocji WooCommerce liczy się też cena promocyjna z tego okresu. Przy codziennych happy hours linia pokazuje więc zwykle wczorajszą cenę z happy hours, np. „Najniższa cena z 30 dni przed obniżką: 16,00 zł” przy obecnej cenie 16,00 zł. To mniej efektowne, ale zgodne z prawem. Liczą się tylko okna z okresów, gdy happy hours działały – przy włączonej funkcji i włączonym przełączniku w panelu.
