Параметры
Параметры вызова window.mountHodimaWidget: организация и адрес API, основа и цвета, скрытые блоки и способ оплаты.
Организация и адрес API
Виджет монтируется явным вызовом со страницы оператора: при загрузке скрипт только регистрирует window.mountHodimaWidget.
Параметр target — селектор контейнера, по умолчанию #hodima-widget.
window.mountHodimaWidget({
target: '#hodima-widget',
tenantId: 'YOUR_TENANT_ID',
apiBaseUrl: 'https://api.example.com',
})
Организация берётся из первого непустого источника:
-
аргумент
tenantIdвmountHodimaWidget; -
TENANT_IDилиVITE_TENANT_IDсборки; -
параметр
TenantIdв адресе страницы — только если это GUID.
Параметр TenantId в ссылке не переопределяет организацию, заданную при встраивании или сборкой.
Если организация не задана ни одним источником, виджет не делает запросов и показывает плашку «Витрина не настроена: не указана организация. Проверьте ссылку или код встраивания».
Вызов возвращает true, если контейнер найден и виджет смонтирован, и false, если нет.
Размонтировать виджет можно вызовом window.unmountHodimaWidget().
Скрытые блоки (hiddenBlocks)
Часть блоков виджета оператору не нужна: промокод без промокодов, выбор оплаты при одном способе, шапка каталога со своей первой секцией на сайте. Менеджер скрывает их в админ-панели, а разработчик сайта может заменить набор при монтировании.
window.mountHodimaWidget({
target: '#hodima-widget',
hiddenBlocks: ['catalogHeader', 'excursionFaq'],
})
-
Параметр заменяет список, сохранённый в админ-панели, целиком:
[]показывает все блоки, отсутствие параметра — действует сохранённый список. -
Принимаются только имена из таблицы ниже. Неизвестное имя (опечатка, блок из другой версии виджета) не ломает монтаж: оно пропускается с предупреждением в консоль
[Hodima Widget] …. -
Порядок источников: адрес страницы →
hiddenBlocks→ черновик предпросмотра → сохранённые настройки → умолчания. Через адрес блоки не задаются: набор для одной организации достигается только параметрами монтирования. -
Обязательные части покупки не скрываются: панель выбора даты, времени и билетов, форма покупателя, согласия, таймер брони, сообщения об ошибках, QR-коды и кнопки билетов.
-
Подпись «Работает на платформе Ходима» внизу виджета тоже не отключается.
| Экран | Блок | Имя |
|---|---|---|
Каталог |
Шапка каталога: иллюстрация, градиент, заголовок, город, плашки |
|
Фильтры: формат, время суток, город |
|
|
Лента дат и календарь цен |
|
|
Сортировка |
|
|
Экскурсия |
Фотогалерея |
|
Ссылка «← Все прогулки» |
|
|
Подробности: факты и описание |
|
|
Что включено |
|
|
Маршрут |
|
|
Место встречи |
|
|
Если планы изменятся (возврат) |
|
|
Частые вопросы |
|
|
Проживание к экскурсии |
|
|
Глэмпинги |
Фильтры списка |
|
Сортировка списка |
|
|
Фотогалерея |
|
|
Значки «Глэмпинг», «N прогулки рядом» |
|
|
Питание |
|
|
Дополнительно |
|
|
Правила возврата |
|
|
Экскурсии рядом |
|
|
Оформление |
Промокод |
|
Выбор способа оплаты |
|
|
Билеты |
Место встречи |
|
Что взять с собой |
|
|
Плашка о возврате |
|
|
Ещё в этот день |
|
Период и число гостей проживания, а также число билетов в каталоге — входы поиска, а не фильтры: они остаются видимыми и при скрытых glampingFilters и catalogFilters.
Скрытые «Питание» и «Дополнительно» означают, что бронь создаётся без питания и без дополнительных услуг.
Блок на экране, недоступном в выбранном составе виджета, просто не встречается.
Способ оплаты при скрытом выборе (defaultPaymentMethod)
window.mountHodimaWidget({
target: '#hodima-widget',
hiddenBlocks: ['checkoutPaymentMethod'],
defaultPaymentMethod: 'sbp', // 'card' (по умолчанию) | 'sbp'
})
Когда блок checkoutPaymentMethod скрыт, виджет платит этим способом — тем же путём, что при ручном выборе: 'sbp' уходит в СБП, карта открывает встроенную форму ЮKassa.
Когда выбор виден, параметр не используется: на телефоне по умолчанию СБП, на компьютере — карта.
Неподдерживаемое значение (например, 'bitcoin') игнорируется с предупреждением [Hodima Widget] …: действует способ из админ-панели.
Способ из параметров не проверяет подключение в ЮKassa: если СБП у организации не подключён, платёж не пройдёт.
Основа и цвета (theme)
Объект theme задаёт основу и пять цветов виджета.
Остальные цвета — вторичный текст, рамки, статусы, декор — выводятся из них пакетом @hodima/ui, виджет их не дублирует.
| Поле | CSS-переменная | Умолчание | Что окрашивает |
|---|---|---|---|
|
— |
|
Основа: готовая заготовка фона, карточек, текста и статусов. Допустимо |
|
|
из основы |
Фон виджета. |
|
|
из основы |
Карточки, панели, поля ввода, диалоги. |
|
|
из основы |
Основной текст и иконки. |
|
|
|
Кнопки, выбор, ссылки, выделение. |
|
|
из настроек ( |
Логотип, декор и градиент шапки каталога. |
window.mountHodimaWidget({
target: '#hodima-widget',
theme: {
scheme: 'dark',
backgroundColor: '#121212',
surfaceColor: '#1E1E1E',
textColor: '#F2F2F2',
primaryColor: '#F0A030',
brandColor: '#F0A030',
},
})
Пустые backgroundColor, surfaceColor и textColor берутся из заготовки основы, поэтому на тёмном сайте достаточно scheme: 'dark'.
Цвета принимаются в любом CSS-формате (#abc, #AABBCC, rgb(18, 18, 18), имя цвета) и приводятся к #RRGGBB.
Некорректное значение игнорируется с предупреждением в консоль [Hodima Widget] …: действует сохранённый цвет или заготовка основы, виджет не падает.
Шрифты, отступы и скругление оболочки задаются в том же объекте theme — поля fontBody, fontHeading, shellPaddingBlock, shellPaddingInline, shellBorderRadius и shellPaddingMobile.
fontBody и fontHeading — только семейство, без ссылки на файл: файл шрифта подключает страница оператора до монтирования, иначе останется запасная цепочка system-ui.
Ссылку на файл шрифта задаёт менеджер в настройках организации, и виджет подключает её сам — см. Оформление.
Как основа и цвета выглядят на экране и какие предупреждения о читаемости выводит виджет — там же.
Параметры монтирования главнее сохранённых настроек организации. Те же значения менеджер задаёт в админ-панели, поэтому один и тот же виджет на разных страницах сайта можно оформить по-разному.