# Liquid drops reference — global context and store

Source: https://support.storeconnect.com/articles/liquid-drops-reference-global · Last modified 21 August 2026

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](liquid-drops-reference-catalog) — products, variants, traits, categories, search
- [Liquid drops — cart and order](liquid-drops-reference-cart-order) — cart, order, checkout, fulfillment, promotions
- [Liquid drops — content and accounts](liquid-drops-reference-content) — 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 %}
  <div class="alert alert-success">{{ current_flash.notice }}</div>
{% endif %}
{% if current_flash.alert %}
  <div class="alert alert-danger">{{ current_flash.alert }}</div>
{% 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

<img
  src="{{ product.image.medium_url }}"
  srcset="{{ product.image.thumb_url }} 240w, {{ product.image.medium_url }} 480w, {{ product.image.large_url }} 640w"
  alt="{{ product.image.alt_text }}">
```


### 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 |

---

## Follow StoreConnect

- [Email Newsletter](https://getstoreconnect.com/c/lp-newsletter)
- [LinkedIn Newsletter](https://www.linkedin.com/build-relation/newsletter-follow?entityUrn=7444956928444862464)
- [YouTube](https://www.youtube.com/channel/UCngKdP2x8l1wcbAKW3tvU8g)
- [LinkedIn](https://www.linkedin.com/company/storeconnect)
- [X / Twitter](https://x.com/storeconnecthq)

## Popular Links

- [Partners](https://getstoreconnect.com/partners)
- [News](https://getstoreconnect.com/articles/news)
- [Events](https://getstoreconnect.com/articles/events)
- [Feature Comparison](https://getstoreconnect.com/how-we-compare)
- [Download a free trial](https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000FMkeKUAT)
- [Book a Demo](https://getstoreconnect.com/contact)

## Documentation

- [Help documentation](https://support.storeconnect.com/help-documentation)
- [AI agents](https://support.storeconnect.com/ai)
- [Videos & tutorials](https://support.storeconnect.com/videos-tutorials)
- [Developer reference](https://support.storeconnect.com/developer-reference)
- [Release notes](https://support.storeconnect.com/release-notes)
- [Troubleshooting](https://support.storeconnect.com/troubleshooting)
- [Trust Center](https://trust.getstoreconnect.com/)
- [Status Page](https://status.storeconnect.com/)

## Contact

- info@getstoreconnect.com
- US +1 415 745 3230
- AUS +61 2 8365 2308

100 S Ashley Dr, Suite 600-2461
Tampa FL 33602-600 USA

Level 22, Sydney Place
180 George Street
Sydney, NSW, 2000, AUS

---

StoreConnect Support — https://support.storeconnect.com/articles/liquid-drops-reference-global