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