Overview

11 tokens under the preferences.* scope. Resolves on every page.

Usage

Drop a token anywhere the SSR layer will see it — HTML body, attribute value, inline JS, or inline CSS.

Inline in markup

<mmm-pdp-title>{{preferences.password_protection.enabled}}</mmm-pdp-title>
<!-- rendered -> -->
<mmm-pdp-title>No</mmm-pdp-title>

Inside attribute values

<a href="/p/{{pdp.slug}}" title="Buy {{pdp.title}} for {{pdp.price}}">Shop</a>

Coming soon 2

TokenPage bindingComponentDescription & sample
{{preferences.coming_soon.enabled}}any*"Yes" when the coming-soon gate is on boolean
Sample: No
{{preferences.coming_soon.end_at}}any*ISO timestamp at which the coming-soon gate lifts
Sample: 2026-06-15T09:00:00.000Z

Navigation menus 7

TokenPage bindingComponentDescription & sample
{{preferences.navigation_menus.count}}any*Number of navigation menus the merchant has configured number
Sample: 2
{{preferences.navigation_menus.first.id}}any*Identifier of the first navigation menu
Sample: menu-header
{{preferences.navigation_menus.first.name}}any*Display name of the first navigation menu
Sample: Header
{{preferences.navigation_menus.first.links_count}}any*Number of top-level links inside the first menu number
Sample: 5
{{preferences.navigation_menus.second.id}}any*Identifier of the second navigation menu
Sample: menu-footer
{{preferences.navigation_menus.second.name}}any*Display name of the second navigation menu
Sample: Footer
{{preferences.navigation_menus.second.links_count}}any*Number of top-level links inside the second menu number
Sample: 0

Password protection 2

TokenPage bindingComponentDescription & sample
{{preferences.password_protection.enabled}}any*"Yes" when the storefront is gated behind a password boolean
Sample: No
{{preferences.password_protection.note}}any*Merchant-authored note shown on the password page
Sample: We are still setting things up — drop us your email and we will let you know once we open.

Tips

  • Tokens are case-sensitive — {{preferences.title}} resolves; {{PREFERENCES.TITLE}} does not.
  • Whitespace inside the braces is tolerated: {{ preferences.title }} works identically.
  • Unresolvable tokens fall through as empty strings rather than rendering the raw placeholder, so missing-data states stay clean.