Skip to main content

Policy & Legal Pages

Policy text is written by the seller in dashboard Configure (store settings). The theme only renders it — never hardcode legal copy in theme files.

Route map (do not mix runtimes)

Footer and nav links must use the runtime paths (shopUrl / React Router). Vite /privacy is not the same as Nunjucks /privacy-policy.

Vite

Reference: templates/markt-vite-storefrontLegalPolicyPage + ProductRichText.
policyKey: privacyPolicy | termsOfService | refundPolicy. Register routes in App.tsx:

Nunjucks

Template filename = router templateNametemplates/{name}.njk.
Wrong (will not resolve): privacy.njk, refunds.njk, or linking to /privacy / /refunds on a Nunjucks store. Footer example:
Because autoescape is false, do not put policy HTML into attributes. For meta tags, strip/encode — see Nunjucks Pitfalls.

Empty and loading states

  • Missing policy → short empty message (same idea as Vite emptyMessage)
  • Do not invent placeholder legal text

See also