Alle Objekte, die eine Vorlage bekommt

Die vollständige Liste — was nicht darin steht, ist im Template leer, ohne Fehlermeldung.

Für Entwickler

Voraussetzungen

  • Recht: website:write

Der Kontext ist eine feste Liste. Ein Schlüssel, der hier fehlt, ist im Template still leer — und weil unbekannte Variablen nicht bemängelt werden, merkt man es erst am fehlenden Text.

Überall verfügbar: `restaurant`, `settings`, `brand`, `widget`, `analytics`, `page_title`, `page_meta`, `locale`, `locales`, `now`, `menus`, `menus_by_id`, `opening_hours_sets`, `opening_hours_sets_by_id`, `navigation_menus`, `navigation_menus_by_id`, `navigation_menus_by_handle`, `products` und `products_by_id`.

Nur im Layout dazu: `content_for_layout` und `sections`.

Nur innerhalb eines Abschnitts dazu: `section` und `sections`.

Beim Rendern einer Asset-Datei mit der Endung `.liquid` steht NUR die allgemeine Liste bereit — kein `section`, kein `sections`, kein `content_for_layout`. Eine `theme.css.liquid` kommt also an die Theme-Einstellungen heran, nicht aber an einen einzelnen Abschnitt.

Diese Objekte gibt es hier NICHT, auch wenn andere Liquid-Welten sie kennen: `page`, `product`, `collection`, `cart`, `customer`, `shop`, `request`, `routes`, `template` und `linklists`. Die Entsprechungen heissen `page_title` und `page_meta`, `products`, `navigation_menus` sowie `restaurant`.

Für die Buchung gibt es keine eigene Variable: Der Link zur Buchungsstrecke steht als `restaurant.booking_url`, die einzubettende Adresse als `widget.embed_url`.

Codebeispiele

Alles auf einen Blick — der Diagnose-Schnipsel
Liquid
restaurant.name = {{ restaurant.name }}settings.color_accent = {{ settings.color_accent }}brand.primary = {{ brand.primary }}locale = {{ locale }}now = {{ now | date: '%d.%m.%Y' }}page_title = {{ page_title }}widget.display_mode = {{ widget.display_mode }}analytics.enabled = {{ analytics.enabled }}products.size = {{ products.size }}menus.size = {{ menus.size }}navigation_menus.size = {{ navigation_menus.size }}opening_hours_sets.size = {{ opening_hours_sets.size }}
Legen Sie sich diesen Block für die Fehlersuche beiseite. Er beantwortet in einem Durchgang die Frage, die man sonst durch Ausprobieren beantwortet: Was steht an dieser Stelle wirklich zur Verfügung?
Diese Objekte gibt es nicht — und sie schweigen
Liquid
[{{ page.title }}][{{ product.price }}][{{ collection.title }}][{{ cart.item_count }}][{{ customer.name }}][{{ shop.name }}][{{ request.path }}][{{ routes.root_url }}][{{ template }}][{{ linklists.main_menu.title }}]
Zehn vertraute Namen aus anderen Liquid-Welten, zehnmal nichts — ohne Fehlermeldung. Die Entsprechungen heissen hier `page_title` und `page_meta`, `products`, `menus`, `navigation_menus` und `restaurant`. Ein Buchungsobjekt gibt es nicht: der Link zur Buchungsstrecke ist `restaurant.booking_url`, die einzubettende Adresse `widget.embed_url`.

Wo im Dashboard

/restaurant/[slug]/website/themes/[id]/code

Im Dashboard öffnen