Documentation Index
Fetch the complete documentation index at: https://docs.launchmystore.io/llms.txt
Use this file to discover all available pages before exploring further.
Global Objects
Global objects are available in every template. They provide access to store data, cart contents, customer information, and more.
shop
The store’s settings and information.
{{ shop.name }}
{{ shop.email }}
{{ shop.currency.iso_code }}
| Property | Type | Description |
|---|
shop.name | string | Store name |
shop.email | string | Store contact email |
shop.phone | string | Store phone number |
shop.description | string | Store description |
shop.domain | string | Primary domain |
shop.permanent_domain | string | .launchmystore.io subdomain |
shop.url | string | Full store URL |
shop.currency | object | Default currency (iso_code, symbol, name) |
shop.enabled_currencies | array | List of enabled currency codes |
shop.money_format | string | Price format template |
shop.money_with_currency_format | string | Price format with currency |
shop.locale | string | Default locale code |
shop.published_locales | array | Available locales |
shop.products_count | number | Total products |
shop.collections_count | number | Total collections |
shop.vendors | array | List of vendor names |
shop.types | array | List of product types |
shop.customer_accounts_enabled | boolean | Customer accounts enabled |
shop.customer_accounts_optional | boolean | Accounts optional (not required) |
shop.accepts_gift_cards | boolean | Gift cards enabled |
shop.address | object | Store address |
shop.enabled_payment_types | array | Payment methods (visa, mastercard, etc.) |
shop.brand | object | Brand settings (colors, logo) |
shop.policies | array | Legal policies |
shop.metafields | object | Custom metafields |
product
Available on product pages. Contains all product data.
{{ product.title }}
{{ product.price | money }}
{% for variant in product.variants %}
{{ variant.title }} - {{ variant.price | money }}
{% endfor %}
| Property | Type | Description |
|---|
product.id | string | Product ID |
product.title | string | Product name |
product.handle | string | URL-safe handle |
product.description | string | HTML description |
product.price | number | Current price |
product.compare_at_price | number | Original price (if on sale) |
product.available | boolean | In stock |
product.vendor | string | Vendor/brand name |
product.type | string | Product type |
product.tags | array | Product tags |
product.images | array | All product images |
product.featured_image | object | Main image |
product.variants | array | Product variants |
product.options | array | Option names (Size, Color, etc.) |
product.options_with_values | array | Options with all values |
product.selected_variant | object | Currently selected variant |
product.selected_or_first_available_variant | object | Selected or first available |
product.price_min | number | Lowest variant price |
product.price_max | number | Highest variant price |
product.price_varies | boolean | Has price range |
product.url | string | Product URL |
product.collections | array | Associated collections |
product.metafields | object | Custom metafields |
Variant Object
{% assign variant = product.selected_or_first_available_variant %}
{{ variant.title }}
{{ variant.sku }}
{{ variant.price | money }}
| Property | Type | Description |
|---|
variant.id | string | Variant ID |
variant.title | string | Variant title |
variant.price | number | Variant price |
variant.compare_at_price | number | Compare at price |
variant.available | boolean | In stock |
variant.sku | string | SKU |
variant.barcode | string | Barcode |
variant.weight | number | Weight value |
variant.weight_unit | string | Weight unit (kg, lb, etc.) |
variant.option1 | string | First option value |
variant.option2 | string | Second option value |
variant.option3 | string | Third option value |
variant.options | array | All option values |
variant.image | object | Variant-specific image |
variant.inventory_quantity | number | Stock quantity |
variant.inventory_policy | string | continue or deny |
variant.requires_shipping | boolean | Physical product |
variant.metafields | object | Custom metafields |
collection
Available on collection pages. Contains collection data and products.
<h1>{{ collection.title }}</h1>
<p>{{ collection.products_count }} products</p>
{% for product in collection.products %}
{{ product.title }}
{% endfor %}
| Property | Type | Description |
|---|
collection.id | string | Collection ID |
collection.title | string | Collection name |
collection.handle | string | URL-safe handle |
collection.description | string | HTML description |
collection.image | object | Collection image |
collection.products | array | Products in collection |
collection.products_count | number | Total products |
collection.all_products_count | number | Products (ignoring filters) |
collection.url | string | Collection URL |
collection.filters | array | Available filters |
collection.sort_options | array | Sort options |
collection.sort_by | string | Current sort |
collection.default_sort_by | string | Default sort |
collection.metafields | object | Custom metafields |
Filters
{% for filter in collection.filters %}
<div class="filter">
<h4>{{ filter.label }}</h4>
{% for value in filter.values %}
<label>
<input type="checkbox"
name="{{ filter.param_name }}"
value="{{ value.value }}"
{% if value.active %}checked{% endif %}>
{{ value.label }} ({{ value.count }})
</label>
{% endfor %}
</div>
{% endfor %}
| Property | Type | Description |
|---|
filter.id | string | Filter ID |
filter.label | string | Display label |
filter.type | string | boolean, list, price_range |
filter.param_name | string | URL parameter name |
filter.values | array | Filter values |
filter.active_values | array | Currently selected values |
cart
The customer’s shopping cart.
{% if cart.item_count > 0 %}
{% for item in cart.items %}
{{ item.title }} x {{ item.quantity }}
{% endfor %}
<strong>Total: {{ cart.total_price | money }}</strong>
{% else %}
Your cart is empty
{% endif %}
| Property | Type | Description |
|---|
cart.token | string | Cart ID/token |
cart.item_count | number | Total items |
cart.items | array | Line items |
cart.total_price | number | Cart total |
cart.total_weight | number | Total weight |
cart.currency | object | Cart currency |
cart.note | string | Order notes |
cart.attributes | object | Cart attributes |
cart.empty? | boolean | Is cart empty |
cart.requires_shipping | boolean | Has physical items |
Line Item Object
| Property | Type | Description |
|---|
item.id | string | Line item ID |
item.product_id | string | Product ID |
item.variant_id | string | Variant ID |
item.product | object | Full product object |
item.title | string | Full title (product + variant) |
item.product_title | string | Product title only |
item.variant_title | string | Variant title only |
item.quantity | number | Quantity |
item.price | number | Unit price |
item.line_price | number | Total (price x quantity) |
item.original_price | number | Price before discounts |
item.original_line_price | number | Line total before discounts |
item.sku | string | SKU |
item.image | object | Line item image |
item.url | string | Product URL with variant |
item.properties | object | Custom properties |
item.options_with_values | array | Selected options |
customer
Available when a customer is logged in.
{% if customer %}
Welcome back, {{ customer.first_name }}!
You've placed {{ customer.orders_count }} orders.
{% else %}
<a href="/account/login">Log in</a>
{% endif %}
| Property | Type | Description |
|---|
customer.id | string | Customer ID |
customer.email | string | Email address |
customer.first_name | string | First name |
customer.last_name | string | Last name |
customer.name | string | Full name |
customer.phone | string | Phone number |
customer.accepts_marketing | boolean | Marketing opt-in |
customer.orders_count | number | Total orders |
customer.total_spent | number | Lifetime value |
customer.orders | array | Order history |
customer.default_address | object | Default address |
customer.addresses | array | All addresses |
customer.tags | array | Customer tags |
customer.created_at | timestamp | Account created |
customer.metafields | object | Custom metafields |
article
Available on blog article pages.
<article>
<h1>{{ article.title }}</h1>
<p>By {{ article.author }} on {{ article.published_at | date: '%B %d, %Y' }}</p>
{{ article.content }}
</article>
| Property | Type | Description |
|---|
article.id | string | Article ID |
article.title | string | Article title |
article.handle | string | URL handle |
article.author | string | Author name |
article.content | string | HTML content |
article.excerpt | string | Article excerpt |
article.excerpt_or_content | string | Excerpt or truncated content |
article.image | object | Featured image |
article.published_at | timestamp | Publish date |
article.updated_at | timestamp | Last updated |
article.tags | array | Article tags |
article.url | string | Article URL |
article.blog | object | Parent blog |
article.comments_count | number | Comment count |
article.comments | array | Comments |
article.comments_enabled? | boolean | Comments enabled |
article.metafields | object | Custom metafields |
blog
Available on blog listing pages.
| Property | Type | Description |
|---|
blog.id | string | Blog ID |
blog.title | string | Blog title |
blog.handle | string | URL handle |
blog.url | string | Blog URL |
blog.articles | array | Blog articles |
blog.articles_count | number | Total articles |
blog.all_tags | array | All article tags |
blog.tags | array | Tags in current view |
blog.comments_enabled? | boolean | Comments enabled |
blog.metafields | object | Custom metafields |
page
Available on custom pages.
| Property | Type | Description |
|---|
page.id | string | Page ID |
page.title | string | Page title |
page.handle | string | URL handle |
page.content | string | HTML content |
page.url | string | Page URL |
page.author | string | Author |
page.template_suffix | string | Template variant |
page.metafields | object | Custom metafields |
search
Available on search results pages.
{% if search.performed %}
<p>{{ search.results_count }} results for "{{ search.terms }}"</p>
{% for result in search.results %}
{% if result.object_type == 'product' %}
{{ result.title }} - {{ result.price | money }}
{% elsif result.object_type == 'article' %}
{{ result.title }} - {{ result.published_at | date: '%B %d' }}
{% endif %}
{% endfor %}
{% endif %}
| Property | Type | Description |
|---|
search.performed | boolean | Search was executed |
search.terms | string | Search query |
search.results | array | Search results |
search.results_count | number | Total results |
search.types | array | Result types to include |
linklists
Navigation menus defined in the theme.
{% for link in linklists.main-menu.links %}
<a href="{{ link.url }}">{{ link.title }}</a>
{% if link.links.size > 0 %}
<ul>
{% for child in link.links %}
<li><a href="{{ child.url }}">{{ child.title }}</a></li>
{% endfor %}
</ul>
{% endif %}
{% endfor %}
| Property | Type | Description |
|---|
linklist.handle | string | Menu handle |
linklist.title | string | Menu title |
linklist.links | array | Top-level links |
linklist.levels | number | Nesting depth |
Link Object
| Property | Type | Description |
|---|
link.title | string | Link text |
link.url | string | Link URL |
link.active | boolean | Current page |
link.child_active | boolean | Child is current page |
link.current | boolean | Exact match |
link.links | array | Child links |
link.levels | number | Child depth |
link.type | string | Link type |
link.object | object | Linked object (product, collection, etc.) |
settings
Theme settings from config/settings_data.json.
<style>
:root {
--color-primary: {{ settings.color_primary }};
--font-body: {{ settings.type_body_font | font_property: 'family' }};
}
</style>
{% if settings.show_announcement_bar %}
<div class="announcement">{{ settings.announcement_text }}</div>
{% endif %}
Settings are defined in config/settings_schema.json and accessed via settings.{setting_id}.
request
Information about the current request.
| Property | Type | Description |
|---|
request.host | string | Current domain |
request.origin | string | Full origin URL |
request.path | string | URL path |
request.page_type | string | Template type |
request.design_mode | boolean | In theme editor |
request.locale | object | Current locale |
localization
Country, currency, and language settings.
<select name="country">
{% for country in localization.available_countries %}
<option value="{{ country.iso_code }}"
{% if country == localization.country %}selected{% endif %}>
{{ country.name }} ({{ country.currency.iso_code }})
</option>
{% endfor %}
</select>
| Property | Type | Description |
|---|
localization.available_countries | array | Enabled countries |
localization.available_languages | array | Enabled languages |
localization.country | object | Current country |
localization.language | object | Current language |
localization.market | object | Current market |
recommendations
Product recommendations (on product pages).
{% if recommendations.products.size > 0 %}
<h2>You may also like</h2>
{% for product in recommendations.products %}
{% render 'product-card', product: product %}
{% endfor %}
{% endif %}
| Property | Type | Description |
|---|
recommendations.products | array | Recommended products |
recommendations.products_count | number | Number of recommendations |
recommendations.performed? | boolean | Recommendations loaded |
recommendations.intent | string | related, complementary |
Other Objects
template
{% if template == 'product' %}
Product page specific content
{% endif %}
{{ template.name }}
{{ template.suffix }}
section
Access current section data within a section file.
<section id="{{ section.id }}" class="{{ section.settings.custom_class }}">
{% for block in section.blocks %}
{{ block.settings.title }}
{% endfor %}
</section>
block
Access current block data within a block iteration.
{% for block in section.blocks %}
<div {{ block.lms_attributes }}>
{{ block.settings.heading }}
</div>
{% endfor %}
Available inside {% form %} tags.
{% form 'contact' %}
{{ form.errors | default_errors }}
{{ form.posted_successfully? }}
{% endform %}
paginate
Available inside {% paginate %} blocks.
{% paginate collection.products by 12 %}
{{ paginate.pages }}
{{ paginate.current_page }}
{{ paginate.previous.url }}
{{ paginate.next.url }}
{% endpaginate %}