Liquid drops reference — global context and store
On this page
Drops are structured data objects accessible in Liquid templates via dot notation. Every property loads lazily — data is only fetched when you first access it.
This article covers the drops and variables available on every page. For page-specific and domain drops, see the companion articles:
- Liquid drops — catalog — products, variants, traits, categories, search
- Liquid drops — cart and order — cart, order, checkout, fulfillment, promotions
- Liquid drops — content and accounts — pages, articles, menus, accounts, customers, location
Global variables
These variables are available in every template without any setup.
| Variable | Type | Description |
|---|---|---|
current_store |
StoreDrop | Store configuration and settings |
current_cart |
CartDrop | Shopping cart (nil if no cart exists yet) |
current_customer |
ContactDrop | Logged-in customer (nil if not logged in) |
current_account |
AccountDrop | Customer’s account (nil if not logged in) |
current_request |
RequestDrop | HTTP request information |
current_flash |
FlashDrop | One-time flash messages |
current_pricebook |
PricebookDrop | Active pricebook for the store |
current_privacy |
PrivacyDrop | Privacy/cookie consent settings |
current_membership |
MembershipDrop | Customer’s membership (nil if none) |
current_events |
Collection | Customer events |
Page-specific variables
These variables only resolve on their corresponding page type. They are nil on all other pages — always check before using.
| Variable | Type | Available on |
|---|---|---|
current_product |
ProductDrop | Product detail page (pages/product.liquid) |
current_product_category |
ProductCategoryDrop | Category page (pages/product_category.liquid) |
current_search |
SearchDrop | Product listing, category, and search pages |
current_page |
PageDrop | Content pages and home page (pages/page.liquid) |
current_article |
ArticleDrop | Article detail page (pages/article.liquid) |
current_article_category |
ArticleCategoryDrop | Article category page |
current_order |
OrderDrop | Order confirmation/detail page |
current_location |
LocationDrop | Location detail page |
current_location_group |
LocationGroupDrop | Location group/finder page |
current_checkout_step |
String | Checkout page (value is the step name) |
current_delivery_options |
DeliveryOptionsDrop | Checkout shipping step |
current_booking_availability |
BookingAvailabilityDrop | Booking availability page |
current_custom_form_submission |
CustomFormSubmissionDrop | Form submission confirmation |
current_subscription |
SubscriptionDrop | Subscription management page |
Global collections
| Variable | Type | Lookup key |
|---|---|---|
all_products |
Paginated collection | slug |
all_product_categories |
Paginated collection | path |
all_pages |
Paginated collection | path |
all_articles |
Paginated collection | path |
all_article_categories |
Paginated collection | path |
all_menus |
Collection | identifier |
all_content_blocks |
Collection | identifier |
all_media |
Collection | identifier |
all_custom_forms |
Paginated collection | id |
all_countries |
Collection | — |
current_breadcrumbs |
Collection | — |
Lookup by key with dot or bracket notation:
```liquid
{{ all_products.my-slug.name }} {{ all_menus.main-menu.items | size }} items {{ all_content_blocks.hero-banner.title }} ```
current_breadcrumbs is a collection of BreadcrumbDrop objects for the current page’s breadcrumb trail.
Variable stores
| Variable | Description |
|---|---|
session_variables |
Session data set with {% session %} |
store_variables |
Store-level configuration set in the CMS |
theme_variables |
Theme configuration variables |
theme_variables are key-value pairs stored with the theme. Access with dot-notation keys:
```liquid
{{ theme_variables[“products.per_page”] }} {{ theme_variables[“images.ratio.width”] }} ```
Built-in theme variable defaults (override in theme settings):
| Key | Default | Description |
|---|---|---|
products.per_page |
12 |
Products per page in listings |
articles.per_page |
12 |
Articles per page |
pages.per_page |
12 |
Pages per page |
products.comparisons |
false |
Enable product comparisons |
products.brands |
true |
Show brands on product cards |
products.card.hide_purchase_button |
false |
Hide add-to-cart on product cards |
images.ratio.width |
4 |
Default image aspect ratio width |
images.ratio.height |
5 |
Default image aspect ratio height |
product.variants.selector.buttons.maximum |
5 |
Max variant buttons before switching to dropdown |
locations.search.default_distance |
20 |
Default location search radius |
sources.available |
"products,articles,pages" |
Search source types |
StoreDrop
Store configuration and settings. Available as current_store.
| Property | Type | Description |
|---|---|---|
id |
String | Store ID |
name |
String | Store name |
code |
String | Store code |
domain |
String | Store domain |
path |
String | URL path prefix (e.g., /au) |
locale |
String | Store locale |
timezone |
String | Store timezone |
currency_code |
String | Currency code (e.g., AUD) |
currency_symbol |
String | Currency symbol (e.g., $) |
logo |
ImageDrop | Store logo |
social_image |
ImageDrop | Social media sharing image |
meta_title |
String | SEO title |
meta_description |
String | SEO description |
meta_keywords |
String | SEO keywords |
global_css |
String | Custom CSS (render in <style> tags) |
global_javascript |
String | Custom JS (render in <script> tags) |
header |
ContentBlockDrop | Header content block |
footer |
ContentBlockDrop | Footer content block |
header_menu |
MenuDrop | Header navigation menu |
footer_menu |
MenuDrop | Footer navigation menu |
navigation_categories |
Collection | Top-level product categories for navigation |
authentication_providers |
Collection | SSO authentication providers |
payment_providers |
Collection | Available payment providers |
campaigns |
Collection | Store campaigns |
scripts |
Collection | Global script blocks |
home_path |
String | Home page path |
cart_path |
String | Cart page path |
checkout_path |
String | Checkout path |
search_path |
String | Search page path |
login_path |
String | Login page path |
logout_path |
String | Logout page path |
account_path |
String | Account page path |
orders_path |
String | Account orders path |
forgot_password_path |
String | Forgot password path |
shipping_enabled? |
Boolean | Store has shipping enabled |
pickup_enabled? |
Boolean | Click & collect is enabled |
accept_terms_enabled? |
Boolean | Require T&C acceptance at checkout |
has_promotions? |
Boolean | Promotion codes are available |
has_vouchers? |
Boolean | Vouchers are available |
local_login? |
Boolean | Uses username/password login |
sso_login? |
Boolean | Uses SSO login |
display_currency? |
Boolean | Display prices in currency |
display_points? |
Boolean | Display prices in points |
data |
Hash | Custom data fields |
RequestDrop
HTTP request information. Available as current_request.
| Property | Type | Description |
|---|---|---|
path |
String | Request path including store prefix (e.g., /au/my-path) |
local_path |
String | Request path without store prefix (e.g., /my-path) |
fullpath |
String | Full path including query string |
url |
String | Full URL |
host |
String | Hostname |
protocol |
String | Request protocol (http:// or https://) |
base_url |
String | Store base URL including path prefix |
canonical_url |
String | Canonical URL for the current page |
canonical_path |
String | Canonical path without domain |
page_number |
Number | Current pagination page from query string |
params |
Hash | Query parameters |
query_string |
String | Everything after ? in the URL |
store_path |
String | Store path prefix (e.g., /au) |
ip |
String | Client IP address |
headers |
HeadersDrop | HTTP headers (sensitive headers excluded) |
content_type |
String | Response content type |
geolocation_city |
String | City from IP geolocation |
geolocation_country |
String | Country name from IP geolocation |
geolocation_country_code |
String | Two-letter country code from IP geolocation |
geolocation_latitude |
Number | Latitude from IP geolocation |
geolocation_longitude |
Number | Longitude from IP geolocation |
geolocation_region |
String | Region/state from IP geolocation |
valid_geolocation? |
Boolean | Whether geolocation lookup succeeded |
FlashDrop
One-time messages displayed after form submissions or redirects. Available as current_flash.
| Property | Type | Description |
|---|---|---|
notice |
String | Notice/success message |
alert |
String | Alert/error message |
```liquid
{% if current_flash.notice %}
{% endif %} {% if current_flash.alert %}
{% endif %} ```
PricebookDrop
A price list. Available as current_pricebook.
| Property | Type | Description |
|---|---|---|
name |
String | Pricebook name |
entries |
Collection | Price entries |
PrivacyDrop
Cookie consent settings. Available as current_privacy.
| Property | Type | Description |
|---|---|---|
groups |
Collection | Privacy groups |
show_banner? |
Boolean | Whether the consent banner should be shown |
PrivacyCookieDrop
A single cookie consent item.
| Property | Type | Description |
|---|---|---|
name |
String | Cookie name |
description |
String | Cookie description |
accepted? |
Boolean | Whether the user has accepted |
MembershipDrop
An account membership level. Available as current_membership.
| Property | Type | Description |
|---|---|---|
name |
String | Membership name |
expires_at |
DateTime | Expiration date |
BreadcrumbDrop
A breadcrumb link. Items are available via current_breadcrumbs.
| Property | Type | Description |
|---|---|---|
name |
String | Breadcrumb link text |
path |
String | Relative path (e.g., /products/shoes) |
url |
String | Full URL |
Media drops
ImageDrop
An image. All sized URLs use fit crop — scaled to fit within the maximum dimensions while preserving aspect ratio.
| Property | Type | Description |
|---|---|---|
id |
String | Image ID |
url |
String | Default image URL |
alt_text |
String | Alt text |
description |
String | Image description |
file_type |
String | File type/extension |
pico_url |
String | 16×16 — favicons, LQIP placeholders |
icon_url |
String | 32×32 — tiny icons |
tiny_url |
String | 50×50 — cart line item thumbnails |
small_url |
String | 100×100 — small thumbnails |
thumb_url |
String | 240×240 — product cards (mobile) |
medium_url |
String | 480×480 — product cards (desktop) |
large_url |
String | 640×640 — product detail images |
huge_url |
String | 1024×1024 — hero images |
massive_url |
String | 2048×2048 — retina/HiDPI hero images |
data |
Hash | Custom data fields |
```liquid
```
VideoDrop
A video.
| Property | Type | Description |
|---|---|---|
url |
String | Video URL |
title |
String | Video title |
provider |
String | Video provider (youtube, vimeo) |
video_id |
String | Provider-specific video ID |
```liquid
{% if product.videos.size > 0 %} {{ product.videos.first.video_id | youtube }} {% endif %} ```
DocumentDrop
A downloadable document.
| Property | Type | Description |
|---|---|---|
name |
String | Document name |
url |
String | Download URL |
file_type |
String | File type |
file_size |
Number | File size in bytes |
MediumDrop
A generic media item.
| Property | Type | Description |
|---|---|---|
url |
String | Media URL |
alt |
String | Alt text |
title |
String | Title |
media_type |
String | Type (image, video, etc.) |
RecordDrop
A generic record returned by the {% query %} tag. Access fields directly by name or via custom_data for custom fields.
| Property | Type | Description |
|---|---|---|
| (field name) | Any | Any accessible field value |
custom_data |
Hash | Custom data fields |
Use | cast: "TypeName" to convert a RecordDrop into its corresponding typed drop for rich property access.
StructDrop
A structured object created by the {% struct %} tag. Properties are defined when the struct is created.
ApiResponseDrop
The response object available inside an {% api %} block.
| Property | Type | Description |
|---|---|---|
status |
Number | HTTP status code |
body |
Any | Response body (auto-parsed if JSON) |
headers |
Hash | Response headers |
Was this article helpful?
Thanks for your feedback! It helps us improve our docs.