> ## Documentation Index
> Fetch the complete documentation index at: https://www.twicecommerce.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Vlastní skripty

> Vložte do hlavičky svého storefrontu skripty pro analytiku a nástroje třetích stran, s vestavěnými bezpečnostními kontrolami.

![Editor vlastních skriptů zobrazující externí a vložené položky skriptů](https://mintcdn.com/twicecommerce/J8PvWLtfo8Bk95ka/images/online-store-custom-scripts.webp?fit=max\&auto=format\&n=J8PvWLtfo8Bk95ka\&q=85\&s=122b2fadd175b96b1b477f953b9ff9c3)

Online obchod > Vlastní skripty

Stránka Vlastní skripty vám umožňuje přidávat skripty do `<head>` vašeho storefrontu: pro analytiku, správce značek, chatovací widgety nebo jiné nástroje třetích stran. Každý skript je před uložením na serveru vyčištěn.

> [!WARNING]
>
> Skripty běží na vašem živém storefrontu s přístupem ke stránce. Přidávejte pouze kód ze zdrojů, kterým důvěřujete.

## Typy skriptů

Můžete přidat dva druhy skriptů:

| Typ | Co to je | Pole |
| - | - | - |
| **Externí** | Načte skript z adresy URL | `src`, volitelně `async`, `defer` a sada povolených atributů |
| **Vložený** | Spustí obsah skriptu, který vložíte přímo | `content` |

### Příklady

```html Externí skript (vykreslený v hlavičce storefrontu) theme={null}
<script
  src="https://example.com/analytics.js"
  async
  data-website-id="abc123"
></script>
```

```javascript Vložený skript (vložte pouze JavaScript) theme={null}
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-XXXXXXX');
```

Externí skripty se vykreslí jako značka `<script>` s vaší URL adresou a atributy. Vložené skripty jsou automaticky obaleny značkou `<script>`: vložte pouze JavaScript, ne okolní značky.

## Vložení značky skriptu

Místo ručního vyplňování jednotlivých polí můžete vložit celou značku `<script>`. U libovolné externí položky skriptu otevřete sekci **Vložit značku skriptu**, vložte celou značku a klikněte na **Zpracovat značku**. Editor automaticky extrahuje `src`, režim načítání (`async`/`defer`) a všechny povolené atributy.

Pokud vložená značka obsahuje nepovolené atributy (například event handlery jako `onload`) nebo `src`, který není HTTPS, editor zobrazí chybu ověření a vložení odmítne.

## Bezpečnostní kontroly

Tato pravidla se vynucují při ukládání: neplatné skripty jsou automaticky odmítnuty nebo vyčištěny.

* **Externí `src` musí být `https://`.** Pouze absolutní HTTPS adresy. Adresy `http:`, `javascript:`, `data:`, `file:` a protokolově relativní (`//host`) jsou odmítnuty.
* **Vložený obsah je oplocen.** Token koncové značky `</script` je odstraněn, aby vložený kód nemohl uniknout ze své značky `<script>`.
* **Atributy mají povolený seznam.** U externích skriptů se vedle `src`, `async` a `defer` zachovávají pouze tyto atributy:

  `id` · `crossorigin` · `integrity` · `nonce` · `referrerpolicy` · `fetchpriority` · `type` · `nomodule`, plus libovolný atribut `data-*`.

  Atributy event handlerů (`onload`, `onerror` a další `on*`) jsou odstraněny: jde o vektor XSS.

> [!NOTE]
>
> Vlastní skripty se nikdy nenačítají na platebních stránkách, viz sekce Platební stránky níže.

## Platební stránky

Tři rodiny tras vykreslují platbu nebo do ní přímo vedou. TWICE Commerce je drží podle pravidel PCI DSS, která se na zbytek vašeho storefrontu nevztahují:

| Stránky | Cesta |
| - | - |
| **Pokladna**, včetně kroku potvrzení | `/checkout/…` |
| **Odkazy na pokladnu** odeslané z administrace | `/link/…` |
| **Portál předplatného** | `/account/…` |

Z toho vyplývají dvě věci.

**Vaše skripty tam nikdy neběží.** Tyto stránky `headScripts` zcela ignorují, takže se na žádné z nich nenačte skript, který přidáte (analytika, správce značek, chatovací widget, správce souhlasu). To zahrnuje i krok potvrzení objednávky, takže nemůžete z prohlížeče spustit sledování nákupu ve chvíli, kdy je objednávka zadána. Dokončené objednávky sledujte místo toho na straně serveru, z [webhooku](https://www.twicecommerce.com/docs/cs/concepts/integrations/webhooks.md) `order.created`.

**TWICE Commerce načítá jeden vlastní skript.** Pouze tyto stránky, a jen ony, načítají klientský monitor skriptů z `csidetm.com`. Splňuje požadavek PCI DSS v4.0 6.4.3 (inventarizace a kontrola integrity každého skriptu na platební stránce) a 11.6.1 (detekce neoprávněných zásahů do skriptů stránky a HTTP hlaviček).

TWICE Commerce jej provozuje pod jedním platformním účtem: číselný segment v jeho URL identifikuje TWICE Commerce, ne vás, a je stejný u každého obchodu. Načítá se blokujícím způsobem, takže je připraven dřív, než se spustí vlastní skripty platebního formuláře.

Ty dva jsou přesným opakem: tam, kde běží vaše skripty, monitor chybí, a tam, kde běží monitor, chybí vaše skripty. Nikdy se nenačtou na stejné stránce.

> [!NOTE]
>
> Opuštění platební stránky znovu načte celý dokument místo navigace na straně klienta, takže při přechodu zákazníka z pokladny zpět do vašeho storefrontu očekávejte úplné načtení stránky. Je to záměrné: zastaví to monitor ve chvíli, kdy zákazník opustí platební stránku.

## Použití

1. Otevřete **Vlastní skripty** v editoru Online obchodu.
2. Přidejte skript typu **Externí** nebo **Vložený**.
3. U externích skriptů zadejte adresu URL `https://` a zvolte režim načítání (`async`, `defer` nebo blokující), nebo pomocí **Vložit značku skriptu** vyplňte pole ze zkopírované značky `<script>`.
4. V případě potřeby přidejte libovolné povolené atributy (např. `data-*`, `id`, `integrity`).
5. Uložte. Skript se vyčistí a uloží a poté se při dalším načtení vloží do `<head>` storefrontu.

## Cílení na DOM ID storefrontu

Storefront zpřístupňuje dvě stabilní DOM ID, na která mohou vaše skripty v hlavičce cílit a vkládat vlastní obsah do zápatí, například odkaz na nastavení souhlasu s cookies.

| ID | Prvek | Kdy je přítomno |
| - | - | - |
| `twice-footer` | Kořen rozvržení zápatí | Vždy, když se zápatí vykreslí |
| `twice-footer-links` | Řádek odkazů na zásady | Pouze pokud je viditelný alespoň jeden odkaz na zásady |

Odkazy (`<a>`) přidané jako přímé potomky `#twice-footer-links` automaticky zdědí styl odkazů na zásady (typografii, barvu, bez podtržení). Váš skript nemusí styly motivu replikovat.

> [!WARNING]
>
> Tato ID jsou stabilní: jejich přejmenování by rozbilo skripty obchodníků. Nespoléhejte na žádnou jinou strukturu DOM nebo název třídy ve storefrontu, protože se mohou bez upozornění změnit.

### Příklad: přidání odkazu na souhlas s cookies

Tento vložený skript přidá odkaz „Nastavení cookies“ do řádku odkazů na zásady v zápatí. Počká na načtení DOM a poté vloží odkaz tak, aby vizuálně odpovídal stávajícím odkazům na zásady.

```javascript Vložený skript theme={null}
(function () {
  function addCookieLink() {
    var row = document.getElementById('twice-footer-links');
    if (!row) return;
    var link = document.createElement('a');
    link.href = '#';
    link.textContent = 'Cookie Settings';
    link.addEventListener('click', function (e) {
      e.preventDefault();
      // Replace with your consent manager's open command, e.g.:
      // window.CookieScript && window.CookieScript.instance.show();
    });
    row.appendChild(link);
  }

  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', addCookieLink);
  } else {
    addCookieLink();
  }
})();
```

> [!NOTE]
>
> Vlastní skripty se nespouští na platebních stránkách (viz sekce Platební stránky výše). Zápatí se tam také nevykresluje, takže cílení na DOM ID je omezeno na stránky storefrontu.

## Související články

> **[Vlastní CSS](https://www.twicecommerce.com/docs/cs/sales-channels/online-store/theme-editor/settings/custom-css.md)**
>
> Přidejte vlastní styly nad rámec vizuálních nastavení motivu.

> **[Přehled online obchodu](https://www.twicecommerce.com/docs/cs/sales-channels/online-store/overview.md)**
>
> Nakonfigurujte a publikujte svůj storefront.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.