Návod pro PrestaShop 1.7+ a 8.x: server-side tracking přes DataNostro bez vlastního modulu. Používáme oficiální PrestaShop GTM modul + standardní GA4 datalayer hooks.
Pro koho je tenhle návod
- PrestaShop 1.7.6+ nebo 8.x (datalayer hooks jsou standardní od 1.7.6)
- Doba: 60–90 minut první nastavení
- Předpokládá FTP nebo SSH přístup pro úpravu thematu
Co budeš potřebovat
- PrestaShop admin přístup (Super Admin role)
- Účet v Google Tag Manager — web + sGTM container
- DNS přístup pro tracking subdoménu
- DataNostro účet a vytvořený kontejner
Krok 1 — Nainstaluj GTM modul
PrestaShop nemá oficiální GTM modul od PrestaShop SA, ale existuje široce používaný komunitní:
- Lightweight GTM Module (free) — od Webwizards (search v PrestaShop Addons marketplace).
- Google Tag Manager Pro (paid, ~30 €) — od Idnovate, lepší WooCommerce-style datalayer.
Pokud nechceš modul, viz alternativní přístup níže (přímá úprava themu).
- Admin → Modules → Module Manager → Upload → nahraj ZIP.
- Po instalaci → Configure → vlož svoje GTM Container ID (
GTM-XXXXXX). - Zaškrtni Enable Enhanced Ecommerce a GA4-format datalayer (pokud volba existuje).
Krok 1 (alternativa) — Bez modulu, přes theme
Pokud chceš mít plnou kontrolu nad datalayerem, můžeš to udělat ručně:
- FTP / SSH do
themes/<your-theme>/templates/_partials/a otevřihead.tpl. - Hned za
{block name="head_seo"}vlož GTM snippet:<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-XXXXXX');</script> - Pro datalayer eventy vytvoř
dataLayer.tplpartial a inkluduj vproduct.tpl,cart.tpl,order-confirmation.tpl. Příklad pro purchase event (order-confirmation.tpl):<script> window.dataLayer = window.dataLayer || []; window.dataLayer.push({ event: "purchase", ecommerce: { transaction_id: "{$order.reference}", value: {$order.total_paid|escape:'javascript':'UTF-8'}, currency: "{$currency.iso_code}", tax: {$order.total_tax|escape:'javascript':'UTF-8'}, shipping: {$order.total_shipping|escape:'javascript':'UTF-8'}, items: [ {foreach $products as $p} { item_id: "{$p.id_product}", item_name: "{$p.name|escape:'javascript':'UTF-8'}", price: {$p.unit_price_tax_incl|escape:'javascript':'UTF-8'}, quantity: {$p.product_quantity}, }, {/foreach} ], }, }); </script>
Tahle ruční varianta dá víc práce, ale máš přesně takový datalayer, jaký GTM workspace očekává. Modul z kroku 1 emituje formát, který možná musíš v GTM transformovat.
Krok 2 — Deployni sGTM kontejner v DataNostro
- V Google Tag Manager vytvoř nový Server container.
- Admin → Export Container → JSON.
- DataNostro dashboard → Kontejnery → Vytvořit nový → upload JSON.
- DataNostro vrátí URL endpointu + DNS pokyny.
Krok 3 — DNS
U DNS providera přidej CNAME na tracking subdoménu (např. track.tvujeshop.cz) → cíl containers.datanostro.com.
Krok 4 — Přepni GA4 / Meta na sGTM
V GTM web containeru:
- GA4 Configuration tag → Fields to Set:
server_container_url = https://track.tvujeshop.cz - Stejně pro každý GA4 Event tag (purchase, add_to_cart, view_item, …).
- (Volitelně) Meta Pixel tag → Advanced Settings → Use server-side endpoint = same URL.
- Submit → Publish.
Krok 5 — Připoj platformy v DataNostro
Standardní postup — GA4, Meta CAPI, Sklik, Heureka. Přesné kroky viz Setup platforem.
Krok 6 — Test
- Vytvoř testovací produkt za 1 Kč v PrestaShop admin.
- Udělej kompletní nákup (přidej do košíku → checkout → potvrzení).
- V DataNostro Aktivita ověř, že přišly všechny 4 eventy:
view_item,add_to_cart,begin_checkout,purchase. - V GA4 DebugView ověř shodu hodnot (value, items, transaction_id).
Časté problémy
„Komunitní GTM modul má bugy"
Lightweight GTM Module je dobrý starting point, ale jeho datalayer formát může být zastaralý (UA-style). Pokud tvůj GTM workspace očekává GA4 events (view_item, purchase), buď:
- Použij placený modul s GA4 podporou (Idnovate)
- Nebo přidej v GTM workspace transformační tag, který UA → GA4 mapuje
- Nebo přepiš na ruční variantu z kroku 1 (alternativa)
„Purchase event vidím dvakrát (duplicate)"
Pokud máš nainstalovaný GTM modul i ruční datalayer push v order-confirmation.tpl, oba emitují purchase event. Vyber jeden přístup a druhý odstraň.
„PrestaShop cache schovává změny v theme"
Po úpravě .tpl souborů admin → Advanced → Performance → Clear cache. Pokud používáš Smarty cache (default on), bez vyčištění tvoje změny ničí.
Další kroky
- Sklik native setup — místo ručních HTTP requestů
- Meta CAPI deduplication
- Power-Ups — Cookie Keeper, Bot Detection