# Propojení na informačním systémem (web integrace)

Aplikace KASA FIK umožňuje dynamicky integrovat webové aplikace zákazníka pomocí integrovaného tlačítka nebo funkční klávesy. Propojení je ideální pro přenos objednávek z eshopu nebo účetních systémů přímo do aplikace.

<p class="callout info">Funkce je dostupná pouze s licencí **PREMIUM**</p>

#### [![custom-button.gif](https://manual.kasafik.cz/uploads/images/gallery/2020-10/6LNszzae2TDCVGNz-custom-button.gif)](https://manual.kasafik.cz/uploads/images/gallery/2020-10/6LNszzae2TDCVGNz-custom-button.gif)

#### Princip funkce - workflow

- Uživateli se zobrazí nové nastavitelné tlačítko na hlavní obrazovce
- Po klepnutí na tlačítko se načte webová aplikace, která je plně pod kontrolou zákazníka
- Ve webové aplikace může být umístěno tlačítko, které po kliknutí přenese uživatele zpět do aplikace a vyplní automaticky účtenku
- KASA FIK provede zaúčtování EET případně platbu kartou
- Integraci lze nastavit i na [funkční klávesu](https://manual.kasafik.cz/books/kasa-fik-etr%C5%BEby/page/funk%C4%8Dn%C3%AD-kl%C3%A1vesy "Funkční klávesy") při prodeji
- Informace o vystavení účtenek lze získat přes [Webhook API](https://manual.kasafik.cz/books/kasa-fik-etr%C5%BEby/page/webhook-integrace-api "Webhook Integrace API")

#### Ukázková stránka

Vytvořili jsme ukázkovou stránku, ve které můžete vidět funkce, které lze využít při práci v aplikaci a návrtatu hodnot.

- [https://www.kasafik.cz/test-custom-button.php](https://www.kasafik.cz/test-custom-button.php?test_qs=value1)

Příklad poskytnutých parametrů v URL:

```
partner_code=XXXXX&utm_source=app-com.eetterminal.pos&utm_medium=app&utm_campaign=fik-integration&app_flavor=fik&app_version=1.181-beta12-debug&app_version_code=181&app_lang=cs&shop_id=848428671200000&cash_register_id=2044577243700000&shift_id=5132358187320000
```

##### Query String poskytnutý při volání URL

- partner\_code - *Partnerský kód, pokud je nastaven*
- utm\_source - *Google UTM měřící kód. Hodnota "app-com.eetterminal.pos"*
- utm\_medium - *Google UTM měřící kód. Hodnota "app"*
- utm\_campaign- *Google UTM měřící kód. Hodnota "fik-integration"*
- app\_flavor - *Typ aplikace- Hodnota "fik"*
- app\_version - *Textový popis verze aplikace. Např. 1.180-beta1*
- app\_version\_code - *Kód verze aplikace např. 180*
- app\_lang - *Jazyk, ve kterém je nastavena aplikace (cs pro češtinu)*
- global\_customer\_id - *Globální ID zákazníka*
- shop\_id - *ID pobočky*
- cash\_register\_id - *ID pokladny*
- shift\_id - *ID současné směny - Hodnota 0 pro uzavřenou směnu*
- employee\_id - *ID aktuálně přihlášeného zaměstnance. Hodnota 0 pokud není nikdo přihlášen*
- user\_email - *Email pod kterým je evidována pokladna*

#### Specifikace integrace

Aplikace načte uživatetem přednastavené URL, které obohatí o Query String s dalšími parametry. Rozšíří Javascript funkce o interface `window.FikApiInterface` který obsahuje metody použitelné k propojení nativní Android aplikace s webovou.

```JavaScript
if (window.FikApiInterface){
    window.FikApiInterface.logError('heyho'); // log error message to android console
    window.FikApiInterface.logInfo('heyho'); // log info message to android console
    window.FikApiInterface.setTitle(document.title); // sets title of the window
    window.FikApiInterface.showToast('heyho'); // shows small toast notification
    // window.FikApiInterface.finish(); // Will close the window without any result
    // window.FikApiInterface.finishWithReceipt(JSON.stringify(obj)); // return back to the app with receipt data
} else {
  // Not loaded within Fik Webapp container
}
```

#### Návrat účtenky do aplikace

Zavolejte metodu `window.FikApiInterface.finishWithReceipt(JSON.stringify(obj))` s následujícim JSON objektem:

```JSON
{
  "invoice_number": 20130001, // optional, will be generated if not provided
  "note": "strestt", // optional
  "items": [
    {
      "plu": "203", // optional
      "note": "Item optional note" // optional
      "name": "Item number 203",
      "price_without_vat": 112.0,
      "quantity": 1.0,
      "vat_rate": 1.21
    }
  ]
}
```

Poznámky k poskytovanému objektu:

- Hodnota musí být `JSON.stringify()`, protože Web integrace neumožňuje přenášet objekty.
- Pokud je vše v pořádku, aplikace uzavře integraci a přenese uživatele do režimu vystavení účtenky
- Pokud nebude vyplněná hodnota `invoice_number` aplikace vygeneruje standarně podle číselné řady (doporučené)
- DPH je v desetinném formátu, tedy 1.21, 1.10, 1.00 - nevyplňujte, pokud se jedná o neplátce

#### Nastavení expirace a vliv na cache (expire)

Webová integrace respektuje správné nastavení cache hlavičky pro ukládání do paměti prohlížeče. Nastavíte-li správné Expire v HTTP hlavičce, bude se respektovat.

Aplikace má také podporu pro ukládání databází a Webstorage.