Der Client protokolliert alles, was er meldet, in der Browserkonsole mit dem Präfix [Entase API]. Öffnen Sie zuerst die Konsole.
Der Checkout wird als Pop-up statt als Bereich geöffnet
Die üblichen Ursachen, in der Reihenfolge, in der sie geprüft werden sollten:
- Die Domain ist keine vertrauenswürdige Origin. Fügen Sie sie unter Einstellungen → Integrationen hinzu und achten Sie darauf, dass das
www.-Präfix mit dem Ihrer tatsächlich ausgelieferten Website übereinstimmt – siehe Integrationen und Checkout-Anpassung. - Die Seite wird nicht über HTTPS bereitgestellt. Inline-Checkout wird auf einer unsicheren Seite niemals verwendet.
- Kein veröffentlichbarer Schlüssel. Ohne
pkkann der Client nicht prüfen, ob Inline-Checkout erlaubt ist, und verwendet daher weiterhin ein Pop-up. book()wurde zu früh ausgeführt. Die Berechtigungsprüfung erfolgt asynchron, und bis sie antwortet, ist der Modus Pop-up. Ein beim Laden der Seite automatisch geöffneter Checkout kann ihr zuvorkommen – siehe Checkout-Modi.connect-srcwird durch Ihre Content Security Policy blockiert, sodass die Prüfung nie abgeschlossen wird. Die Konsole zeigt die blockierte Anfrage an.
entase.getCheckoutMode() gibt den aufgelösten Modus zurück und ist der schnellste Weg, Konfigurationsprobleme von Timing-Problemen zu unterscheiden.
„Pane-Checkout-Modus für localhost aktiviert“
Während der Entwicklung erwartet. Der Client nimmt für localhost und 127.0.0.1 den Pane-Modus an, damit Sie mit dem Inline-Layout entwickeln können, und warnt, weil diese Annahme nichts über die Produktion aussagt. Fügen Sie Ihre tatsächliche Domain zu den vertrauenswürdigen Origins hinzu, bevor Sie live gehen.
Das Pop-up wird blockiert
Browser erlauben das Öffnen eines Fensters nur während einer Nutzerinteraktion. Rufen Sie book() synchron innerhalb des Click-Handlers auf, nicht nach einem await, einem fetch oder einem setTimeout. Siehe Checkout-Modi.
Der Bereich wird leer geöffnet
Das Checkout-iframe wurde blockiert. Erlauben Sie https://www.entase.com in der frame-src-Direktive Ihrer Content Security Policy – siehe Installation des Clients.
„Entase ist nicht definiert“
Das Skript war noch nicht vollständig geladen, als Ihr Code ausgeführt wurde. Dies passiert, wenn client.js mit async oder defer geladen wird oder nach dem Skript platziert ist, das es verwendet. Warten Sie auf das Ereignis entase:ready – siehe Installation des Clients.
„Versuch, ein Event zu buchen, nachdem der Client zerstört wurde“
destroy() wurde für die Instanz aufgerufen und sie kann nicht mehr verwendet werden. In einer Single-Page-Anwendung bedeutet dies normalerweise, dass eine Komponente ihren Client abgebaut hat, während eine gemeinsame Referenz bestehen blieb. Erstellen Sie für die neue Ansicht eine neue Instanz.
„Initialisierung des Entase-Frames fehlgeschlagen. Container nicht gefunden.“
Nur Embed-Widget. Der obj-Code in der Konfiguration stimmt mit keinem Element auf der Seite überein. Die ID des Containers muss aus entase_ gefolgt vom gleichen Code bestehen, und er muss im DOM vorhanden sein, bevor das Widget initialisiert wird – prüfen Sie auf einen Tippfehler oder darauf, ob ein Container erst später durch Ihre eigenen Skripte gerendert wird.
Nur der letzte Event-Listener wird ausgeführt
on() speichert einen Callback pro Event-Namen, und die Registrierung eines zweiten ersetzt den ersten. Registrieren Sie ihn einmal und verteilen Sie innerhalb dieses Callbacks weiter – siehe Events.
Das Pop-up wird auf dem falschen Bildschirm geöffnet
Der Mittelpunkt wird beim Erstellen der Instanz berechnet und nicht aktualisiert, wenn der Besucher das Browserfenster verschiebt. Berechnen Sie ihn vor dem Buchen mit setTopWindowCenter() neu – siehe Methodenreferenz.
Tracking-Parameter fehlen in Bestellungen
Der eigenständige Client liest die URL Ihrer Seite nicht. Übergeben Sie die Parameter selbst an tprm – siehe Tracking und Einwilligung. Beachten Sie, dass setTracking() das gesamte Objekt ersetzt, statt es damit zusammenzuführen; ein späterer Aufruf kann daher unbemerkt frühere Parameter verwerfen.