Short codes
Store Preferences
11 tokens under the preferences.* namespace. Drop these anywhere the SSR layer can see them — HTML, attribute values, JS, or CSS.
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 booleanSample:
No{{preferences.coming_soon.end_at}}any*ISO timestamp at which the coming-soon gate liftsSample:
2026-06-15T09:00:00.000ZNavigation menus 7
TokenPage bindingComponentDescription & sample
{{preferences.navigation_menus.count}}any*Number of navigation menus the merchant has configured numberSample:
2{{preferences.navigation_menus.first.id}}any*Identifier of the first navigation menuSample:
menu-header{{preferences.navigation_menus.first.name}}any*Display name of the first navigation menuSample:
Header{{preferences.navigation_menus.first.links_count}}any*Number of top-level links inside the first menu numberSample:
5{{preferences.navigation_menus.second.id}}any*Identifier of the second navigation menuSample:
menu-footer{{preferences.navigation_menus.second.name}}any*Display name of the second navigation menuSample:
Footer{{preferences.navigation_menus.second.links_count}}any*Number of top-level links inside the second menu numberSample:
0Password protection 2
TokenPage bindingComponentDescription & sample
{{preferences.password_protection.enabled}}any*"Yes" when the storefront is gated behind a password booleanSample:
No{{preferences.password_protection.note}}any*Merchant-authored note shown on the password pageSample:
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.