# A pénztár megnyitása

> A book() metódus megnyitja a pénztárat egy eseményhez, és hívásonkénti felülbírálásokat, valamint a saját rendszerein keresztül továbbvihető klienskontektsust fogad el.

A `book()` metódus nyitja meg a pénztárat. A kliensben minden más ezt konfigurálja vagy figyeli.

```js
entase.book(eventID);
entase.book(eventID, options);
```

Az `eventID` az értékesítendő ütemezett esemény azonosítója. Ugyanezt az azonosítót használják az esemény megosztási és beágyazási kódjai is.

A hívás azonnal visszatér – megnyitja a panelt vagy az ablakot, és nem várja meg, amíg a látogató befejezi a folyamatot. A további történésekre az [események](/developers/js-client/events.md) segítségével reagálhat.

## Beállítások

| Név | Típus | Alapértelmezett | Leírás |
|---|---|---|---|
| `checkoutMode` | string | példányérték | `'pane'` vagy `'popup'` csak ehhez a foglaláshoz. |
| `clientContext` | object | `null` | Tetszőleges adat, amelyet a pénztár megkap, amint készen áll. Lásd alább. |
| `collectConsent` | boolean | példányérték | Meg kell-e kérni a látogatót, hogy fogadja el a feltételekről szóló értesítést. |
| `backdrop` | boolean | példányérték | El kell-e halványítani a pénztár mögötti oldalt. |
| `backdropColor` | string | példányérték | Az elhalványított terület színe. |
| `pane` | object | példányérték | `{ width, height }` a beágyazott panelhez. |
| `popup` | object | példányérték | `{ width, height }` az előugró ablakhoz. |

Bármit is hagy ki, az a példány létrehozásakor megadott értékre áll vissza, így a hívásonkénti beállítások kiegészítik egymást, nem pedig lecserélik a teljes beállításkészletet.

```js
entase.book('EVENT_ID', {
  pane: { width: '60vw' },
  backdrop: false,
  clientContext: { source: 'homepage-hero' }
});
```

## Klienskontekstus

A `clientContext` egy ön által kialakított objektum. A kliens addig tárolja, amíg a pénztár nem jelzi, hogy készen áll, majd átadja neki. Olyan információk továbbítására használhatja, amelyeket csak az oldala ismer – melyik gombra kattintottak, melyik kampányból érkezett a látogató, belső ügyfélhivatkozás – egészen a pénztári munkamenetig.

A kontextus eseményazonosítónként tárolódik, így ha ugyanarról az oldalról két különböző eseményhez foglal, a kontextusaik elkülönülnek.

Ne helyezzen bele bizalmas adatokat. A böngészőn keresztül jut el a pénztárhoz, és bárki számára látható, aki megvizsgálja az oldalt.

## Több esemény megnyitása egy oldalról

Egy példány tetszőleges számú eseményt kezel. Hozza létre egyszer, majd minden alkalommal adjon át egy másik azonosítót:

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

document.querySelectorAll('[data-event-id]').forEach(button => {
  button.addEventListener('click', () => {
    entase.book(button.dataset.eventId, {
      clientContext: { source: button.dataset.source }
    });
  });
});
```

## A kliens megsemmisítése után

Ha egy már megsemmisített példányon hívja meg a `book()` metódust, hiba kerül a konzolra, és semmi sem nyílik meg. Ez szándékos – egy megsemmisített példány már nem figyeli a pénztár üzeneteit, így az általa megnyitott ablakot nem lehetne bezárni vagy figyelni. Hozzon létre inkább egy új példányt.

## A pénztár bezárása

A látogató maga zárja be a pénztárat: pane mód esetén az Escape billentyűvel vagy az elhalványított területre kattintva, előugró ablak módban az ablak vezérlőivel. A pénztár akkor is bezárja magát, amikor a foglalás befejeződik.

Nincs nyilvános metódus a kódból történő bezárására. Ha tudnia kell, mikor záródott be, figyelje a `checkout.closed` eseményt.
