Клиент записывает в консоль браузера всё, что сообщает, с префиксом [Entase API]. Сначала откройте консоль.
Оформление заказа открывается во всплывающем окне вместо панели
Обычные причины в порядке, в котором их стоит проверить:
- Домен не является доверенным источником. Добавьте его в Настройки → Интеграции, указав префикс
www., который фактически использует ваш сайт – см. Интеграция и настройка оформления заказа. - Страница не загружается по HTTPS. На небезопасной странице встроенное оформление заказа никогда не используется.
- Нет публичного ключа. Без
pkклиент не может проверить, разрешено ли встроенное оформление заказа, поэтому остаётся всплывающее окно. book()был вызван слишком рано. Проверка разрешения выполняется асинхронно, и до получения ответа используется режим всплывающего окна. Оформление заказа, автоматически открываемое при загрузке страницы, может опередить проверку – см. Режимы оформления заказа.connect-srcзаблокирован вашей политикой безопасности содержимого, поэтому проверка не завершается. В консоли будет показан заблокированный запрос.
entase.getCheckoutMode() возвращает определённый режим и позволяет быстрее всего отличить проблемы конфигурации от проблем со временем выполнения.
"Pane checkout mode enabled for localhost"
Это ожидаемо в процессе разработки. Клиент предполагает режим панели на localhost и 127.0.0.1, чтобы вы могли разрабатывать встроенную компоновку, и выводит предупреждение, поскольку это предположение ничего не говорит о рабочей среде. Перед запуском добавьте реальный домен в доверенные источники.
Всплывающее окно заблокировано
Браузеры разрешают открывать окно только во время пользовательского действия. Вызывайте book() синхронно внутри обработчика клика, а не после await, fetch или setTimeout. См. Режимы оформления заказа.
Панель открывается пустой
Был заблокирован iframe оформления заказа. Разрешите https://www.entase.com в директиве frame-src вашей политики безопасности содержимого – см. Установка клиента.
"Entase is not defined"
Скрипт ещё не завершил загрузку, когда был выполнен ваш код. Это происходит, когда client.js загружается с async или defer либо размещён после скрипта, который его использует. Дождитесь события entase:ready – см. Установка клиента.
"Trying to book an event after the Client has been destroyed"
Для экземпляра был вызван destroy(), и его больше нельзя использовать. В одностраничном приложении это обычно означает, что компонент уничтожил свой клиент, пока общая ссылка на него оставалась на месте. Создайте новый экземпляр для нового представления.
"Entase frame initialization failed. Container not found."
Только для виджета встраивания. Код obj в конфигурации не соответствует ни одному элементу на странице. Идентификатор контейнера должен состоять из entase_ и того же кода, а сам контейнер должен существовать в DOM до инициализации виджета – проверьте, нет ли опечатки или не отображается ли контейнер позже вашими скриптами.
Срабатывает только последний обработчик события
on() сохраняет одну функцию обратного вызова на имя события, и регистрация второй заменяет первую. Зарегистрируйте обработчик один раз и распределяйте вызовы внутри него – см. События.
Всплывающее окно открывается не на том экране
Центральная точка вычисляется при создании экземпляра и не обновляется, когда посетитель перемещает окно браузера. Перед оформлением заказа пересчитайте её с помощью setTopWindowCenter() – см. Справочник методов.
В заказах отсутствуют параметры отслеживания
Отдельный клиент не считывает URL вашей страницы. Самостоятельно передайте параметры в tprm – см. Отслеживание и согласие. Обратите внимание, что setTracking() заменяет объект целиком, а не объединяет его с существующим, поэтому последующий вызов может незаметно удалить ранее заданные параметры.