# Načini naplate

> Kako klijent bira između ugrađenog panela i skočnog prozora, zašto pouzdana ishodišta odlučuju o tome i što očekivati tijekom lokalnog razvoja.

Naplata se otvara u jednom od dva načina.

**Panel** je ugrađeni panel prikazan unutar vaše stranice. Na stolnim računalima uvlači se s desne strane, ograničen na `pane.width`; na mobilnim uređajima uvlači se odozdo. Posjetitelj ostaje na vašoj web-lokaciji, a panel se zatvara kada pritisne Escape ili klikne zatamnjeno područje.

**Skočni prozor** zaseban je prozor preglednika, centriran na zaslonu posjetitelja. Klijent prati zatvaranje prozora kako bi mogao ukloniti pozadinu.

## Ugrađena naplata zahtijeva pouzdano ishodište

Način rada panela prikazuje Entase naplatu u iframeu na vašoj domeni, stoga je dopušten samo za domene koje ste izričito ovlastili. Dodajte svaku domenu koja otvara naplatu u **Pouzdana ishodišta** u Postavke → Integracije – pogledajte [Integracije i prilagodba naplate](/organizers/settings/integrations-and-checkout-customization.md).

Važno je je li uključen prefiks `www.`. Ako niste sigurni koji oblik poslužuje vaša web-lokacija, dodajte oba.

Ako vaša domena nije na popisu, naplata i dalje radi – jednostavno se otvara kao skočni prozor.

## Kako se razrješava `'auto'`

Uz zadanu vrijednost `checkoutMode: 'auto'`, klijent odlučuje ovim redoslijedom:

1. **Nije HTTPS** → skočni prozor. Ugrađena naplata nikad se ne koristi na nesigurnoj stranici.
2. **`localhost` ili `127.0.0.1`** → panel, uz upozorenje zapisano u konzolu. To je pogodnost za razvoj kako biste mogli graditi s ugrađenim rasporedom; ne govori ništa o tome je li vaša produkcijska domena dopuštena.
3. **U suprotnom** → klijent pita Entase smije li ovo ishodište koristiti ugrađenu naplatu, šaljući `pk` za identifikaciju računa. Ako odgovor uključuje panel, način postaje panel.

Dok taj odgovor ne stigne, način je **skočni prozor**. To je ponašanje koje će vas najvjerojatnije iznenaditi: provjera je asinkrona, pa poziv `book()` pokrenut odmah pri učitavanju stranice – prije nego što je posjetitelj imao priliku bilo što kliknuti – i dalje može otvoriti skočni prozor na savršeno konfiguriranoj domeni. U praksi stvarni klik uvijek stiže dugo nakon završetka provjere. Ako naplatu otvarate automatski, nametnite način umjesto da se oslanjate na otkrivanje.

## Nametanje načina rada

Izričito postavite `checkoutMode` kako biste u potpunosti preskočili otkrivanje:

```js
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY', checkoutMode: 'popup' });
```

Ili ga nadjačajte za jednu rezervaciju:

```js
entase.book('EVENT_ID', { checkoutMode: 'popup' });
```

Nametanje načina `'pane'` na domeni koja nije pouzdano ishodište ne daje dopuštenje – panel se otvara, ali naplata unutar njega ne može komunicirati s vašom stranicom. Upotrijebite `'popup'` kao svjestan odabir, a `'auto'` ostavite kada želite ugrađenu naplatu svugdje gdje je dopuštena.

Neprepoznata vrijednost zanemaruje se i tretira kao `'auto'`.

## Čitanje i promjena načina rada tijekom izvođenja

```js
entase.getCheckoutMode();        // 'pane' ili 'popup' – nikad 'auto'
entase.setCheckoutMode('popup'); // primjenjuje se na svaki kasniji poziv book()
```

`getCheckoutMode()` vraća *razriješeni* način rada, pa prikazuje što će se zapravo dogoditi. Ponovno postavljanje načina na `'auto'` ponovno pokreće otkrivanje.

## Blokatori skočnih prozora

Preglednici dopuštaju `window.open()` samo tijekom korisničke geste. Pozovite `book()` izravno unutar obrađivača klika – ne nakon `await`, `fetch` ili `setTimeout`, kada je gesta već istekla i skočni prozor je blokiran.

```js
// Blokirano: geste više nema kada se pokrene book().
button.addEventListener('click', async () => {
  const event = await fetch('/api/current-event').then(r => r.json());
  entase.book(event.id);
});

// U redu: prvo razriješite id, otvorite pri kliku.
button.addEventListener('click', () => entase.book(button.dataset.eventId));
```

To utječe samo na način rada skočnog prozora. Način rada panela stvara element na stranici i ne podliježe tome.
