> For the complete documentation index, see [llms.txt](https://napoveda.rocketoo.cz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://napoveda.rocketoo.cz/rocketoo/rozsireni/vernostni-program.md).

# Věrnostní program

Modul umožňuje registrovaným zákazníkům získávat body za nákupy a následně je využít:

* jako slevu v košíku,
* k úhradě vybraných produktů,
* nebo kombinací obou možností.

Součástí modulu je historie všech pohybů, ruční úprava zůstatku, volitelná expirace bodů a upozornění zákazníků e-mailem.

{% hint style="warning" %}
**Než program zveřejníte:** Nastavte kurz, stav objednávky pro připsání bodů a celý průběh vyzkoušejte na testovacím zákaznickém účtu. Body se nepřipisují anonymním zákazníkům.
{% endhint %}

## Rychlé zprovoznění

Nastavení najdete v administraci v části **Nastavení → Věrnostní program**.

{% stepper %}
{% step %}

## Zapněte program

Zapněte **Povolit věrnostní program**.
{% endstep %}

{% step %}

## Nastavte kurz pro získávání bodů

Například **100 Kč = 1 bod**.
{% endstep %}

{% step %}

## Vyberte stav objednávky pro připsání bodů

Například Zaplaceno.
{% endstep %}

{% step %}

## Zvolte možnosti uplatnění bodů

Rozhodněte, zda povolíte body jako slevu, produkty za body, nebo obě možnosti.
{% endstep %}

{% step %}

## Nastavte kurz pro uplatnění bodů

Například **1 bod = 0,10 Kč**.
{% endstep %}

{% step %}

## Uložte nastavení

{% endstep %}

{% step %}

## Proveďte testovací objednávku

Proveďte testovací objednávku jako přihlášený zákazník.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Dokud není program povolený, body se nepřipisují ani neuplatňují a jeho prvky se na e-shopu nezobrazují. Vypnutím programu se již existující historie ani zůstatky nesmažou.
{% endhint %}

## Jak se body získávají

### Kurz sbírání

Kurz tvoří dvě hodnoty:

* **Útrata v hlavní měně** – částka, ke které se kurz vztahuje;
* **Body za útratu** – počet bodů získaný za tuto částku.

Například při kurzu **100 Kč = 1 bod** získá zákazník za produkt v hodnotě 1 500 Kč 15 bodů.

Výpočet vychází z ceny produktů včetně DPH. Doprava, platební poplatky a jiné položky objednávky se nezapočítávají. Objednávky v jiné měně se před výpočtem převedou do hlavní měny e-shopu.

### Zaokrouhlení

Výsledek se zaokrouhluje u každé položky objednávky samostatně:

* **Dolů** – desetinná část se zahodí;
* **Nahoru** – výsledek se zvýší na nejbližší celé číslo;
* **Matematicky** – běžné matematické zaokrouhlení.

Příklad při kurzu **100 Kč = 1 bod** a režimu **Dolů**: dva různé produkty po 150 Kč přinesou 1 + 1 bod, tedy celkem 2 body.

### Stav objednávky a zpoždění

Body se vytvoří při prvním přechodu objednávky do vybraného stavu. Bez zvoleného stavu objednávky se automaticky nepřipíší.

Pole **Zpoždění připsání (dny)** určuje, kdy budou body dostupné:

* `0` – zákazník je může využít okamžitě;
* například `14` – body se 14 dní zobrazují jako čekající a až potom zvýší dostupný zůstatek.

Každá objednávka se započítá pouze jednou, i když se později do stejného stavu vrátí.

### Minimální hodnota objednávky

Volitelné pole **Minimální hodnota objednávky** se posuzuje podle celkové ceny produktů včetně DPH, přepočtené do hlavní měny. Je-li hodnota produktů nižší, nepřipíše se nic. Prázdné pole znamená bez minimálního limitu.

## Body jako sleva v košíku

Funkci zapnete přepínačem **Povolit body jako slevu v košíku**.

### Kurz uplatnění

Pole **Počet bodů v kurzu** a **Hodnota v měně** určují peněžní hodnotu bodů. Například:

* 1 bod = 0,10 Kč;
* 100 bodů = sleva 10 Kč.

Kurz se používá v hlavní měně e-shopu. V košíku s jinou měnou se sleva automaticky přepočítá.

### Omezení slevy

* **Minimum bodů pro uplatnění** – nejmenší množství, které lze použít najednou.
* **Max. podíl objednávky (%)** – nejvyšší podíl ceny produktů, který smějí body pokrýt. Při hodnotě 50 % musí zákazník alespoň polovinu ceny produktů uhradit jinak.
* **Zaokrouhlení slevy** – způsob zaokrouhlení výsledné peněžní částky na haléře.
* **Povolit kombinaci se slevovými kupóny** – určuje, zda lze současně použít body a kupón.

Zákazník musí být přihlášený a smí použít pouze dostupné body. Body rezervované pro produkty placené body už nelze zároveň využít jako slevu.

## Produkty placené body

Tuto možnost je nutné povolit na dvou místech:

{% stepper %}
{% step %}

## Zapněte produkty za body v nastavení programu

V nastavení programu zapněte **Povolit produkty za body**.
{% endstep %}

{% step %}

## Nastavte produkt

V detailu konkrétního produktu na záložce **Věrnostní program** zapněte **Umožnit koupit produkt za body** a vyplňte **Cenu v bodech**.
{% endstep %}

{% step %}

## Volitelně povolte nákup pouze za body

Zapněte **Jen za body** — produkt pak nelze koupit za peníze.
{% endstep %}
{% endstepper %}

Cena v bodech platí pro jeden kus. Produkt za 500 bodů v množství 3 kusů tedy spotřebuje 1 500 bodů.

V košíku může zákazník zvolit platbu body pouze pro vybrané položky. Ostatní položky zaplatí běžným způsobem. Pokud se změní množství nebo dostupný zůstatek nestačí, košík množství upraví, případně vrátí položku k běžné platbě.

### Jen za body

Pokud u produktu zapnete **Jen za body**:

* na detailu produktu se skryje běžné tlačítko „Do košíku“ i cena v Kč;
* zůstane pouze nákup za body;
* ve výpisu produktů (Uran / komponenta Products) se skryje „Do košíku“ a cena;
* v košíku nelze přepnout zpět na platbu penězi;
* při nedostatku bodů se položka z košíku odebere (nepřevede se na peníze);
* produkt se neexportuje do product feedů (Heureka, Zboží, Google Merchant a další).

Volba funguje jen spolu se zapnutým nákupem za body a vyplněnou cenou v bodech. Globálně musí být zapnuté **Povolit produkty za body**.

{% hint style="info" %}
Zákazník musí být přihlášený. Součet bodů použitých na produkty a jako sleva nesmí překročit jeho dostupný zůstatek.
{% endhint %}

## Expirace bodů a upozornění

V poli **Platnost bodů (měsíce)** nastavíte, jak dlouho jsou nově připsané body platné:

* prázdné pole nebo `0` – body neexpirují;
* například `12` – body expirují po 12 měsících.

Při zpožděném připsání se platnost počítá až od data, kdy se body stanou dostupnými. Při expiraci se odečte pouze jejich dosud neutracená část. Při čerpání se používají nejdříve nejstarší dostupné body.

Chcete-li zákazníky upozornit, zapněte **Odesílat e-maily o expiraci bodů** a vyplňte **Počet dní před expirací**. Hodnota musí být alespoň 1 den. Odesílání i samotná expirace probíhají automaticky naplánovanou úlohou systému.

## Nastavení produktů a kategorií

### Produkt

Na záložce **Věrnostní program** lze nastavit:

* **Pevný počet bodů za kus** – nahradí globální kurz; zadaná hodnota se násobí množstvím;
* **Vyloučit ze sbírání bodů** – produkt nepřinese žádné body;
* **Umožnit koupit produkt za body** a **Cena v bodech** – zpřístupní alternativní platbu body;
* **Jen za body** – produkt lze koupit pouze za body (ne za peníze).

### Kategorie

Na záložce **Věrnostní program** lze kategorii **Vyloučit ze sbírání bodů**. Produkt se nezapočítá, pokud je vyloučena jeho hlavní nebo kterákoli přiřazená kategorie.

Vyloučení má přednost před pevným počtem bodů nastaveným u produktu.

## Historie a zůstatek zákazníka

Souhrnný přehled najdete v administraci v menu **Marketing → Věrnostní program**. Obsahuje například:

* zákazníka a jeho e-mail,
* typ pohybu,
* počet bodů a nevyčerpaný zbytek,
* související objednávku,
* datum dostupnosti a expirace,
* poznámku a datum vytvoření.

Přehled lze vyhledávat a filtrovat podle typu pohybu nebo data.

U konkrétního zákazníka otevřete záložku **Historie bodů**. V pravém sloupci uvidíte:

* **Zůstatek bodů** – body, které lze právě použít;
* **Čekající body** – body se zpožděným datem dostupnosti;
* historii všech připsání, čerpání, korekcí, expirací a storen.

## Ruční úprava bodů

Ne všechny body musí vzniknout automaticky nákupem. Zůstatek můžete upravit ručně (kladně i záporně) a ke každé změně přidat vysvětlující poznámku — například narozeninový bonus, odměnu k výročí registrace, kompenzaci za komplikaci s objednávkou, poděkování za dlouhodobou spolupráci, výhru v soutěži, podporu kampaně nebo individuální benefit.

### Z historie bodů

{% stepper %}
{% step %}

## Otevřete historii bodů

Otevřete **Historie bodů** (`/backend/rocketoo/rewards/ledgers`).
{% endstep %}

{% step %}

## Zvolte úpravu bodů

Klikněte na **Upravit body zákazníkovi**.
{% endstep %}

{% step %}

## Vyplňte údaje

Vyberte zákazníka, zadejte počet bodů a povinnou poznámku.
{% endstep %}

{% step %}

## Volitelně nastavte vlastní platnost

Zaškrtněte **Nastavit vlastní platnost** a zvolte datum. Jinak platí globální expirace z nastavení.
{% endstep %}

{% step %}

## Potvrďte úpravu

Potvrďte **Provést úpravu bodů**.
{% endstep %}
{% endstepper %}

### Ze zákazníka

{% stepper %}
{% step %}

## Otevřete zákazníka

Otevřete zákazníka v režimu úprav.
{% endstep %}

{% step %}

## Přejděte na záložku Věrnostní program

{% endstep %}

{% step %}

## Zadejte úpravu bodů

Do pole **Úprava bodů** zadejte kladné číslo pro připsání nebo záporné pro odečet.
{% endstep %}

{% step %}

## Vyplňte poznámku

Vyplňte povinnou **Poznámku k úpravě**.
{% endstep %}

{% step %}

## Proveďte úpravu

Klikněte na **Provést úpravu bodů**.
{% endstep %}
{% endstepper %}

Kladná úprava je dostupná ihned. Bez vlastní platnosti se řídí globální expirací z nastavení; se zaškrtnutou vlastní platností platí do zvoleného data. Zápornou úpravou nelze odečíst více, než kolik má zákazník právě dostupných bodů. Každá úprava zůstává v historii; chybu proto opravte novou opačnou korekcí s vysvětlením.

Ruční úpravy může provádět pouze uživatel s oprávněním `rocketoo.rewards.adjust` (nebo `rocketoo.rewards`).

## Co vidí zákazník

Je-li program zapnutý, může e-shop zobrazovat:

* na detailu produktu počet bodů získaných nákupem nebo cenu produktu v bodech;
* v košíku zadání bodové slevy a volbu platby body u podporovaných produktů;
* v zákaznickém účtu dostupný a čekající zůstatek, historii a blížící se expiraci.

Konkrétní umístění závisí na šabloně e-shopu a zapojených komponentách modulu.

## Storno objednávky

Při přepnutí objednávky do stavu storna modul automaticky:

* vrátí body, které zákazník v objednávce uplatnil;
* odečte dosud neutracenou část bodů, které za tuto objednávku získal.

Pokud již zákazník získané body utratil, modul nevytvoří záporný zůstatek a odečte pouze jejich zbývající část. Všechny změny se zapíší do historie.

## Příklady nastavení

### Jednoduchý program

* Sbírání: **100 Kč = 1 bod**
* Připsání: stav **Zaplaceno**, bez zpoždění
* Uplatnění: **1 bod = 0,10 Kč**
* Minimum pro uplatnění: **50 bodů**
* Maximální pokrytí objednávky: **50 %**
* Platnost: bez expirace

Objednávka produktů za 2 000 Kč přinese 20 bodů. Při nasbírání 100 bodů může zákazník získat slevu 10 Kč.

### Program s lhůtou na vrácení

* Sbírání: **100 Kč = 2 body**
* Připsání: stav **Zaplaceno**
* Zpoždění: **14 dní**
* Platnost: **12 měsíců**
* Upozornění: **30 dní před expirací**

Body se zákazníkovi nejprve ukážou jako čekající. Použít je může po 14 dnech a od tohoto okamžiku běží jejich dvanáctiměsíční platnost.

### Produkt za body

{% stepper %}
{% step %}

## Globálně povolte produkty za body

{% endstep %}

{% step %}

## U vybraného produktu povolte nákup za body

{% endstep %}

{% step %}

## Nastavte cenu

Nastavte cenu například na **500 bodů za kus**.
{% endstep %}

{% step %}

## Ověřte nákup

Ověřte nákup v košíku přihlášeného zákazníka s dostatečným zůstatkem.
{% endstep %}
{% endstepper %}

## Řešení nejčastějších problémů

<details>

<summary>Body se za objednávku nepřipsaly</summary>

Zkontrolujte, zda:

* je program zapnutý;
* je objednávka přiřazená registrovanému zákazníkovi;
* je vybraný stav pro připsání a objednávka do něj přešla;
* objednávka splnila minimální hodnotu produktů;
* produkt ani některá z jeho kategorií nejsou vyloučené;
* objednávka už nebyla jednou započítána.

</details>

<details>

<summary>Body jsou v historii, ale nelze je použít</summary>

Pravděpodobně ještě běží **Zpoždění připsání**. Zkontrolujte sloupec **Dostupné od** a hodnotu čekajících bodů.

</details>

<details>

<summary>Zákazník nemůže použít body jako slevu</summary>

Ověřte přihlášení zákazníka, dostupný zůstatek, minimální počet bodů, maximální podíl objednávky a povolení kombinace s kupónem. Část zůstatku může být rezervovaná pro produkty placené body.

</details>

<details>

<summary>U produktu se nezobrazuje platba body</summary>

Musí být současně zapnutý celý program, globální volba **Povolit produkty za body** i volba u produktu. Produkt musí mít cenu v bodech alespoň 1 a zákazník musí být přihlášený.

</details>

<details>

<summary>Jak nastavit produkt jen za body</summary>

U produktu zapněte nákup za body, vyplňte cenu v bodech a zapněte **Jen za body**. Ve výpisu (Uran) se skryje cena i „Do košíku“; server přidání za peníze vždy odmítne.

</details>

<details>

<summary>E-mail o expiraci neodchází</summary>

Zkontrolujte, že je nastavená platnost bodů, zapnuté e-mailové upozornění, vyplněný počet dní a funkční plánované úlohy e-shopu.

</details>

<details>

<summary>Po vypnutí programu zmizela historie</summary>

Data se nesmazala. Funkce modulu a jeho prvky se pouze přestanou zobrazovat. Po opětovném zapnutí budou zůstatky a historie znovu dostupné.

</details>
