Utsjekkingen åpnes i én av to moduser.
Pane er et innebygd panel som rendres på siden din. På datamaskiner glir det inn fra høyre, med maksimal bredde på pane.width; på mobil glir det opp fra bunnen. Den besøkende blir på nettstedet ditt, og panelet lukkes når vedkommende trykker på Escape eller klikker på det nedtonede området.
Popup er et separat nettleservindu, sentrert på den besøkendes skjerm. Klienten overvåker om vinduet lukkes, slik at den kan fjerne bakgrunnsoverlegget.
Innebygd utsjekking krever en klarert opprinnelse
Panelmodus rendrer Entase-utsjekkingen i en iframe på domenet ditt, og er derfor bare tillatt for domener du uttrykkelig har autorisert. Legg til hvert domene som åpner utsjekkingen, under Klarerte opprinnelser i Innstillinger → Integrasjoner – se Integrasjoner og tilpasning av utsjekking.
Det har betydning om prefikset www. er inkludert. Hvis du ikke er sikker på hvilken form nettstedet ditt bruker, legger du til begge.
Hvis domenet ditt ikke står på listen, fungerer utsjekkingen fortsatt – den åpnes bare som et popup-vindu.
Slik løses 'auto'
Med standardverdien checkoutMode: 'auto' bestemmer klienten dette i følgende rekkefølge:
- Ikke HTTPS → popup. Innebygd utsjekking brukes aldri på en usikker side.
localhosteller127.0.0.1→ panel, med en advarsel logget til konsollen. Dette er en praktisk løsning for utvikling, slik at du kan bygge mot det innebygde oppsettet; det sier ingenting om hvorvidt produksjonsdomenet ditt er tillatt.- Ellers → klienten spør Entase om denne opprinnelsen kan bruke innebygd utsjekking, og sender
pkfor å identifisere kontoen. Hvis svaret inkluderer panel, blir modusen panel.
Frem til svaret kommer, er modusen popup. Dette er oppførselen som mest sannsynlig vil overraske deg: Kontrollsjekken er asynkron, så et book()-kall som utløses umiddelbart når siden lastes – før den besøkende har rukket å klikke på noe – kan fortsatt åpne en popup på et helt korrekt konfigurert domene. I praksis kommer et ekte klikk alltid lenge etter at kontrollsjekken er fullført. Hvis du åpner utsjekkingen automatisk, bør du tvinge modusen i stedet for å basere deg på deteksjon.
Tvinge en modus
Angi checkoutMode eksplisitt for å hoppe over deteksjon helt:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY', checkoutMode: 'popup' });Eller overstyr den for én enkelt bestilling:
entase.book('EVENT_ID', { checkoutMode: 'popup' });Å tvinge 'pane' på et domene som ikke er en klarert opprinnelse, gir ikke tillatelse – panelet åpnes, men utsjekkingen inni det kan ikke kommunisere med siden din. Bruk 'popup' som et bevisst valg, og behold 'auto' når du vil bruke innebygd utsjekking der det er tillatt.
En ukjent verdi ignoreres og behandles som 'auto'.
Lese og endre modusen under kjøring
entase.getCheckoutMode(); // 'pane' eller 'popup' – aldri 'auto'
entase.setCheckoutMode('popup'); // gjelder for alle senere book()-kallgetCheckoutMode() returnerer den løste modusen, og rapporterer derfor hva som faktisk kommer til å skje. Hvis du setter modusen tilbake til 'auto', kjøres deteksjonen på nytt.
Popup-blokkeringer
Nettlesere tillater bare window.open() under en brukerhandling. Kall book() direkte i en klikkbehandler – ikke etter en await, en fetch eller en setTimeout, for da har handlingen utløpt og popup-vinduet blokkeres.
// Blokkert: handlingen er over når book() kjøres.
button.addEventListener('click', async () => {
const event = await fetch('/api/current-event').then(r => r.json());
entase.book(event.id);
});
// Fungerer: løs opp id-en først, åpne ved klikket.
button.addEventListener('click', () => entase.book(button.dataset.eventId));Dette påvirker bare popup-modus. Panelmodus oppretter et element på siden og er ikke underlagt dette.