Rozebrali jsme téma Online Store 2.0 jednoho obchodu, který dlouhodobě spravujeme, po čtyřech letech úprav několika dodavateli. Na disku mělo 807 souborů a 18 MB. Zajímavější je ale jiná dvojice čísel: 323 šablon ve formátu JSON popisovalo jen 193 různých struktur (vlastní rozbor lokální kopie tématu, 27. 8. 2026).
Sto třicet šablon navíc tam nevzniklo omylem. Vznikly proto, že se opakovaně řešila jednorázová věc trvalým způsobem - a to je nemoc, kterou lze změřit dřív, než se projeví na ceně každé další úpravy.
Struktura, ne soubor: jak se to počítá
Struktura šablony je množina typů sekcí, které jsou v šabloně zapnuté. Dvě šablony se stejnou strukturou dělají totéž a liší se jen nastavením: obrázkem, nadpisem, barvou.
Když je struktur zhruba tolik jako souborů, je téma v pořádku - každá šablona popisuje jiný typ stránky. Když je struktur výrazně méně, je to signál, že se obsah ukládá do šablon místo do dat.
Nejjasnější případ z rozboru: 67 šablon kategorií mělo naprosto shodnou trojici sekcí a lišilo se čtyřmi hodnotami - obrázkem pro desktop, obrázkem pro mobil, nadpisem a jeho barvou.
Banner se udělal šablonou místo pole v administraci
Těch 67 souborů má jednu příčinu a je to rozhodnutí, ne nedbalost. Někdo potřeboval jinou hlavičku u jedné kategorie, nejrychlejší cesta byla zkopírovat šablonu, a to zafungovalo. Podruhé taky. Po šedesáti sedmi opakováních vznikl systém, který nikdo nenavrhl.
Správné řešení je jedna šablona a čtyři metapole na kolekci. Obsah pak patří kolekci, kde ho může měnit obsluha obchodu, a ne souboru, na který je potřeba vývojář.
Rozdíl v provozu je konkrétní. Změna rozložení bannerů se v prvním případě dělá v jednom souboru, ve druhém v šedesáti sedmi - a šedesát sedm ručních úprav znamená, že se na tři z nich zapomene.
Téma po čtyřech letech: co v něm vlastně je
| Prvek tématu | Počet | Z toho mrtvých |
|---|---|---|
| Sekce | 149 | 34 |
| Snippety | 102 | 31 |
| Šablony | 341 | - |
| Soubory v assets/ | 138 | 15 (312 kB) |
| Soubory lokalizací | 52 | - |
| Theme blocks | 19 | - |
Mrtvý znamená, že se název souboru nevyskytuje nikde jinde v tématu: sekci nevolá žádná šablona ani {% section %}, snippet žádný render ani include. Není to odhad, je to vyhledání řetězce přes celou složku.
Skoro každá čtvrtá sekce a skoro každý třetí snippet byly k ničemu. Cena za ně se neplatí v rychlosti - do stránky se nedostanou - ale v čase. Vývojář, který má najít místo pro novou funkci, prochází i těch 65 souborů.
723 vypnutých sekcí lže o tom, co je na stránce
V JSON šablonách zůstávají i sekce s "disabled": true. Vypadají jako součást stránky, ale nevykreslí se. V rozebíraném tématu jich bylo 723 z 3 192 vložených sekcí, tedy 22,6 %.
Jeden nález z téhle skupiny stojí za samostatný odstavec. Sekce main-page, tedy ta, která vypisuje text stránky zadaný v administraci, byla vypnutá ve 136 šablonách stránek ze 137.
Prakticky to znamená, že stížnost „opravil jsem text v administraci a na webu se nezměnil“ nebyla chyba mezipaměti ani překladů. Byl to důsledek. Než začnete hledat příčinu v cache, ověřte, jestli sekce, která ten obsah vypisuje, není vypnutá.
Nepřeloženo 50 %? Polovina toho čísla nikdy nepůjde na web
Tohle je past, do které spadne každý, kdo spočítá lokalizace hromadně. Téma mělo 52 souborů překladů a hrubý výpočet dával 50 až 58 % nepřeložených řetězců.
Po rozdělení vypadá výsledek jinak. 24 souborů mělo přesně stejný počet chybějících klíčů, 264 z 564 - to je poznávací znamení lokalizace, se kterou nikdo nikdy nehnul, tedy jazyků, které obchod nepublikuje. U pěti skutečně používaných jazyků chybělo 8 až 12 %.
Rozdíl mezi „polovina tématu není přeložená“ a „u živých jazyků chybí desetina“ je rozdíl mezi dvěma různými nabídkami. Nikdy neposílejte klienta s hrubým číslem, dokud lokalizace nerozdělíte na publikované a stokové.
Rozvětvené šablony se vrátí při druhém trhu
Dokud má obchod jednu prodejnu, je nadbytek šablon otravný, ale zvládnutelný. Při druhé prodejně se z něj stane náklad, který nikdo nerozpočtoval.
Na živé dvojici prodejen jsme naměřili, že 255 z 264 společných šablon se mezi trhy rozešlo (porovnání exportů obou témat, 26. 7. 2026). Sto třicet šablon navíc znamená sto třicet míst, kde se dva obchody mohou lišit - a liší se, protože každou opravu musí někdo udělat dvakrát.
Redukce na metapole tenhle problém neřeší jen zpětně, ale hlavně dopředu: co není šablona, se nemůže rozejít.
Pět otázek, kterými poznáte, že jste na téhle cestě
Odpověď „ano“ u dvou a více z nich znamená, že se téma vymklo a úklid se vyplatí dřív než další funkce.
- Vzniká nová šablona, když se má změnit obrázek nebo nadpis?
- Je v templates/ víc souborů než v sections/ a snippets/ dohromady?
- Musí obsluha volat vývojáře kvůli textu na kategorii?
- Bojí se někdo smazat soubor, protože není jisté, co ho volá?
- Dělá se stejná oprava ve dvou prodejnách zvlášť?
Nejrychlejší způsob, jak si to ověřit ve stažené kopii tématu:
ls templates/*.json | wc -l # kolik je šablon
rg -c '"disabled": true' templates/*.json # kolik sekcí je vypnutých
rg -o '"type": "[^"]+"' templates/*.json | sort -u | wc -l # typy sekcí
Když třetí číslo vyjde výrazně menší než první, řešíte to, o čem je celý tenhle článek.
Co dělat místo šablon
Postup má čtyři kroky a záměrně nekončí smazáním. Nejdřív se totiž musí zjistit, co je živé.
- Změřte strukturu, ne počet souborů. Seskupte šablony podle množiny typů sekcí. Skupiny s víc než pěti soubory jsou kandidáti na sloučení.
- Odlište proměnlivé od strukturního. Obrázek, nadpis, barva a odkaz patří do metapolí kolekce nebo produktu. Do šablony patří jen to, co mění rozložení.
- Sloučené šablony nasazujte po skupinách a po každé skupině zkontrolujte kategorie na webu. Sloučení sedmdesáti šablon naráz se nedá ověřit.
- Mrtvý kód mažte až nakonec, s vyhledáním názvu přes celé téma a se zálohou. Sekce, kterou nikdo nevolá, může být volaná z aplikace.
Theme blocks tenhle problém řeší přímo: rozložení se skládá v editoru, místo aby se pro každou variantu zakládal soubor. V rozebíraném tématu jich bylo 19, tedy nástroj byl k dispozici - jen se nepoužil.
Co za úklid zaplatíte
Je fér říct to nahlas. Úklid tématu není vidět. Nepřidá funkci, nezmění design, na screenshotu před a po je totéž. Prodává se špatně a právě proto se odkládá, dokud není každá úprava dvakrát dražší.
Vrátí se až při další objednávce, kdy se práce udělá rychleji, protože je jasné, co je živé. To je návratnost v řádu měsíců, ne dnů, a když vám ji někdo slibuje jinak, počítá vám jiný projekt.
Druhá strana kompromisu: sloučení šablon odebere obsluze možnost naklikat výjimku bez vývojáře. Metapole jsou pořádek, ale i mantinel, a někomu ten mantinel bude vadit.
Přebíráme témata po jiných dodavatelích
Pošlete nám adresu obchodu nebo export tématu. Vrátíme počet šablon proti počtu struktur, seznam mrtvých sekcí a snippetů a odhad, kolik z toho jde sloučit bez zásahu do vzhledu.
Co na Shopify stavíme a co při převzetí kontrolujeme, najdete na stránce tvorba e-shopu na Shopify. Když vás zajímá spíš rychlost, začněte článkem o tom, proč je rychlý Shopify pomalý, a o auditu aplikací.
Napište na info@lamapixel.com nebo volejte +420 775 599 009.