Přeskočit na hlavní obsah
CodeWhiskers.
E-commerce8. července 2026Lidmila Maršálková

Obchodní podmínky jako PDF v objednávkovém e-mailu na Shopify: návod zdarma

Zákon chce, aby spotřebitel dostal obchodní podmínky v textové podobě – tedy tak, aby je nemohl nikdo zpětně měnit. Odkaz na stránku e-shopu to nesplňuje, PDF v potvrzení objednávky ano. Na Shopify to vyřešíte jedním řádkem Liquid kódu, zdarma a bez aplikace.

Editor šablony Potvrzení objednávky na Shopify s kódem attach_as_pdf pro přiložení obchodních podmínek

Zákon chce, aby spotřebitel dostal obchodní podmínky v textové podobě – tedy tak, aby si je mohl uložit a nikdo mu je nemohl zpětně změnit. Odkaz na stránku e-shopu tuhle podmínku nesplňuje, protože stránku můžete kdykoliv přepsat. PDF přiložené k potvrzení objednávky ji splňuje beze zbytku. A na Shopify to vyřešíte jedním řádkem Liquid kódu, zdarma, bez aplikace a bez vývojáře.

V CodeWhiskers stavíme a spravujeme Shopify e-shopy pro české značky, a tohle je jedna z úprav, kterou děláme na každém storu, který přebíráme. Skoro nikdy tam totiž není – Shopify tu funkci má, ale nikde ji nenabízí.

Hlavní body

  • Občanský zákoník (§ 1827) ukládá vydat spotřebiteli potvrzení o smlouvě v textové podobě – na trvalém nosiči, který nejde zpětně měnit. Odkaz na web nestačí, PDF v e-mailu ano.
  • Shopify má na tohle vestavěný Liquid filtr attach_as_pdf. Funguje na všech tarifech a nepotřebujete žádnou aplikaci.
  • Celá úprava je jeden řádek na konci šablony Potvrzení objednávky: {{ shop.terms_of_service | attach_as_pdf: "Obchodní podmínky" }}.
  • Novější šablony už podobný kód obsahují – ale zabalený do podmínky, která přílohu posílá jen zákazníkům z Německa a Dánska. Stačí podmínku odstranit.
  • PDF se generuje v okamžiku odeslání e-mailu – zákazník tedy dostane přesně tu verzi podmínek, která platila při nákupu. To je právně přesně to, co chcete.
  • Jeden háček: podmínky musí být vyplněné v Nastavení → Zásady. Prázdná zásada = žádná příloha, a Shopify vás na to neupozorní.

Proč nestačí odkaz na obchodní podmínky

Podle § 1827 občanského zákoníku musí podnikatel vydat spotřebiteli bezprostředně po uzavření smlouvy potvrzení o uzavřené smlouvě v textové podobě – včetně obchodních podmínek. „Textová podoba" znamená trvalý nosič: obsah musí zůstat zachovaný tak, jak byl v okamžiku uzavření smlouvy, a spotřebitel k němu musí mít přístup i později.

Stránka /obchodni-podminky na vašem e-shopu tohle nesplňuje. Můžete ji zítra přepsat a zákazník nemá jak doložit, co platilo v den jeho nákupu. Přesně tenhle scénář řeší soudy i ČOI – a e-shop, který umí ukázat jen aktuální verzi podmínek na webu, tahá za kratší konec.

PDF přiložené k potvrzení objednávky je naopak učebnicový trvalý nosič: leží v zákazníkově schránce, vy ho zpětně nezměníte a obě strany mají stejnou verzi. Bonus navrch: působí to profesionálně a ubývá dotazů typu „jaké podmínky platily, když jsem objednával".

Pokud řešíte i další letošní povinnosti, sepsali jsme návod na tlačítko pro odstoupení od smlouvy na Shopify – obě úpravy spolu úzce souvisí a obě zvládnete za jedno odpoledne.

Krok 1: Vyplňte zásady v administraci

Filtr, který za chvíli použijeme, bere obsah PDF ze zásad obchodu. Otevřete Nastavení → Zásady a zkontrolujte, že máte vyplněné obchodní podmínky – případně i podmínky vrácení peněz a zásady přepravy, pokud je chcete přikládat taky.

Tohle je nejčastější místo, kde návod selže: pokud je zásada prázdná, Shopify prostě žádné PDF nepřiloží a nikde vám to neřekne. Žádná chyba, žádné varování, e-mail odejde bez přílohy. Zkontrolujte to dřív, než sáhnete do šablony.

Krok 2: Přidejte jeden řádek do šablony e-mailu

Otevřete Nastavení → Oznámení → Oznámení zákazníkům → Potvrzení objednávky a vpravo nahoře zvolte Upravit kód.

Nejdřív zkontrolujte, jestli tam kód už není

Novější šablony Shopify podobný kód na konci už obsahují. Vypadá takhle:

{%- if billing_address.country_code == 'DE' or billing_address.country_code == 'DK' -%}
  {%- if shop.terms_of_service.body != blank -%}
    {{ shop.terms_of_service | attach_as_pdf: "Podmínky služby" }}
  {%- endif -%}

  {%- if shop.refund_policy.body != blank -%}
    {{ shop.refund_policy | attach_as_pdf: "Zásady vrácení peněz" }}
  {%- endif -%}
{%- endif -%}

Všimněte si vnější podmínky: příloha se posílá jen zákazníkům s fakturační adresou v Německu nebo Dánsku, kde to tamní právo vyžaduje výslovně. Český zákazník žádné PDF nedostane, i když kód v šabloně je. Řešení je jednoduché – smažte první a poslední řádek (vnější if s kódy zemí a jeho endif) a nechte jen vnitřek:

{%- if shop.terms_of_service.body != blank -%}
  {{ shop.terms_of_service | attach_as_pdf: "Podmínky služby" }}
{%- endif -%}

{%- if shop.refund_policy.body != blank -%}
  {{ shop.refund_policy | attach_as_pdf: "Zásady vrácení peněz" }}
{%- endif -%}

Vnitřní podmínky != blank nechte být – jen říkají „nepřikládej prázdný dokument". Popisky v uvozovkách si klidně přejmenujte, třeba na „Obchodní podmínky". Uložte a přeskočte rovnou na testování.

Pokud tam kód není, přidejte ho

Sjeďte na úplný konec šablony a přidejte tento řádek:

{{ shop.terms_of_service | attach_as_pdf: "Obchodní podmínky" }}

Text v uvozovkách je název souboru, který zákazník uvidí v příloze – pojmenujte ho česky a srozumitelně. Uložte a máte hotovo.

Stejným způsobem můžete přiložit i další dokumenty, každý na vlastním řádku:

{{ shop.refund_policy | attach_as_pdf: "Podmínky vrácení peněz" }}
{{ shop.shipping_policy | attach_as_pdf: "Zásady přepravy" }}
{{ shop.contact_information | attach_as_pdf: "Kontaktní informace" }}

Přikládejte ale jen to, co dává smysl. E-mail se čtyřmi PDF přílohami působí jako obsílka od exekutora. Obchodní podmínky jsou povinnost, zbytek je volba.

Máte vícejazyčný e-shop?

Pokud posíláte oznámení ve více jazycích, upravte i jazykové verze šablony – místo Upravit kód zvolte Lokalizovat a stejný řádek přidejte do každé jazykové mutace. PDF se vygeneruje z odpovídající jazykové verze zásad.

Pozor na jeden vedlejší efekt úpravy šablony

Buďme upřímní, protože tohle vám Shopify při ukládání neřekne: jakmile šablonu oznámení ručně upravíte, přestane dostávat automatické aktualizace od Shopify. Když Shopify v budoucnu vylepší výchozí podobu potvrzení objednávky, vaše upravená šablona zůstane tak, jak je. U jednoho řádku na konci šablony je to zanedbatelná cena – jen o tom vězte, až se za rok budete divit, proč váš e-mail vypadá jinak než na čerstvém storu. Kdykoliv se můžete vrátit tlačítkem pro obnovení výchozí šablony (a řádek pak přidat znovu).

Krok 3: Otestujte to skutečnou objednávkou

Nevěřte tomu, dokud PDF neuvidíte ve vlastní schránce. Vytvořte testovací objednávku – klidně přes ruční objednávku v adminu s e-mailem na sebe – a zkontrolujte tři věci:

  • Příloha dorazila a jmenuje se tak, jak jste ji pojmenovali.
  • PDF jde otevřít a obsahuje aktuální znění podmínek, ne prázdnou stránku.
  • Diakritika je v pořádku – projděte pár odstavců, ať vás nepřekvapí rozsypané znaky.

Jak to funguje uvnitř (a proč je to právně elegantní)

Filtr attach_as_pdf vygeneruje PDF v okamžiku odeslání e-mailu, z aktuálního znění zásady. To znamená, že každý zákazník dostane přesně tu verzi podmínek, která platila při jeho nákupu. Když podmínky za půl roku změníte, staré objednávky mají v příloze staré znění a nové objednávky nové – přesně tak, jak to zákon zamýšlí, a bez jakékoliv práce navíc na vaší straně.

Srovnejte to s alternativami: aplikace třetí strany za pár dolarů měsíčně, ručně přikládané PDF (které někdo zapomene aktualizovat), nebo PDF nahrané v souborech e-shopu s odkazem v e-mailu (které je zase měnitelné). Jeden řádek nativního Liquid kódu je nejlevnější a zároveň právně nejčistší řešení.

Nejste si jistí, jestli vaše e-maily a podmínky obstojí? Mrkneme vám na e-shop a do 48 hodin víte, kde stojíte – konzultace je nezávazná.

Často kladené otázky

Proč posílat obchodní podmínky jako PDF, a ne jen odkaz? Občanský zákoník vyžaduje textovou podobu – trvalý nosič, který nejde zpětně měnit. Stránku na webu můžete kdykoliv přepsat, PDF v zákazníkově schránce ne. Při sporu je PDF v e-mailu důkaz, odkaz na web ne.

Potřebuji na to aplikaci nebo vývojáře? Ne. Filtr attach_as_pdf je vestavěná funkce Shopify, funguje na všech tarifech a celá úprava je jeden řádek v šabloně Potvrzení objednávky.

Můžu přiložit víc dokumentů najednou? Ano, každý na vlastním řádku – obchodní podmínky, podmínky vrácení peněz, zásady přepravy i kontaktní informace. Doporučujeme ale přikládat jen to podstatné, ať e-mail nepůsobí přeplácaně.

Co když obchodní podmínky změním? Nic nemusíte dělat. PDF se generuje při odeslání e-mailu, takže každá objednávka dostane verzi platnou v okamžiku nákupu. Přesně to po vás zákon chce.

Funguje to i pro vícejazyčný e-shop? Ano. V šabloně oznámení zvolte Lokalizovat a přidejte stejný řádek do každé jazykové verze. PDF se vygeneruje z odpovídající jazykové mutace zásad.

Proč zákazníkovi nepřišla žádná příloha? Dvě nejčastější příčiny: zásada v Nastavení → Zásady je prázdná (Shopify pak přílohu tiše vynechá, bez chyby a bez varování), nebo máte v šabloně výchozí kód od Shopify zabalený do podmínky, která přílohu posílá jen do Německa a Dánska. Zkontrolujte obojí a pošlete si testovací objednávku.

Závěr: jeden řádek, který vás kryje

Přiložení obchodních podmínek k potvrzení objednávky je vzácný případ, kdy je splnění zákonné povinnosti otázkou pěti minut. Tři věci si odneste:

  • Vyplňte zásady v Nastavení → Zásady – prázdná zásada znamená žádnou přílohu, bez varování.
  • Zkontrolujte konec šablony Potvrzení objednávky – novější šablony kód už mají, jen omezený na Německo a Dánsko. Smažte podmínku s kódy zemí, nebo přidejte řádek {{ shop.terms_of_service | attach_as_pdf: "Obchodní podmínky" }}.
  • Otestujte to skutečnou objednávkou, včetně jazykových verzí, pokud prodáváte ve více jazycích.

Pokud chcete mít jistotu, že máte e-maily, podmínky i další letošní povinnosti pokryté, domluvte si s námi nezávaznou konzultaci. Spravujeme reálné české Shopify e-shopy, tyhle úpravy děláme běžně a ozveme se do 48 hodin.

Tagy:ShopifyE-commerceLegislativaE-maily

Líbil se vám článek?

Pojďme něco postavit společně

Web, aplikace nebo Shopify e‑shop. Do 48 hodin odpovídá člověk, ne robot.

Nezávazná konzultace →