Embed di website
Pasang widget booking Termilo di website apa pun: mode inline atau modal, sebuah custom element yang sudah CSS-isolated, dan opsi atribut yang ringkas. Booking lewat embed memakai API yang sama dengan halaman hosted.
Cara kerja#
Embed adalah satu tag <script> yang mendaftarkan custom element <termilo-booking>. Element itu di-render di dalam Shadow DOM, jadi gaya situs Anda dan gaya widget tidak saling bocor. Widget memanggil API booking yang sama dengan halaman hosted — alur yang sama (pilih layanan → pilih jam → isi data → konfirmasi), penguncian slot yang sama, audit yang sama — dan booking yang dibuat lewat embed ditandai source: "embed".
Tanpa rahasia di browser
Pasang dengan script#
Tempelkan dua baris ini di tempat widget harus muncul. Skrip auto-init dari atribut data-termilo-* pada tag <script> yang memuatnya — tidak perlu kode JS tambahan untuk kasus umum.
inline, set data-termilo-target ke selector container Anda. Bila atribut itu kosong, widget disisipkan tepat setelah tag <script>.Atribut data-termilo-*#
Atribut auto-init yang dibaca dari tag <script> yang memuat widget. Hanya data-termilo-tenant yang wajib.
Bila Anda menulis custom element <termilo-booking> langsung (lihat tab di atas), element itu memakai atribut tanpa awalan data-:
Mode inline & modal#
Atribut data-termilo-mode memilih tata letak:
- inline (bawaan) — widget tertanam langsung di dalam container
data-termilo-target. - modal — skrip memasang sebuah tombol pemicu; mengkliknya membuka widget dalam overlay layar penuh yang bisa ditutup lewat klik di luar atau tombol
Esc.
triggerLabel saat memanggil Termilo.init (bawaan "Pesan sekarang"). Atribut auto-init tidak mengekspos label ini; pakai pemanggilan JavaScript untuk mengubahnya.Pasang via JavaScript#
Untuk kontrol penuh, panggil API global window.Termilo sendiri alih-alih mengandalkan auto-init. Berguna untuk SPA, pemasangan kondisional, atau saat menentukan elemen target lewat referensi DOM.
Termilo.init menerima { tenant, mode, accent, selector, target, triggerLabel, poweredBy }. Beri salah satu dari selector (string) atau target (HTMLElement) sebagai induk; bila keduanya tidak ditemukan, init berhenti diam-diam. Termilo.openModal membuka overlay langsung tanpa tombol pemicu.
Event booking#
Setelah booking terkirim, widget men-dispatch sebuah CustomEvent bernama termilo:booking. Event ini bubbles dan composed (menembus batas Shadow DOM), jadi Anda bisa mendengarkannya di document.
Bentuk event.detail:
source: "embed" pada record booking.White-label#
Widget netral secara bawaan agar cocok dipasang reseller di brand mereka sendiri:
- Set
data-termilo-accent(atauaccent) ke warna brand untuk mewarnai tombol & kontrol. Kosongkan untuk tampilan netral. - Set
powered-by="false"pada custom element (ataupoweredBy: falsediTermilo.init) untuk menyembunyikan footer "Powered by Termilo". - Shadow DOM menjaga isolasi gaya, jadi widget tidak mewarisi CSS situs induk dan sebaliknya.