Preskočiť na hlavný obsah
← Domů

Rezervační formulář na váš web

Formulář vložíte na web pomocí <iframe> — bez doplňku a bez programování. Stačí, aby váš web (WordPress, Shopify, Webnode, Wix, Squarespace nebo vlastní HTML) umožňoval vložit vlastní HTML kód.

1. Základní kód

Zkopírujte HTML kód a vložte ho kamkoli na svůj web. Nahraďte vase-meno identifikátorem vaší provozovny — je to část adresy za /embed/. Celý odkaz zkopírujete na nástěnce: Služby → vyberte službu → Sdílet.

<iframe
  src="https://app.terminuj.com/embed/vase-meno"
  style="width:100%; max-width:680px; height:780px; border:0;"
  allow="payment"
  loading="lazy"
  title="Rezervácia termínu"></iframe>

Pokud služba vyžaduje zálohu, platí se na stránce rezervace Terminuj, která se z vloženého formuláře otevře v nové kartě. loading="lazy" načte formulář, až když k němu návštěvník posune stránku.

1b. Varianta se skriptem (automatická výška v jednom bloku)

Pokud chcete formulář bez pevné výšky (přizpůsobí se obsahu — vybrané datum, údaje zákazníka), použijte tento jeden blok. Vytvoří iframe a výšku nastavuje sám přes postMessage. Kód z bodu 3 už nepotřebujete — je v něm obsažen.

<div id="rezervacia-widget"></div>
<script>
(function () {
  var mount = document.getElementById('rezervacia-widget');
  var f = document.createElement('iframe');
  f.src = "https://app.terminuj.com/embed/vase-meno";
  f.style.cssText = 'width:100%;max-width:680px;height:780px;border:0';
  f.allow = 'payment';
  f.loading = 'lazy';
  f.title = 'Rezervácia termínu';
  mount.appendChild(f);
  window.addEventListener('message', function (e) {
    if (e.origin !== 'https://app.terminuj.com' || e.source !== f.contentWindow) return;
    if (e.data && e.data.type === 'rezervacia:resize') {
      var h = Number(e.data.height);
      if (h > 0 && h < 10000) f.style.height = Math.round(h) + 'px';
    }
  });
})();
</script>

iframe (bod 1) = nejjednodušší, funguje i bez JavaScriptu, ale má pevnou výšku. Varianta se skriptem = o něco více kódu, ale formulář roste a zmenšuje se podle obsahu. Obě podporují stejné parametry theme/primary/font.

Tip: hotové kódy pro konkrétní motivy najdete v galerii /temy — vyberete motiv, uvidíte náhled a zkopírujete kód.

2. Vzhled (motiv, barva, písmo)

Přidejte parametry do adresy v src:

<iframe
  src="https://app.terminuj.com/embed/vase-meno?theme=light&primary=B4436C&font=Inter"
  style="width:100%; max-width:680px; height:780px; border:0;"
  allow="payment"
  loading="lazy"
  title="Rezervácia termínu"></iframe>

Bez parametru primary se použije barva z nástěnky (Nastavení → Vzhled a logo firmy). Bez parametru locale se jazyk formuláře řídí nastavením provozovny (Nastavení → Jazyk a region). Barvu zadávejte bez #.

3. Automatická výška

Formulář posílá postMessage s aktuální výškou při každé změně velikosti (vybrané datum, služba, údaje zákazníka). Volitelný skript k bodu 1:

<script>
window.addEventListener('message', (event) => {
  if (event.origin !== 'https://app.terminuj.com') return;
  if (event.data?.type !== 'rezervacia:resize') return;
  const iframe = document.querySelector('iframe[src*="app.terminuj.com/embed"]');
  if (iframe) iframe.style.height = event.data.height + 'px';
});
</script>

Tvar zprávy

Obsah zprávy:

{
  type: 'rezervacia:resize',
  tenantSlug: 'vase-meno',   // který formulář posílá (při více formulářích na stránce)
  height: 1240                // px (document.documentElement.scrollHeight)
}

Více formulářů na jedné stránce

Rozlište je podle tenantSlug ve zprávě a vyberte iframe podle src:

window.addEventListener('message', (event) => {
  if (event.origin !== 'https://app.terminuj.com') return;
  if (event.data?.type !== 'rezervacia:resize') return;
  const iframe = document.querySelector(
    `iframe[src*="/embed/${event.data.tenantSlug}"]`
  );
  if (iframe) iframe.style.height = event.data.height + 'px';
});

Bez skriptu má formulář pevnou výšku 780 px (posouvá se uvnitř iframe). Zprávu posílá při načtení a potom při každé změně velikosti stránky formuláře (ResizeObserver).

4. Vložení do redakčního systému

WordPress

// 1. Administrace WordPress → Stránky → upravit stránku
// 2. Přidat blok „Vlastní HTML“ (Custom HTML)
// 3. Vložit kód z bodu 1
// 4. Publikovat

Shopify

<!-- Online Store → Themes → Edit code → Sections → footer.liquid -->
<!-- Vložit kód z bodu 1 kamkoli mezi <body>...</body> -->

React / Next.js

// React / Next.js
export function BookingWidget() {
  return (
    <iframe
      src="https://app.terminuj.com/embed/vase-meno"
      style={{ width: '100%', maxWidth: 680, height: 780, border: 0 }}
      allow="payment"
      loading="lazy"
      title="Rezervace termínu"
    />
  );
}

Webnode / Wix / Squarespace

Přidejte blok pro vlastní HTML kód („Embed HTML“ / „Custom Code“ / „Code“) a vložte kód z bodu 1. Zda to váš tarif umožňuje, ověřte u poskytovatele webu.

5. Bezpečnost (CSP, X-Frame-Options)

Vložit lze jen stránky /embed/* — mají Content-Security-Policy: frame-ancestors *, takže fungují na jakékoli doméně. Ostatní stránky (nástěnka, přihlášení, správa rezervace) posílají X-Frame-Options: DENY a frame-ancestors 'none' — do iframe je vložit nelze.

Pokud máte na webu striktní CSP, povolte tento origin:

Content-Security-Policy:
  frame-src https://app.terminuj.com;
  child-src https://app.terminuj.com;

6. Časté problémy

Formulář se nezobrazuje (bílá plocha)

1. Podívejte se do konzole prohlížeče — nejčastěji iframe blokuje CSP vašeho webu (bod 5). 2. Otevřete adresu přímo v nové kartě (https://app.terminuj.com/embed/vase-meno) — pokud tam nefunguje, je špatný identifikátor. 3. Zkuste vypnout blokátor reklam — některé blokují vložená okna z cizích domén.

Zákazník nedostal potvrzovací e-mail

Ať se podívá do složky spam. Potvrzení posílá Terminuj, u provozovny s vlastní značkou pod jejím jménem; posílá se, jen pokud máte zapnuté potvrzovací e-maily (Nastavení → Upozornění zákazníkům). Pokud chybí i ve spamu, napište na podpora@terminuj.com s kódem rezervace (RZV-XXXXXX).

Jak zákazník zaplatí zálohu?

Po odeslání rezervace klikne na tlačítko správy rezervace — z vloženého formuláře se otevře v nové kartě na stránce Terminuj a tam zaplatí kartou. Platba proto nezávisí na pravidlech vašeho webu.

Formulář zobrazuje 404

Identifikátor v adrese je nesprávný. Správný odkaz zkopírujete na nástěnce: Služby → vyberte službu → Sdílet. (Pokud je provozovna pozastavená, formulář místo 404 zobrazí oznámení, že rezervace teď nejsou možné.)