Checkout-ul se deschide într-unul dintre două moduri.
Panoul este un panou integrat, redat în pagina dvs. Pe desktop, glisează din dreapta, cu lățimea limitată la pane.width; pe mobil, glisează în sus din partea de jos. Vizitatorul rămâne pe site-ul dvs., iar panoul se închide când apasă Escape sau face clic pe zona estompată.
Fereastra pop-up este o fereastră de browser separată, centrată pe ecranul vizitatorului. Clientul urmărește închiderea ferestrei pentru a putea elimina fundalul.
Checkout-ul integrat necesită o origine de încredere
Modul panou redă checkout-ul Entase într-un iframe pe domeniul dvs., așadar este permis doar pentru domeniile pe care le-ați autorizat explicit. Adăugați fiecare domeniu care deschide checkout-ul la Origini de încredere în Setări → Integrări – consultați Integrări și personalizarea checkout-ului.
Contează dacă este inclus prefixul www.. Dacă nu sunteți sigur ce formă servește site-ul dvs., adăugați-le pe ambele.
Dacă domeniul dvs. nu este în listă, checkout-ul funcționează în continuare – pur și simplu se deschide într-o fereastră pop-up.
Cum este rezolvat 'auto'
Cu valoarea implicită checkoutMode: 'auto', clientul decide în această ordine:
- Nu este HTTPS → fereastră pop-up. Checkout-ul integrat nu este utilizat niciodată pe o pagină nesecurizată.
localhostsau127.0.0.1→ panou, cu un avertisment înregistrat în consolă. Aceasta este o facilitate pentru dezvoltare, astfel încât să puteți construi folosind aspectul integrat; nu spune nimic despre dacă domeniul dvs. de producție este permis.- În caz contrar → clientul întreabă Entase dacă această origine poate utiliza checkout-ul integrat, trimițând
pkpentru a identifica contul. Dacă răspunsul include pane, modul devine panou.
Până la primirea răspunsului, modul este popup. Acesta este comportamentul care are cele mai mari șanse să vă surprindă: verificarea este asincronă, astfel încât un apel book() declanșat imediat la încărcarea paginii – înainte ca vizitatorul să aibă ocazia să facă clic pe ceva – poate deschide totuși o fereastră pop-up pe un domeniu perfect configurat. În practică, un clic real are întotdeauna loc mult după finalizarea verificării. Dacă deschideți checkout-ul automat, forțați modul în loc să vă bazați pe detectare.
Forțarea unui mod
Setați explicit checkoutMode pentru a omite complet detectarea:
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY', checkoutMode: 'popup' });Sau suprascrieți-l pentru o singură rezervare:
entase.book('EVENT_ID', { checkoutMode: 'popup' });Forțarea valorii 'pane' pe un domeniu care nu este o origine de încredere nu acordă permisiunea – panoul se deschide, însă checkout-ul din interiorul său nu poate comunica cu pagina dvs. Folosiți 'popup' ca alegere deliberată și păstrați 'auto' atunci când doriți checkout integrat oriunde este permis.
O valoare nerecunoscută este ignorată și tratată ca 'auto'.
Citirea și modificarea modului în timpul rulării
entase.getCheckoutMode(); // 'pane' or 'popup' – never 'auto'
entase.setCheckoutMode('popup'); // applies to every later book() callgetCheckoutMode() returnează modul rezolvat, așadar indică ce se va întâmpla efectiv. Setarea modului înapoi la 'auto' rulează din nou detectarea.
Blocarea ferestrelor pop-up
Browserele permit window.open() numai în timpul unui gest al utilizatorului. Apelați book() direct într-un handler de clic – nu după un await, un fetch sau un setTimeout, moment în care gestul a expirat și fereastra pop-up este blocată.
// Blocked: the gesture is gone by the time book() runs.
button.addEventListener('click', async () => {
const event = await fetch('/api/current-event').then(r => r.json());
entase.book(event.id);
});
// Fine: resolve the id first, open on the click.
button.addEventListener('click', () => entase.book(button.dataset.eventId));Acest lucru afectează doar modul pop-up. Modul panou creează un element în pagină și nu este supus acestei restricții.