{"title":"Using global Liquid tags","slug":"liquid-how-to-global-tags","url":"https://support.storeconnect.com/articles/liquid-how-to-global-tags","url_markdown":"https://support.storeconnect.com/articles/liquid-how-to-global-tags.md","subtitle":null,"summary":"Reference for Liquid global context variables (current_store, current_cart, current_customer, current_order, session_variables, store_variables, theme_variables, and more) available on every StoreConnect page and in POS action parameters.","type":"Help_Documentation","video_url":"","keywords":"liquid global tags, liquid context variables, current_store, current_customer, current_cart, global finders, liquid templates, dynamic urls, pos liquid, session variables, store variables, theme variables","last_modified":"2026-08-21T07:12:35+0000","body_markdown":"The following global context variables are available in every Liquid render in StoreConnect — both in web theme templates and in POS action parameter expressions. They return a drop of the appropriate type, or nothing, so you can use them in `if` statements:\n\n\n```liquid\n\n{% if current_customer %}\n  Hi {{ current_customer.firstname }}!\n{% endif %}\n```\n\n\n## Global context variables\n\n| Variable | Description |\n|----------|-------------|\n| `current_store` (also `store`) | The current store |\n| `current_cart` (also `cart`) | The active cart, if any |\n| `current_customer` (also `customer`) | The logged-in customer contact, if any |\n| `current_account` (also `account`) | The logged-in customer's account, if any |\n| `current_membership` (also `membership`) | The customer's active membership, if any |\n| `current_pricebook` | The pricebook active for the current context |\n| `current_order` | The current order (available in order confirmation and receipt contexts) |\n| `current_request` | The HTTP request (URL, params, headers) |\n| `session_variables` | Key-value pairs stored in the customer session |\n| `store_variables` | Key-value store configuration variables |\n| `theme_variables` | Key-value theme configuration variables |\n| `login` | The current login session |\n| `navigation` | The store navigation menus |\n| `current_page` | The current page record, when on a page template |\n| `current_product` | The current product, when on a product template |\n| `current_product_category` | The current product category, when on a category template |\n| `current_article_category` | The current article category, when on an article category template |\n| `current_outlet` | The current outlet — available in POS Liquid templates and sync scope filters |\n| `current_register` | The current register — available in POS Liquid templates and sync scope filters |\n\n:::note\nThe `current_` prefix forms are preferred and are always available. The shorter aliases (`store`, `cart`, `customer`, `account`, `membership`) are available for backward compatibility in web theme templates.\n\n`current_outlet` and `current_register` are available only in POS contexts. They are not populated in web theme templates.\n:::\n\n### Dynamic URLs\n\nIf you have multiple stores that each make use of the same code, you can use liquid for your domain name in URL links. This will create the URL link dynamically, based on the domain of the store the code is being used in:\n\n\n```\nhref=“{{ current_store.domain }}“\n```\n\n\n\n```\nhref=“{{ current_store.domain }}/slug”\n```\n\n\n## Global drop finders\n\nThe following finders are available on all StoreConnect pages. Each one is a *lookup* variable: you index it with a single record's key (in square brackets) and it returns that record's drop, or nothing if no record matches — so you can guard the result with a Liquid `if` statement. For example, to look up a product by its slug:\n\n\n```\n{% assign product = all_products[\"my-featured-product\"] %}\n{% if product %}\nWas {{ product.formatted_original_price }}, now {{ product.formatted_sale_price }}\n{% endif %}\n```\n\n\nThe key you pass differs per finder — a product is looked up by its `slug`, pages, articles and product categories by their url `path`, and content blocks and media by their `identifier`:\n\n| Finder | Returns | Key field | Example |\n|--------|---------|-----------|---------|\n| `all_products` | A single product | `slug` | `all_products[\"my-featured-product\"]` |\n| `all_product_categories` | A single product category | `path` | `all_product_categories[\"coffee\"]` |\n| `all_pages` | A single page | `path` | `all_pages[\"about-us\"]` |\n| `all_articles` | A single article | `path` | `all_articles[\"opening-day\"]` |\n| `all_content_blocks` | A single content block | `identifier` | `all_content_blocks[\"homepage-hero\"]` |\n| `all_media` | A single media item | `identifier` | `all_media[\"logo\"]` |\n\nBecause the finder returns a full drop, you can chain straight through to any of that record's fields — for example `{{ all_pages[\"about-us\"].title }}` or `{{ all_content_blocks[\"homepage-hero\"].content }}` — without first loading the page the record belongs to. This makes the finders handy for pulling a featured product's price onto the homepage, rendering a shared content block in a template, or building links to a page that isn't the current one.\n\n:::note\nThe key must match the record's key field exactly. If a lookup returns nothing, confirm you are using the right key for that finder (`slug` for products, url `path` for pages, articles and product categories, `identifier` for content blocks and media) and that the value matches the live record.\n:::"}