Il client registra nella console del browser tutto ciò che segnala, con il prefisso [Entase API]. Apri prima la console.
Il checkout si apre come pop-up anziché come pannello
Le cause più comuni, nell'ordine in cui vale la pena verificarle:
- Il dominio non è un'origine attendibile. Aggiungilo in Impostazioni → Integrazioni, facendo corrispondere il prefisso
www.effettivamente usato dal tuo sito – vedi Integrazioni e personalizzazione del checkout. - La pagina non viene servita tramite HTTPS. Il checkout integrato non viene mai utilizzato su una pagina non sicura.
- Nessuna chiave pubblicabile. Senza
pkil client non può verificare se il checkout integrato è consentito, quindi rimane sul pop-up. book()è stato eseguito troppo presto. Il controllo delle autorizzazioni è asincrono e la modalità resta pop-up finché non riceve una risposta. Un checkout aperto automaticamente al caricamento della pagina può precederlo – vedi Modalità di checkout.connect-srcè bloccato dalla tua Content Security Policy, quindi il controllo non viene mai completato. La console mostrerà la richiesta bloccata.
entase.getCheckoutMode() riporta la modalità risolta ed è il modo più rapido per distinguere i problemi di configurazione da quelli di tempistica.
"Pane checkout mode enabled for localhost"
Previsto durante lo sviluppo. Il client presuppone la modalità pannello su localhost e 127.0.0.1 affinché tu possa sviluppare usando il layout integrato, e mostra un avviso perché questa presunzione non dice nulla sull'ambiente di produzione. Aggiungi il tuo dominio reale alle origini attendibili prima della pubblicazione.
Il pop-up è bloccato
I browser consentono l'apertura di una finestra solo durante un'azione dell'utente. Chiama book() in modo sincrono all'interno del gestore del clic, non dopo un await, un fetch o un setTimeout. Vedi Modalità di checkout.
Il pannello si apre vuoto
L'iframe del checkout è stato bloccato. Consenti https://www.entase.com nella direttiva frame-src della tua Content Security Policy – vedi Installazione del client.
"Entase is not defined"
Lo script non aveva terminato il caricamento quando è stato eseguito il tuo codice. Questo accade quando client.js viene caricato con async o defer, oppure viene posizionato dopo lo script che lo utilizza. Attendi l'evento entase:ready – vedi Installazione del client.
"Trying to book an event after the Client has been destroyed"
destroy() è stato chiamato sull'istanza e non può più essere utilizzata. In un'applicazione a pagina singola, questo di solito significa che un componente ha eliminato il proprio client mentre un riferimento condiviso è rimasto attivo. Crea una nuova istanza per la nuova vista.
"Entase frame initialization failed. Container not found."
Solo per il widget incorporato. Il codice obj nella configurazione non corrisponde a nessun elemento della pagina. L'id del contenitore deve essere entase_ seguito dallo stesso codice e deve esistere nel DOM prima dell'inizializzazione del widget – verifica la presenza di un errore di battitura o di un contenitore visualizzato successivamente dai tuoi script.
Viene eseguito solo l'ultimo listener di eventi
on() mantiene una callback per ogni nome di evento e la registrazione di una seconda sostituisce la prima. Registra una sola volta e dirama dall'interno di quella callback – vedi Eventi.
Il pop-up si apre sullo schermo sbagliato
Il punto centrale viene calcolato al momento della creazione dell'istanza e non viene aggiornato quando il visitatore sposta la finestra del browser. Ricalcolalo prima della prenotazione con setTopWindowCenter() – vedi Riferimento dei metodi.
I parametri di tracciamento sono assenti dagli ordini
Il client autonomo non legge l'URL della tua pagina. Trasmetti tu stesso i parametri in tprm – vedi Tracciamento e consenso. Nota che setTracking() sostituisce l'intero oggetto anziché unirlo a quello esistente, quindi una chiamata successiva può eliminare silenziosamente i parametri precedenti.