Reference
The handle is used to access the attributes of a Liquid object. By default, it is the object’s title in lowercase with any spaces and special characters replaced by hyphens (-). Every object in Liquid (product, collection, blog, menu) has a handle. Learn more
The handle is used to access the attributes of a Liquid object. By default, it is the object’s title in lowercase with any spaces and special characters replaced by hyphens (-). Every object in Liquid (product, collection, blog, menu) has a handle. Learn more
<!-- the content of the About Us page -->
{{ pages.about-us.content }}A product with the title ‘shirt’ will automatically be given the handle shirt. If there is already a product with the handle ‘shirt’, the handle will auto-increment. In other words, all ‘shirt’ products created after the first one will receive the handle shirt-1, shirt-2, and so on. Learn more
Liquid has access to all of the logical and comparison operators. These can be used in tags such as `if` and `unless`. Learn more
equals Learn more
{% if product.title == 'Awesome Shoes' %}
These shoes are awesome!
{% endif %}does not equal Learn more
greater than Learn more
less than Learn more
greater than or equal to Learn more
less than or equal to Learn more
condition A or condition B Learn more
condition A and condition B Learn more
checks for the presence of a substring inside a string or array Learn more
{% if product.title contains 'Pack' %}
This product’s title contains the word Pack.
{% endif %}Liquid objects can return one of six types: String, Number, Boolean, Nil, Array, or EmptyDrop. Liquid variables can be initialized by using the `assign` or `capture` tags. Learn more
Strings are declared by wrapping the variable’s value in single or double quotes. Learn more
{% assign my_string = 'Hello World!' %}Numbers include floats and integers. Learn more
{% assign my_num = 25 %}Booleans are either true or false. No quotations are necessary when declaring a boolean. Learn more
{% assign foo = true %}
{% assign bar = false %}Nil is an empty value that is returned when Liquid code has no results. It is not a string with the characters ‘nil’. Nil is treated as false in the conditions of `{% if %}` blocks and other Liquid tags that check for the truthfulness of a statement. Learn more
Arrays hold a list of variables of all types. To access items in an array, you can loop through each item in the array using a `for` tag or a `tablerow` tag. Learn more
{% for tag in product.tags %}
{{ tag }}
{% endfor %}An EmptyDrop object is returned whenever you try to access a non-existent object (for example, a collection, page or blog that was deleted or hidden) by a handle. Learn more
In programming, we describe “truthy” and “falsy” as anything that returns true or false, respectively, when used inside an `if` statement. Learn more
All values in Liquid are truthy, with the exception of `nil` and `false`. In this example, the variable is a string type but it evaluates as `true`. Learn more
{% assign tobi = 'tobi' %}
{% if tobi %}
This will always be true.
{% endif %}The only values that are falsy in Liquid are `nil` and `false`. `nil` is returned when a Liquid object doesn’t have anything to return. For example, if a collection doesn’t have a collection image, `collection.image` will be set to `nil`. Learn more
{% if collection.image %}
<!-- output collection image -->
{% endif %}In Liquid, you can include a hyphen in your tag syntax `{{-`, `-}}`, `{%-`, and `-%}` to strip whitespace from the left or right side of a rendered tag. Normally, even if it doesn’t output text, any line of Liquid in your template will still output an empty line in your rendered HTML. Learn more
Using hyphens, the `assign` statement doesn't output a blank line. Learn more
{%- assign my_variable = "tomato" -%}
{{ my_variable }}tomatoConditional tags define conditions that determine whether blocks of Liquid code get executed. Learn more
Executes a block of code only if a certain condition is met. Learn more
{% if product.title == 'Awesome Shoes' %}
These shoes are awesome!
{% endif %}These shoes are awesome!Adds more conditions within an `if` or `unless` block. Learn more
<!-- If customer.name is equal to 'anonymous' -->
{% if customer.name == 'kevin' %}
Hey Kevin!
{% elsif customer.name == 'anonymous' %}
Hey Anonymous!
{% else %}
Hi Stranger!
{% endif %}Hey Anonymous!Creates a switch statement to compare a variable with different values. `case` initializes the switch statement and `when` compares its values. Learn more
{% assign handle = 'cake' %}
{% case handle %}
{% when 'cake' %}
This is a cake
{% when 'cookie' %}
This is a cookie
{% else %}
This is not a cake nor a cookie
{% endcase %}This is a cakeSimilar to `if`, but executes a block of code only if a certain condition is not met. Learn more
{% unless product.title == 'Awesome Shoes' %}
These shoes are not awesome.
{% endunless %}These shoes are not awesome.HTML tags render HTML elements using Shopify-specific attributes. Learn more
Generates an HTML `form` tag, including any required `input` tags to submit the form to a specific endpoint. Learn more
{% form 'form_type' %}
content
{% endform %}Generates an HTML `style` tag with an attribute of `data-shopify`. Learn more
{% style %}
.h1 {
color: {{ settings.colors_accent_1 }};
}
{% endstyle %}<style data-shopify>
.h1 {
color: #121212;
}
</style>Iteration Tags are used to run a block of code repeatedly. Learn more
Repeatedly executes a block of code. Learn more
{% for product in collection.products %}
{{ product.title }}
{% endfor %}hat shirt pantsSpecifies a fallback case for a for loop which will run if the loop has zero length (for example, you loop over a collection that has no products). Learn more
{% for product in collection.products %}
{{ product.title }}
{% else %}
This collection is empty.
{% endfor %}This collection is empty.Causes the loop to stop iterating when it encounters the break tag. Learn more
{% for i in (1..5) %}
{% if i == 4 %}
{% break %}
{% else %}
{{ i }}
{% endif %}
{% endfor %}1 2 3Causes the loop to skip the current iteration when it encounters the continue tag. Learn more
{% for i in (1..5) %}
{% if i == 4 %}
{% continue %}
{% else %}
{{ i }}
{% endif %}
{% endfor %}1 2 3 5Loops through a group of strings and outputs them in the order that they were passed as parameters. Each time cycle is called, the next string that was passed as a parameter is output. Learn more
{% cycle 'one', 'two', 'three' %}
{% cycle 'one', 'two', 'three' %}
{% cycle 'one', 'two', 'three' %}
{% cycle 'one', 'two', 'three' %}one
two
three
oneSplits an array's items across multiple pages. Learn more
{% paginate array by page_size %}
{% for item in array %}
forloop_content
{% endfor %}
{% endpaginate %}Generates an HTML `<table>`. Must be wrapped in an opening `<table>` and closing `</table>` HTML tags. Learn more
<table>
{% tablerow product in collection.products %}
{{ product.title }}
{% endtablerow %}
</table><table>
<tr class="row1">
<td class="col1">
Cool Shirt
</td>
<td class="col2">
Alien Poster
</td>
<td class="col3">
Batman Poster
</td>
<td class="col4">
Bullseye Shirt
</td>
<td class="col5">
Another Classic Vinyl
</td>
<td class="col6">
Awesome Jeans
</td>
</tr>
</table>Syntax tags control how Liquid code is processed and rendered. Learn more
Prevents an expression from being rendered or output. Any text inside `comment` tags won't be output, and any Liquid code will be parsed, but not executed. Learn more
{% comment %}
content
{% endcomment %}Outputs an expression. Learn more
{% echo product.title %}
{% liquid
echo product.price | money
%}Health potion
$10.00Allows you to have a block of Liquid without delimeters on each tag. Learn more
{% liquid
# Show a message that's customized to the product type
assign product_type = product.type | downcase
assign message = ''
case product_type
when 'health'
assign message = 'This is a health potion!'
when 'love'
assign message = 'This is a love potion!'
else
assign message = 'This is a potion!'
endcase
echo message
%}This is a health potion!Outputs any Liquid code as text instead of rendering it. Learn more
{% raw %}
{{ 2 | plus: 2 }} equals 4.
{% endraw %}{{ 2 | plus: 2 }} equals 4.Theme Tags have various functions including: outputting template-specific HTML markup, telling the theme which layout and snippets to use, and splitting a returned array into multiple pages. Learn more
Inserts a snippet from the snippets folder of a theme. Learn more
JavaScript code included in a section file. Learn more
{% javascript %}
javascript_code
{% endjavascript %}Loads an alternate template file from the layout folder of a theme. If no alternate layout is defined, the theme.liquid template is loaded by default. Learn more
Renders a snippet from the snippets folder of a theme. When a snippet is rendered, the code inside it does not have access to the variables assigned within its parent template. Similarly, variables assigned within the snippet can't be accessed by the code outside of the snippet. This encapsulation increases performance and helps make theme code easier to understand and maintain. Learn more
Inserts a section from the sections folder of a theme. Learn more
{% section 'footer' %}<div id="shopify-section-footer" class="shopify-section">
<!-- content of sections/footer.liquid -->
</div>Renders a section group. Use this tag to render section groups as part of the theme's layout content. Place the `sections` tag where you want to render it in the layout. Learn more
{% sections 'name' %}CSS styles included in a section file. Learn more
{% stylesheet %}
css_styles
{% endstylesheet %}Variable Tags are used to create new Liquid variables. Learn more
Creates a new variable. Learn more
{% assign my_variable = false %}
{% if my_variable != true %}
This statement is valid.
{% endif %}This statement is valid.Captures the string inside of the opening and closing tags and assigns it to a variable. Variables created through `{% capture %}` are strings. Learn more
{% capture my_variable %}I am being captured.{% endcapture %}
{{ my_variable }}I am being captured.Creates a new number variable, and increases its value by one every time it is called. The initial value is 0. Learn more
{% increment variable %}
{{ variable }}
{% increment variable %}
{{ variable }}
{% increment variable %}
{{ variable }}0
1
2Creates a new number variable and decreases its value by one every time it is called. The initial value is -1. Learn more
{% decrement variable %}
{{ variable }}
{% decrement variable %}
{{ variable }}
{% decrement variable %}
{{ variable }}-1
-2
-3Array filters are used to modify the output of arrays. Learn more
Concatenates (combines) an array with another array. The resulting array contains all the elements of the original arrays. Learn more
{% assign fruits = "apples, oranges" | split: ", " %}
{% assign vegetables = "broccoli, carrots" | split: ", " %}
{% assign plants = fruits | concat: vegetables %}
{{ plants | join: ", " }}apples, oranges, brocolli, carrotsJoins the elements of an array with the character passed as the parameter. The result is a single string. Learn more
{{ product.tags | join: ', ' }}tag1, tag2, tag3Returns the first element of an array. Learn more
<!-- product.tags = "sale", "mens", "womens", "awesome" -->
{{ product.tags | first }}saleReturns the item at the specified index in an array. Note that array numbering starts from zero, so the first item in an array is referenced with `[0]`. Learn more
<!-- product.tags = "sale", "mens", "womens", "awesome" -->
{{ product.tags[2] }}womensGets the last element in an array. Learn more
<!-- product.tags = "sale", "mens", "womens", "awesome" -->
{{ product.tags | last }}awesomeAccepts an array element’s attribute as a parameter and creates a string out of each array element’s value. Learn more
<!-- collections = {title: "Spring"}, {title: "Summer"} -->
{{ collections | map: 'title' }}SpringSummerReverses the order of the items in an array. Learn more
{% assign my_array = "a, b, c, d" | split: ", " %}
{{ my_array | reverse | join: ", " }}d, c, b, aReturns the length of a string or an array. Learn more
{{ 'is this a 30 character string?' | size }}30Sorts the elements of an array by a given attribute. Learn more
<!-- products = "a", "b", "A", "B" -->
{% assign products = collection.products | sort: 'title' %}
{% for product in products %}
{{ product.title }}
{% endfor %}A B a bRemoves any duplicate instances of elements in an array. Learn more
{% assign fruits = "orange apple banana apple orange" %}
{{ fruits | split: ' ' | uniq | join: ' ' }}orange apple bananaCreates an array including only the objects with a given property value, or any truthy value by default. Learn more
All products:
{% for product in collection.products %}
- {{ product.title }}
{% endfor %}
{% assign kitchen_products = collection.products | where: "type", "kitchen" %}
Kitchen products:
{% for product in kitchen_products %}
- {{ product.title }}
{% endfor %}All products:
- Vacuum
- Spatula
- Television
- Garlic press
Kitchen products:
- Spatula
- Garlic pressCart filters output or modify content specific to the cart object and its properties. Learn more
Returns the total item count for a specified variant in the cart. Learn more
{{ cart | item_count_for_variant: 39888235757633 }}1Collection filters output or modify content specific to the collection object and its properties. Learn more
Wraps a given tag in an HTML span tag, with a class attribute of active, if the tag is currently active. Only applies to collection tags. Learn more
{% for tag in collection.all_tags %}
{{- tag | highlight_active_tag | link_to_tag: tag }}
{% endfor %}<a href="/services/liquid_rendering/extra-potent" title="Show products matching tag extra-potent"><span class="active">extra-potent</span></a>
<a href="/services/liquid_rendering/fresh" title="Show products matching tag fresh">fresh</a>
<a href="/services/liquid_rendering/healing" title="Show products matching tag healing">healing</a>Generates an HTML a tag with an `href` attribute linking to a collection page that lists all products of the given product type. Learn more
{{ 'Health' | link_to_type }}<a href="/collections/types?q=Health" title="Health">Health</a>Generates an HTML a tag with an `href` attribute linking to a collection page that lists all products of the given product vendor. Learn more
{{ "Polina's Potent Potions" | link_to_vendor }}<a href="/collections/vendors?q=Polina%27s%20Potent%20Potions" title="Polina's Potent Potions">Polina's Potent Potions</a>Generates a collection URL with the provided `sort_by` parameter appended. This filter must be applied to a collection URL. Learn more
{{ collection.url | sort_by: 'best-selling' }}/collections/sale-potions?sort_by=best-sellingGenerates a URL for a collection page that lists all products of the given product type. Learn more
{{ 'Health' | url_for_type }}/collections/types?q=healthGenerates a URL for a collection page that lists all products from the given product vendor. Learn more
{{ "Polina's Potent Potions" | url_for_vendor }}/collections/vendors?q=Polina%27s%20Potent%20PotionsGenerates a product URL within the context of the provided collection. Learn more
{%- assign collection_product = collection.products.first -%}
{{ collection_product.url | within: collection }}/collections/sale-potions/products/draught-of-immortalityColor filters change or extract properties from CSS color strings. These filters are commonly used with color theme settings. Learn more
Calculates the perceived brightness difference between two colors. With regards to accessibility, the W3C suggests that the brightness difference should be greater than 125. Learn more
{{ '#fff00f' | brightness_difference: '#0b72ab' }}129Calculates the perceived brightness of the given color. Learn more
{{ '#7ab55c' | color_brightness }}153.21Calculates the contrast ratio between two colors. Returns the numerator part of the ratio, which has a denominator of 1. For example, for a contrast ratio of 3.5:1, the filter returns 3.5. Learn more
{{ '#495859' | color_contrast: '#fffffb' }}7.4Darkens the input color. Takes a value between 0 and 100 percent. Learn more
{{ '#7ab55c' | color_darken: 30 }}#355325Desaturates the input color. Takes a value between 0 and 100 percent. Learn more
{{ '#7ab55c' | color_desaturate: 30 }}#869180Calculates the color difference or distance between two colors. With regards to accessibility, the W3C suggests that the color difference should be greater than 500. Learn more
{{ '#ff0000' | color_difference: '#abcdef' }}528Extracts a component from the color. Valid components are alpha, red, green, blue, hue, saturation and lightness. Learn more
{{ '#7ab55c' | color_extract: 'red' }}122Lightens the input color. Takes a value between 0 and 100 percent. Learn more
{{ '#7ab55c' | color_lighten: 30 }}#d0e5c5Blends together two colors. Blend factor should be a value between 0 and 100 percent. Learn more
{{ '#7ab55c' | color_mix: '#ffc0cb', 50 }}#bdbb94Modifies the given component of a color (rgb, alpha, hue and saturation). The filter will return a color type that includes the modified format — for example, if you modify the alpha channel, the filter will return the color in `rgba()` format, even if your input color was in hex format. Learn more
{{ '#7ab55c' | color_modify: 'red', 255 }}
{{ '#7ab55c' | color_modify: 'alpha', 0.85 }}#ffb55c
rgba(122, 181, 92, 0.85)Saturates the input color. Takes a value between 0 and 100 percent. Learn more
{{ '#7ab55c' | color_saturate: 30 }}#6ed938Converts a CSS color string to CSS `rgb()` format. If the input color has an alpha component, then the output will be in CSS `rgba()` format. Learn more
{{ '#7ab55c' | color_to_rgb }}
{{ 'hsla(100, 38%, 54%, 0.5)' | color_to_rgb }}rgb(122, 181, 92)
rgba(122, 181, 92, 0.5)Converts a CSS color string to CSS `hsl()` format. If the input color has an alpha component, then the output will be in CSS `hsla()` format. Learn more
{{ '#7ab55c' | color_to_hsl }}
{{ 'rgba(122, 181, 92, 0.5)' | color_to_hsl }}hsl(100, 38%, 54%)
hsla(100, 38%, 54%, 0.5)Converts a CSS color string to `hex6` format. Hex output is always in `hex6` format. If there is an alpha channel in the input color, it will not appear in the output. Learn more
{{ 'rgb(122, 181, 92)' | color_to_hex }}
{{ 'rgba(122, 181, 92, 0.5)' | color_to_hex }}#7ab55c
#7ab55cCustomer filters output URLs that enable customers to interact with their account in the store. Learn more
Generates an HTML link to the customer login page. Learn more
{{ 'Log in' | customer_login_link }}<a href="/account/login" id="customer_login_link">Log in</a>Generates an HTML link to log the customer out of their account and redirect to the homepage. Learn more
{{ 'Log out' | customer_logout_link }}<a href="/account/logout" id="customer_logout_link">Log out</a>Generates an HTML link to the customer register page. Learn more
{{ 'Create an account' | customer_register_link }}<a href="/account/register" id="customer_register_link">Create an account</a>Generates an HTML Button that enables a customer to follow the Shop in the Shop App. Learn more
{{ shop | login_button: action: 'follow' }}Default filters enable you to use or set default values for certain contexts. Learn more
Sets a default value for any variable whose value is either `empty`, `false` or `nil`. Learn more
{{ product.selected_variant.url | default: product.url }}/products/health-potionGenerates default error messages for each possible value of `form.errors`. Learn more
Generates HTML for a set of links for paginated results. Must be applied to the `paginate` object. Learn more
{% paginate collection.products by 2 %}
{% for product in collection.products %}
{{- product.title }}
{% endfor %}
{{- paginate | default_pagination -}}
{% endpaginate %}Draught of Immortality
Glacier ice
<span class="page current">1</span> <span class="page"><a href="/services/liquid_rendering/resource?page=2" title="">2</a></span> <span class="next"><a href="/services/liquid_rendering/resource?page=2" title="">Next »</a></span>Font filters are called on `font` objects. You can use font filters to load fonts or to obtain font variants. Learn more
Returns a CSS `@font-face` declaration to load the chosen font. Learn more
<style>
{{ settings.heading_font | font_face }}
</style><style>
@font-face {
font-family: "Neue Haas Unica";
font-weight: 400;
font-style: normal;
src: url("https://fonts.shopifycdn.com/neue_haas_unica/neuehaasunica_n4.8a2375506d3dfc7b1867f78ca489e62638136be6.woff2?hmac=d5feff0f2e6b37fedb3ec099688181827df4a97f98d2336515503215e8d1ff55&host=c2hvcDEubXlzaG9waWZ5Lmlv") format("woff2"),
url("https://fonts.shopifycdn.com/neue_haas_unica/neuehaasunica_n4.06cdfe33b4db0659278e9b5837a3e8bc0a9d4025.woff?hmac=d5feff0f2e6b37fedb3ec099688181827df4a97f98d2336515503215e8d1ff55&host=c2hvcDEubXlzaG9waWZ5Lmlv") format("woff");
}
</style>`font_modify` takes two arguments. The first indicates which property should be modified and the second is the modification to be made. While you can access every variant of the chosen font's family by using `font.variants`, you can more easily access specific styles and weights by using the font_modify filter. Learn more
{% assign bold_font = settings.body_font | font_modify: 'weight', 'bold' %}
h2 {
font-weight: {{ bolder_font.weight }};
}h2 {
font-weight: 900;
}Returns a CDN URL for the chosen font. By default, `font_url` returns the woff2 version, but it can also be called with an additional parameter to specify the format. Both woff and woff2 are supported. Learn more
{{ settings.type_header_font | font_url }}
{{ settings.type_base_font | font_url: 'woff' }}https://fonts.shopifycdn.com/neue_haas_unica/neuehaasunica_n4.8a2375506d3dfc7b1867f78ca489e62638136be6.woff2?...9waWZ5Lmlv
https://fonts.shopifycdn.com/work_sans/worksans_n6.399ae4c4dd52d38e3f3214ec0cc9c61a0a67ea08.woff?...b63d5ca77de58c7a23ece904Format filters apply formats to specific data types. Learn more
Converts a timestamp into another date format. Learn more
{{ article.created_at | date: '%B %d, %Y' }}April 14, 2022Converts a string, or object, into JSON format. Learn more
{{ product | json }}Generates a formatted weight for a variant object. The weight unit is set in the general settings in the Shopify admin. Learn more
{%- assign variant = product.variants.first -%}
{{ variant.weight | weight_with_unit }}0.2 kgHTML filters wrap assets in HTML tags. Learn more
Wraps all instances of a specific string, within a given string, with an HTML strong tag with a class attribute of `highlight`. Learn more
{% for item in search.results %}
{% if item.object_type == 'product' %}
{{ item.description | highlight: search.terms }}
{% else %}
{{ item.content | highlight: search.terms }}
{% endif %}
{% endfor %}This is a <strong class="highlight">love</strong> potion.Generates an HTML hyperlink tag. Learn more
{{ 'Shopify' | link_to: 'https://www.shopify.com' }}<a href="https://www.shopify.com" title="" rel="nofollow">Shopify</a>Generates an HTML tag for a given placeholder name. Learn more Learn more
{{ 'collection-1' | placeholder_svg_tag }}Generates an HTML link tag with a `rel` attribute of preload to `prioritize` loading a given Shopify-hosted asset. Learn more
{{ 'cart.js' | asset_url | preload_tag: as: 'script' }}<link href="//polinas-potent-potions.myshopify.com/cdn/shop/t/4/assets/cart.js?v=83971781268232213281663872410" rel="preload" as="script" rel="preload">Generates a script tag. Learn more
{{ 'shop.js' | asset_url | script_tag }}<script src="//cdn.shopify.com/s/files/1/0087/0462/t/394/assets/shop.js?28178" type="text/javascript"></script>Generates a link tag that points to the given stylesheet. Learn more
{{ 'shop.css' | asset_url | stylesheet_tag }}<link href="//cdn.shopify.com/s/files/1/0087/0462/t/394/assets/shop.css?28178" rel="stylesheet" type="text/css" media="all" />The `time_tag` filter converts a timestamp into an HTML `<time>` tag. The output format can be customized by passing date parameters to the `time_tag` filter. Learn more
{{ article.published_at | time_tag }}
{{ article.published_at | time_tag: '%a, %b %d, %Y' }}<time datetime="2016-02-24T14:47:51Z">Wed, 24 Feb 2016 09:47:51 -0500</time>
<time datetime="2016-02-24T14:47:51Z">Wed, Feb 24, 2016</time>Hosted file filters return URLs for assets hosted on the Shopify CDN, including files uploaded in the Shopify admin. Learn more
Returns the CDN URL for an image in the assets directory of a theme. Learn more
{{ 'red-and-black-bramble-berries.jpg' | asset_img_url }}//polinas-potent-potions.myshopify.com/cdn/shop/t/4/assets/red-and-black-bramble-berries_small.jpg?315Returns the CDN URL for a file in the assets directory of a theme. Learn more
{{ 'cart.js' | asset_url }}//polinas-potent-potions.myshopify.com/cdn/shop/t/4/assets/cart.js?v=83971781268232213281663872410Returns the CDN URL for an image in the Files page of the Shopify admin. Learn more
{{ 'potions-header.png' | file_img_url }}//polinas-potent-potions.myshopify.com/cdn/shop/files/potions-header_small.png?v=4246568442683817558Returns the CDN URL for a file from the Files page of the Shopify admin. Learn more
{{ 'disclaimer.pdf' | file_url }}//polinas-potent-potions.myshopify.com/cdn/shop/files/disclaimer.pdf?v=9043651738044769859Returns the CDN URL for a global asset. Learn more
{{ 'lightbox.js' | global_asset_url | script_tag }}<script src="//polinas-potent-potions.myshopify.com/cdn/s/global/lightbox.js" type="text/javascript"></script>Returns the CDN URL for a globally accessible Shopify asset. Learn more
{{ 'option_selection.js' | shopify_asset_url }}//polinas-potent-potions.myshopify.com/cdn/shopifycloud/shopify/assets/themes_support/option_selection-9f517843f664ad329c689020fb1e45d03cac979f64b9eb1651ea32858b0ff452.jsLocalization filters enable you to customize the language and format of elements according to the customer’s locale. Learn more
Generates an HTML select element with an option for each currency available on the store. Learn more
{% form 'currency' %}
{{ form | currency_selector }}
{% endform %}<form method="post" action="/cart/update" id="currency_form" accept-charset="UTF-8" class="shopify-currency-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="currency" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="return_to" value="/services/liquid_rendering/resource" />
<select name="currency"><option value="AED">AED د.إ</option><option value="AFN">AFN ؋</option><option value="AUD">AUD $</option><option value="CAD" selected="selected">CAD $</option><option value="CHF">CHF CHF</option><option value="CZK">CZK Kč</option><option value="DKK">DKK kr.</option><option value="EUR">EUR €</option><option value="GBP">GBP £</option><option value="HKD">HKD $</option><option value="ILS">ILS ₪</option><option value="JPY">JPY ¥</option><option value="KRW">KRW ₩</option><option value="MYR">MYR RM</option><option value="NZD">NZD $</option><option value="PLN">PLN zł</option><option value="SEK">SEK kr</option><option value="SGD">SGD $</option><option value="USD">USD $</option></select>
</form>Generates an HTML address display, with each address component ordered according to the address's locale. Learn more
{{ shop.address | format_address }}<p>Polina's Potions, LLC<br>150 Elgin Street<br>8th floor<br>Ottawa ON K2P 1L4<br>Canada</p>Returns a string of translated text for a given translation key from a locale file. The translate filter has an alias of `t`, which is more commonly used. Learn more
Math filters can be linked and are applied in order from left to right, as with all other filters Learn more
Returns the absolute value of a number or string that onnly contains a number. Learn more
{{ -24 | abs }}
{{ "-1.23" | abs }}24
1.23Limits a number to a minimum value. Learn more
{{ 2 | at_least: 5 }}
{{ 2 | at_least: 1 }}5
2Limits a number to a maximum value. Learn more
{{ 2 | at_most: 5 }}
{{ 2 | at_most: 1 }}2
1Rounds an output up to the nearest integer. Learn more
{{ 4.6 | ceil }}
{{ 4.3 | ceil }}5
5Divides an output by a number. The output is rounded down to the nearest integer. Learn more
<!-- product.price = 200 -->
{{ product.price | divided_by: 10 }}20Rounds an output down to the nearest integer. Learn more
{{ 4.6 | floor }}
{{ 4.3 | floor }}4
4Subtracts a number from an input. Learn more
<!-- product.price = 200 -->
{{ product.price | minus: 15 }}185Adds a number to an output. Learn more
<!-- product.price = 200 -->
{{ product.price | plus: 15 }}215Rounds the output to the nearest integer or specified number of decimals. Learn more
{{ 4.6 | round }}
{{ 4.3 | round }}
{{ 4.5612 | round: 2 }}5
4
4.56Multiplies an output by a number. Learn more
<!-- product.price = 200 -->
{{ product.price | times: 1.15 }}230Divides an output by a number and returns the remainder. Learn more
{{ 12 | modulo:5 }}2Media filters let you generate URLs for a product's media. Learn more
Generates an IFrame that contains a YouTube video player. Learn more
{% if product.featured_media.media_type == "external_video" %}
{{ product.featured_media | external_video_tag }}
{% endif %}<iframe frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="allowfullscreen" src="https://www.youtube-nocookie.com/embed/neFK-pv2sKY?controls=1&enablejsapi=1&modestbranding=1&playsinline=1&rel=0">
...
</iframe>Used to set parameters for the YouTube player rendered by external_video_tag. Learn more
{% if product.featured_media.media_type == "external_video" %}
{{ product.featured_media | external_video_url: color: "white" | external_video_tag }}
{% endif %}<iframe frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="allowfullscreen" src="https://www.youtube-nocookie.com/embed/neFK-pv2sKY?color=white&controls=1&enablejsapi=1&modestbranding=1&playsinline=1&rel=0">
...
</iframe>When used with a model or a video object, the `img_tag` filter generates an image tag for the media's preview image. Learn more
{% if product.featured_media.media_type == "model" %}
{{ product.featured_media | img_tag }}
{% endif %}<img src="//cdn.shopify.com/s/files/1/1425/8696/products/b15ddb43cbac45b1ae2685223fa3536d_small.jpg?v=1560284062">When used with a media object, the `img_url` filter generates an image URL for the media's preview image. Learn more
{% if product.featured_media.media_type == "video" %}
{{ product.featured_media | img_url: '500x500' }}
{{ product.featured_media | img_url }}
{% endif %}//cdn.shopify.com/s/files/1/1425/8696/products/b15ddb43cbac45b1ae2685223fa3536d_500x500.jpg?v=1560284062
//cdn.shopify.com/s/files/1/1425/8696/products/b15ddb43cbac45b1ae2685223fa3536d_small.jpg?v=1560284062Generates an appropriate tag for the media. Learn more
{% if product.featured_media.media_type == "model" %}
{{ product.featured_media | media_tag }}
{% endif %}<model-viewer src="https://model3d.shopifycdn.com/models/o/0029ee870c5c3cdd/stroller.glb" ios-src="https://model3d.shopifycdn.com/models/o/0029ee870c5c3cdd/stroller.usdz" poster="//cdn.shopify.com/s/files/1/1425/8696/products/placeholder_image_small.jpg?v=1560284071" camera-controls="true">
...
</model-viewer>Generates a Google model viewer component tag for the given 3D model. Learn more
{% if product.featured_media.media_type == "model" %}
{{ product.featured_media | model_viewer_tag }}
{% endif %}<model-viewer src="https://model3d.shopifycdn.com/models/o/0029ee870c5c3cdd/stroller.glb" ios-src="https://model3d.shopifycdn.com/models/o/0029ee870c5c3cdd/stroller.usdz" poster="//cdn.shopify.com/s/files/1/1425/8696/products/placeholder_image_small.jpg?v=1560284071" camera-controls="true">
...
</model-viewer>Generates a video tag. Learn more
{% if product.featured_media.media_type == "video" %}
{{ product.featured_media | video_tag }}
{% endif %}<video playsinline="true" controls="">
<source src="https://videos.shopifycdn.com/c/vp/afe4b8a92ca944e49bc4b888927b7ec3/master.m3u8?Expires=1560458164&KeyName=core-signing-key-1&Signature=BIQQpuyEVnyt9HUw4o9QOmQ1z2c=" type="application/x-mpegURL">
<source src="https://videos.shopifycdn.com/c/vp/afe4b8a92ca944e49bc4b888927b7ec3/SD-360p.mp4?Expires=1560458164&KeyName=core-signing-key-1&Signature=1kEi8GmNIssxVvjyzy7AOuGP-E0=" type="video/mp4">
<source src="https://videos.shopifycdn.com/c/vp/afe4b8a92ca944e49bc4b888927b7ec3/SD-480p.mp4?Expires=1560458164&KeyName=core-signing-key-1&Signature=8Lt74XmFWP6hOF1WRdqNkDWRm2U=" type="video/mp4">
<source src="https://videos.shopifycdn.com/c/vp/afe4b8a92ca944e49bc4b888927b7ec3/HD-720p.mp4?Expires=1560458164&KeyName=core-signing-key-1&Signature=vlNXWpvgRT2bghrWovJPrN8w3mc=" type="video/mp4"><p>Sorry html5 video is not supported in this browser</p>
</video>Metafield filters can output metafield data from a metafield object within a relevant HTML element, or as a plain string. Learn more
Generates an HTML element depending on the type of metafield. Learn more
{{ product.metafields.instructions.wash | metafield_tag }}<!-- if single_line_text_field metafields output the text inside a <span> element with an attribute of class="metafield-single_line_text_field". -->
<span class="metafield-single_line_text_field">This is a single line of text.</span>Generates a text version of the metafield data. Learn more
{{ product.metafields.instructions.wash | metafield_text }}Money filters format prices based on the Currency Formatting found in General Settings. Learn more
Formats the price based on the shop’s ‘HTML without currency’ setting. Learn more
{{ 145 | money }}<!-- if "HTML without currency" is ${{ amount }} -->
$1.45
<!-- if "HTML without currency" is €{{ amount_no_decimals }} -->
$1Formats the price based on the shop’s ‘HTML with currency’ setting. Learn more
{{ 1.45 | money_with_currency }}<!-- if "HTML with currency" is ${{ amount }} CAD --> $1.45 CADFormats the price based on the shop’s ‘HTML with currency’ setting and excludes the decimal point and trailing zeros. Learn more
<!-- if "HTML with currency" is ${{ amount }} CAD -->
{{ 20.00 | money_without_trailing_zeros }}$20Formats the price using a decimal. Learn more
{{ 1.45 | money_without_currency }}1.45Payment filters output content related to the store’s payment options. Learn more
Generates an HTML container to host dynamic checkout buttons for a product. Learn more
{% form 'product', product %}
{{ form | payment_button }}
{% endform %}<form method="post" action="/cart/add" id="product_form_6786188247105" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="✓" />
<div data-shopify="payment-button" data-has-selling-plan="true" data-has-fixed-selling-plan="false" class="shopify-payment-button"><button class="shopify-payment-button__button shopify-payment-button__button--unbranded shopify-payment-button__button--hidden" disabled="disabled" aria-hidden="true"> </button><button class="shopify-payment-button__more-options shopify-payment-button__button--hidden" disabled="disabled" aria-hidden="true"> </button></div>
</form>Generates the HTML for the Shop Pay Installments banner. Learn more
{% form 'product', product %}
{{ form | payment_terms }}
{% endform %}Returns the URL for an SVG image of a given payment type. Learn more
{% for type in shop.enabled_payment_types %}
<img src="{{ type | payment_type_img_url }}" />
{% endfor %}<img src="//polinas-potent-potions.myshopify.com/cdn/shopifycloud/shopify/assets/payment_icons/american_express-2264c9b8b57b23b0b0831827e90cd7bcda2836adc42a912ebedf545dead35b20.svg" />Generates an HTML SVG tag for a given payment type. Learn more
{% for type in shop.enabled_payment_types -%}
{{ type | payment_type_svg_tag }}
{% endfor %}String filters are used to manipulate outputs and variables of the string type. Learn more
Appends characters to a string. Learn more
{{ 'sales' | append: '.jpg' }}sales.jpgConverts a dash-separated string into CamelCase. Learn more
{{ 'coming-soon' | camelcase }}ComingSoonCapitalizes the first word in a string. Learn more
{{ 'capitalize me' | capitalize }}Capitalize meConverts a string into lowercase. Learn more
{{ 'UPPERCASE' | downcase }}uppercaseEscapes a string. Learn more
{{ "<p>test</p>" | escape }}<p>test</p>Formats a string into a handle. Learn more
{{ '100% M & Ms!!!' | handleize }}100-m-msConverts a string into a SHA-1 hash using a hash message authentication code (HMAC). Pass the secret key for the message as a parameter to the filter. Learn more
{% assign my_secret_string = "ShopifyIsAwesome!" | hmac_sha1: "secret_key" %}
My encoded string is: {{ my_secret_string }}My encoded string is: 30ab3459e46e7b209b45dba8378fcbba67297304Converts a string into a SHA-256 hash using a hash message authentication code (HMAC). Pass the secret key for the message as a parameter to the filter. Learn more
{% assign my_secret_string = "ShopifyIsAwesome!" | hmac_sha256: "secret_key" %}
My encoded string is: {{ my_secret_string }}My encoded string is: 30ab3459e46e7b209b45dba8378fcbba67297304Converts a string into an MD5 hash. Learn more
<img src="https://www.gravatar.com/avatar/{{ comment.email | remove: ' ' | strip_newlines | downcase | md5 }}" /><img src="https://www.gravatar.com/avatar/2a95ab7c950db9693c2ceb767784c201" />Inserts a `<br>` linebreak HTML tag in front of each line break in a string. Learn more
{% capture var %}
One
Two
Three
{% endcapture %}
{{ var | newline_to_br }}One<br>
Two<br>
Three<br>Outputs the singular or plural version of a string based on the value of a number. The first parameter is the singular string and the second parameter is the plural string. Learn more
{{ cart.item_count | pluralize: 'item', 'items' }}3 itemsPrepends characters to a string. Learn more
{{ 'sale' | prepend: 'Made a great ' }}Made a great saleRemoves all occurrences of a substring from a string. Learn more
{{ "Hello, world. Goodbye, world." | remove: "world" }}Hello, . Goodbye, .Removes only the first occurrence of a substring from a string. Learn more
{{ "Hello, world. Goodbye, world." | remove_first: "world" }}Hello, . Goodbye, world.Replaces all occurrences of a substring with a string. Learn more
<!-- product.title = "Awesome Shoes" -->
{{ product.title | replace: 'Awesome', 'Mega' }}Mega ShoesReplaces the first occurrence of a substring with a string. Learn more
<!-- product.title = "Awesome Awesome Shoes" -->
{{ product.title | replace_first: 'Awesome', 'Mega' }}Mega Awesome ShoesThe slice filter returns a substring, starting at the specified index. An optional second parameter can be passed to specify the length of the substring. If no second parameter is given, a substring of one character will be returned. Learn more
{{ "hello" | slice: 0 }}
{{ "hello" | slice: 1 }}
{{ "hello" | slice: 1, 3 }}h
e
ellThe split filter takes on a substring as a parameter. The substring is used as a delimiter to divide a string into an array. You can output different parts of an array using array filters. Learn more
{% assign words = "Hi, how are you today?" | split: ' ' %}
{% for word in words %}
{{ word }}
{% endfor %}Hi,
how
are
you
today?Strips tabs, spaces, and newlines (all whitespace) from the left and right side of a string. Learn more
{{ ' too many spaces ' | strip }}too many spacesStrips tabs, spaces, and newlines (all whitespace) from the left side of a string. Learn more
"{{ ' too many spaces ' | lstrip }}"<!-- Notice the empty spaces to the right of the string -->
"too many spaces "`reverse` cannot be used directly on a string, but you can split a string into an array, reverse the array, and rejoin it by chaining together other filters. Learn more
{{ "Ground control to Major Tom." | split: "" | reverse | join: "" }}.moT rojaM ot lortnoc dnuorGStrips tabs, spaces, and newlines (all whitespace) from the right side of a string. Learn more
{{ ' too many spaces ' | rstrip }}" too many spaces"Converts a string into a SHA-1 hash. Learn more
{% assign my_secret_string = "ShopifyIsAwesome!" | sha1 %}
My encoded string is: {{ my_secret_string }}My encoded string is: c7322e3812d3da7bc621300ca1797517c34f63b6Converts a string into a SHA-256 hash. Learn more
{% assign my_secret_string = "ShopifyIsAwesome!" | sha256 %}
My encoded string is: {{ my_secret_string }}My encoded string is: c29cce758876791f34b8a1543f0ec3f8e886b5271004d473cfe75ac3148463cbStrips all HTML tags from a string. Learn more
{{ "<h1>Hello</h1> World" | strip_html }}Hello WorldRemoves any line breaks/newlines from a string. Learn more
<!-- product.description = "This is a multiline\nproduct description."
{{ product.description | strip_newlines }}This is a multiline product description.Truncates a string down to ‘x’ characters, where x is the number passed as a parameter. An ellipsis (...) is appended to the string and is included in the character count. Learn more
{{ "The cat came back the very next day" | truncate: 10 }}The cat...Truncates a string down to ‘x’ words, where x is the number passed as a parameter. An ellipsis (...) is appended to the truncated string. Learn more
{{ "The cat came back the very next day" | truncatewords: 4 }}The cat came back...Converts a string into uppercase. Learn more
{{ 'i want this to be uppercase' | upcase }}I WANT THIS TO BE UPPERCASEConverts any URL-unsafe characters in a string into percent-encoded characters. Learn more
{{ "john@liquid.com" | url_encode }}john%40liquid.comIdentifies all characters in a string that are not allowed in URLS, and replaces the characters with their escaped variants. Learn more
{{ "<hello> & <shopify>" | url_escape }}%3Chello%3E%20&%20%3Cshopify%3EReplaces all characters in a string that are not allowed in URLs with their escaped variants, including the ampersand (&). Learn more
{{ "<hello> & <shopify>" | url_param_escape }}%3Chello%3E%20%26%20%3Cshopify%3EReturns `true` if a store has any payment providers with offsite checkouts, such as PayPal Express Checkout. Use `additional_checkout_buttons` to check whether these payment providers exist, and `content_for_additional_checkout_buttons` to show the associated checkout buttons. Learn more
Returns `true` if a store has any payment providers with offsite checkouts, such as PayPal Express Checkout. Learn more
{% if additional_checkout_buttons %}
{{ content_for_additional_checkout_buttons }}
{% endif %}The `address` object contains information entered by a customer in Shopify’s checkout pages. Note that a customer can enter two addresses: billing address or shipping address. When accessing attributes of the `address` object, you must specify which address you want to target. This is done by using either `shipping_address` or `billing_address` before the attribute. Learn more
Returns the values of the First Name and Last Name fields of the address. Learn more
Hello, {{ billing_address.name }}Returns the value of the First Name field of the address. Learn more
Returns the value of the Last Name field of the address. Learn more
Returns the value of the Address1 field of the address. Learn more
Returns the value of the Address2 field of the address. Learn more
Returns the combined values of the Address1 and Address2 fields of the address. Learn more
{{ shipping_address.street }}Returns the value of the Company field of the address. Learn more
Returns the value of the City field of the address. Learn more
Returns the value of the Province/State field of the address. Learn more
Returns the abbreviated value of the Province/State field of the address. Learn more
Returns the value of the Postal/Zip field of the address. Learn more
Returns the value of the Country field of the address. Learn more
Returns the value of the Country field of the address in ISO 3166-2 standard format. Learn more
Returns the value of the Phone field of the address. Learn more
The all_country_option_tags object creates an `option` tag for each country. An attribute called data-provinces is set for each `option`, and contains a JSON-encoded array of the country's subregions. If a country doesn't have any subregions, then an empty array is set for its data-provinces attribute. Learn more
The all_country_option_tags object should be wrapped in `select` tags. Learn more
<select name="country">
{{ all_country_option_tags }}
</select><select name="country">
<option value="---" data-provinces="[]">---</option>
<option value="Afghanistan" data-provinces="[]">Afghanistan</option>
<option value="Aland Islands" data-provinces="[]">Åland Islands</option>
...
<option value="Canada" data-provinces="[['Alberta','Alberta'],['British Columbia','British Columbia'],['Manitoba','Manitoba'],['New Brunswick','New Brunswick'],['Newfoundland','Newfoundland'],['Northwest Territories','Northwest Territories'],['Nova Scotia','Nova Scotia'],['Nunavut','Nunavut'],['Ontario','Ontario'],['Prince Edward Island','Prince Edward Island'],['Quebec','Quebec'],['Saskatchewan','Saskatchewan'],['Yukon','Yukon']]">Canada</option>
...
</select>All of the products on a store. Learn more
You can use all_products to access a product by its handle. If the product isn't found, then `nil` is returned. Learn more
{{ all_products['love-potion'].title }}Love PotionAn app. This object is usually used to access app-specific information for use with theme app extensions. Learn more
The metafields that are owned by the app. Learn more
The `article` object. Learn more
Returns the full name of the article’s author. Learn more
Returns the published comments of an article. Returns an empty array if comments are disabled. Learn more
Returns the number of published comments for an article. Learn more
Returns `true` if comments are enabled. Returns `false` if comments are disabled. Learn more
Returns the relative URL where POST requests are sent to when creating new comments. Learn more
Returns the content of an article. Learn more
Returns the timestamp of when an article was created. Use the `date` filter to format the timestamp. Learn more
{{ article.created_at | date: "%a, %b %d, %y" }}Fri, Sep 16, 11Returns the excerpt of an article. Learn more
Returns `article.excerpt` of the article if it exists. Returns `article.content` if an excerpt does not exist for the article. Learn more
Returns the handle of the article. Learn more
Returns the id of an article. Learn more
Returns the article image. Use the `img_url` filter to link it to the image file on the Shopify CDN. Check for the presence of the image first. Learn more
{% if article.image %}
{{ article | img_url: 'medium' }}
{% endif %}Returns the article image's `alt` text. Learn more
Returns the relative URL to the article image. Learn more
{{ article.image.src | img_url: 'medium' }}Returns `true` if the blog that the article belongs to is set to moderate comments. Returns `false` if the blog is not moderated. Learn more
Returns the date/time when an article was published. Use the `date` filter to format the timestamp. Learn more
Returns all the tags for an article. Learn more
{% for tag in article.tags %}
{{ tag }}
{% endfor %}Returns returns a timestamp for when a blog article was updated. The `date` filter can be applied to format the timestamp. Learn more
Returns the relative URL of the article. Learn more
Returns an object with information about the article's author. This information can be edited in the Staff accounts options on the Account page in the Shopify admin. Learn more
All of the articles across the blogs in the store. Learn more
All of the articles across the blogs in the store. You can use `articles` to access an article by its handle. Learn more
{% assign article = articles['potion-notions/new-potions-for-spring'] %}
{{ article.title | link_to: article.url }}<a href="/blogs/potion-notions/new-potions-for-spring" title="">New potions for spring</a>A `block` represents the content and settings of a single block in an array of section blocks. The `block` object can be accessed in a section file by looping through `section.blocks`. Learn more
Returns a unique ID dynamically generated by Shopify. Learn more
Returns an object of the block settings set in the theme editor. Retrieve setting values by referencing the setting's unique `id`. Learn more
Returns a string representing the block's attributes. The theme editor's JavaScript API uses a block's `shopify_attributes` to identify blocks and listen for events. No value for `block.shopify_attributes` is returned outside the theme editor. Learn more
Returns the type defined in the block's schema. This is useful for displaying different markup based on the `block.type`. Learn more
The `blog` object. Learn more
Returns all tags of all articles of a blog. This includes tags of articles that are not in the current pagination view. Learn more
{% for tag in blog.all_tags %}
{{ tag }}
{% endfor %}Returns an array of all articles in a blog. Learn more
{% for article in blog.articles %}
<h2>{{ article.title }}</h2>
{% endfor %}Returns the total number of articles in a blog. This total does not include hidden articles. Learn more
Returns `true` if comments are enabled. Returns `false` if comments are disabled. Learn more
Returns the handle of the blog. Learn more
Returns the id of the blog. Learn more
Returns `true` if comments are moderated, or `false` if they are not moderated. Learn more
Returns the URL of the next (older) post. Returns `false` if there is no next article. Learn more
Returns the URL of the previous (newer) post. Returns `false` if there is no next article. Learn more
Returns all tags in a blog. Similar to all_tags, but only returns tags of articles that are in the filtered view. Learn more
Returns the title of the blog. Learn more
Returns the relative URL of the blog. Learn more
All of the blogs in the store. Learn more
Allows you to access all of the blogs in the store. You can use `blogs` to access a blog by its handle. Learn more
{% for article in blogs.potion-notions.title %}
{{ article.title | link_to: article.url }}
{% endfor %}<a href="/blogs/potion-notions/homebrew-start-making-potions-at-home" title="">Homebrew: start making potions at home</a>
<a href="/blogs/potion-notions/new-potions-for-spring" title="">New potions for spring</a>
<a href="/blogs/potion-notions/how-to-tell-if-you-have-run-out-of-invisibility-potion" title="">How to tell if you're out of invisibility potion</a>The brand assets for the store. Learn more
The brand's colors. To learn about how to access brand colors, refer to `brand_color`. Learn more
The square logo for the brand, resized to 32x32 px. Learn more
The square logo for the brand, resized to 32x32 px. Learn more
The default logo for the brand. Learn more
The social links for the brand. Learn more
A short description of the brand. Learn more
{{ brand.short_description }}"Canada's foremost retailer for potions and potion accessories. Try one of our award-winning artisanal potions, or find the supplies to make your own!"The slogan for the brand. Learn more
{{ brand.slogan }}"Save the toil and trouble!"The square logo for the brand. Learn more
The colors defined as part of a store's brand assets. Learn more
The colors defined as part of a store's brand assets. To access a brand color, specify the brand color group, the color role, and the 0-based index of the color within the group and role. Learn more
{ shop.brand.colors.primary[0].background }}
{{ shop.brand.colors.primary[0].foreground }}
{{ shop.brand.colors.secondary[0].background }}
{{ shop.brand.colors.secondary[1].background }}
{{ shop.brand.colors.secondary[0].foreground }}#0b101f
#DDE2F1
#101B2E
#95A7D5
#A3DFFDThe canonical URL for the current page. Learn more
The canonical URL for the current page. Learn more
The `cart` object can be used and accessed from any file in your theme. Learn more
`cart.attributes` allow the capturing of more information on the cart page. This is done by giving an input a name attribute with the following syntax: `attributes[attribute-name]`. Learn more
{{ cart.attributes.your-pet-name }}RexReturns the currency of the cart. If your store uses multi-currency, then the `cart.currency` is the same as the customer's local (presentment) currency. Otherwise, the cart currency is the same as your store currency. Learn more
{{ cart.currency.iso_code }}USDReturns the number of items inside the cart. Learn more
{{ cart.item_count }} {{ cart.item_count | pluralize: 'Item', 'Items' }} ({{ cart.total_price | money }})25 items ($53.00)Returns all of the line items in the cart. Learn more
Returns the sum of the cart's line-item prices after any line-item discount. The subtotal doesn't include taxes (unless taxes are included in the prices), cart discounts, or shipping costs. Learn more
`cart.note` allows the capturing of more information on the cart page. Learn more
Returns the subtotal of the cart before any discounts have been applied. The amount is in the customer's local (presentment) currency. Learn more
Returns the total of all discounts (the amount saved) for the cart. The amount is in the customer's local (presentment) currency. Learn more
Returns the total price of all of the items in the cart. Learn more
Returns the total weight, in grams, of all of the items in the cart. Use the `weight_with_unit` filter to format the weight. Learn more
The `checkout` object can be accessed in the order status page of the checkout. Shopify Plus merchants can also access properties of the `checkout` object in the `checkout.liquid` layout file. Learn more
Returns the gift cards applied to the checkout. Learn more
Returns the attributes of the checkout that were captured in the cart. Learn more
Returns the billing address of the checkout. Learn more
Returns whether the buyer accepted the newsletter during the checkout. Learn more
{% if checkout.buyer_accepts_marketing %}
Thank you for subscribing to our newsletter. You will receive our exclusive newsletter deals!
{% endif %}Returns the customer associated with the checkout. Learn more
Returns an array of discount applications for a checkout. Learn more
{% for discount_application in checkout.discount_applications %}
Discount name: {{ discount_application.title }}
Savings: -{{ discount_application.total_allocated_amount | money }}
{% endfor %}Discount name: SUMMER19
Savings: -$20.00Returns the discounts applied to the checkout. Learn more
{% for discount in checkout.discounts %}
* {{ discount.code }}: {{ discount.amount | money }}
{% endfor %}* secret-discount: $12.00Returns the sum of the amount of the discounts applied to the checkout. Use one of the money filters to return the value in a monetary format. Learn more
You save: {{ checkout.discounts_amount | money }}You save: $12.00Returns the sum of the savings of the discounts applied to the checkout. The negative opposite of `discounts_amount`. Use one of the money filters to return the value in a monetary format. Learn more
Returns the email used during the checkout. Learn more
Returns the amount paid in gift cards of the checkout. Use one of the money filters to return the value in a monetary format. Learn more
Returns the id of the checkout. Learn more
Returns all the line items of the checkout. Learn more
Returns the name of the checkout. This value is identical to `checkout.id` with a hash prepended to it. Learn more
Returns the note of the checkout. Learn more
Returns the order created by the checkout. Depending on the payment gateway, the order might not have been created yet on the checkout order status page and this property could be `nil`. Learn more
Returns the id of the order created by the checkout. Depending on the payment gateway, the order might not have been created yet on the checkout order status page. Learn more
Returns the name of the order created by the checkout. Depending on the payment gateway, the order might not have been created yet on the checkout order status page. Learn more
Returns the number of the order created by the checkout. Depending on the payment gateway, the order might not have been created yet on the checkout order status page. Learn more
Returns whether the checkout as a whole requires shipping, that is, whether any of the line items require shipping. Learn more
{% if checkout.requires_shipping %}
You will receive an email with your shipment tracking number as soon as your order is shipped.
{% endif %}Returns the shipping address of the checkout. Learn more
Returns the shipping method of the checkout. Learn more
Returns an array of shipping methods of the checkout. Learn more
Shipping methods:
{% for shipping_method in checkout.shipping_methods %}
* {{ shipping_method.title }}: {{ shipping_method.price | money }}
{% endfor %}Shipping methods:
* International Shipping: $12.00Returns the shipping price of the checkout. Use one of the money filters to return the value in a monetary format. Learn more
Returns the subtotal price of the checkout, that is before shipping and before taxes, unless they are included in the prices. Learn more
Returns all the tax lines of the checkout. Learn more
Returns the tax price of the checkout, whether the taxes are included or not in the prices. Use one of the money filters to return the value in a monetary format. Learn more
Returns the total price of the checkout. Use one of the money filters to return the value in a monetary format. Learn more
Total: {{ checkout.total_price | money }}Total: $26.75Returns an array of transactions from the checkout. Learn more
The `collection` object. Learn more
Returns the number of products in a collection. `collection.all_products_count` will return the total number of products even when the collection view is filtered. Learn more
{{ collection.all_products_count }} total products in this collection24 total products in this collectionReturns a list of all product tags in a collection. `collection.all_tags` will return the full list of tags even when the collection view is filtered. `collection.all_tags` will return at most 1,000 tags. Learn more
Returns a list of all product types in a collection. Learn more
{% for product_type in collection.all_types %}
{{ product_type | link_to_type }}
{% endfor %}<a href="/collections/types?q=Accessories" title="Accessories">Accessories</a>
<a href="/collections/types?q=Chairs" title="Chairs">Chairs</a>
<a href="/collections/types?q=Shoes" title="Shoes">Shoes</a>Returns a list of all product vendors in a collection. Learn more
{% for product_vendor in collection.all_vendors %}
{{ product_vendor | link_to_vendor }}
{% endfor %}<a href="/collections/vendors?q=Shopify" title="Shopify">Shopify</a>
<a href="/collections/vendors?q=Shirt+Company" title="Shirt Company">Shirt Company</a>
<a href="/collections/vendors?q=Montezuma" title="Montezuma">Montezuma</a>Returns the product type on a `/collections/types?q=TYPE` collection page. For example, you may be on the automatic Shirts collection, which lists all products of type ‘shirts’ in the store: `myshop.shopify.com/collections/types?q=Shirts`. Learn more
{% if collection.current_type %}
We are on an automatic product type collection page. The product type is {{ collection.current_type }}.
{% endif %}Returns the vendor name on a `/collections/vendors?q=VENDOR` collection page. For example, you may be on the automatic Shopify collection, which lists all products with vendor ‘shopify’ in the store: `myshop.shopify.com/collections/vendors?q=Shopify`. Learn more
{% if collection.current_vendor %}
We are on an automatic vendor collection page. The vendor is {{ collection.current_vendor }}.
{% endif %}Returns the sort order of the collection, which is set in the collection pages of the Admin. Learn more
Returns the description of the collection. Learn more
Returns the featured image for the collection. The default is the collection image, and then Shopify will fall back to an appropriate image, such as the featured image of the first product in the collection. Learn more
Returns an array of filter objects that have been set up on the collection. Learn more
Returns the handle of a collection. Learn more
Returns the id of a collection. Learn more
Returns the collection image. Use the `img_url` filter to link it to the image file on the Shopify CDN. Check for the presence of the image first. Learn more
{% if collection.image %}
{{ collection.image | img_url: 'medium' }}
{% endif %}Returns the URL of the next product in the collection. Returns `nil` if there is no next product. This output can be used on the product page to output ‘next’ and ‘previous’ links on the product.liquid template. Learn more
Returns the URL of the previous product in the collection. Returns `nil` if there is no previous product. This output can be used on the product page to output ‘next’ and ‘previous’ links on the product.liquid template. Learn more
Returns all of the products inside a collection. Note that there is a limit of 50 products that can be shown per page. Use the pagination tag to control how many products are shown per page. Learn more
Returns the number of products in a collection. Learn more
{{ collection.all_products_count }} {{ collection.all_products_count | pluralize: 'Item', 'Items' }} total24 ItemsReturns the date and time when the collection was published. You can set this information on the collection's page in your Shopify admin by the Set publish date calendar icon. You can use a date filter to format the date. Learn more
Returns the sort order applied to the collection by the `sort_by` URL parameter. When there is no `sort_by` URL parameter, the value is `null` (e.g. /collections/widgets?sort_by=best-selling). Learn more
{% if collection.sort_by %}
Sort by: {{ collection.sort_by }}
{% endif %}Sort by: best-sellingReturns an array of sorting options for the collection. Learn more
<select name="sort_by">
{% for option in collection.sort_options %}
<option value="{{ option.value }}">{{ option.name }}</option>
{% endfor %}
</select><select name="sort_by">
<option value="manual">Featured</option>
<option value="best-selling">Best selling</option>
<option value="title-ascending">Alphabetically, A-Z</option>
<option value="title-descending">Alphabetically, Z-A</option>
<option value="price-ascending">Price, low to high</option>
<option value="price-descending">Price, high to low</option>
<option value="created-ascending">Date, old to new</option>
<option value="created-descending">Date, new to old</option>
</select>Returns the name of the custom collection template assigned to the collection, without the collection prefix or the .liquid suffix. Returns `nil` if a custom template is not assigned to the collection. Learn more
{{ collection.template_suffix }}no-priceReturns the title of the collection. Learn more
<h1>{{ collection.title }}</h1>FrontpageReturns all tags of all products in a collection. Learn more
Returns the URL of the collection. Learn more
Allows you to access all of the collections on a store. Learn more
You can iterate over collections to build a collection list. Learn more
{% for collection in collections %}
{{- collection.title | link_to: collection.url }}
{% endfor %}<a href="/collections/empty" title="">Empty</a>
<a href="/collections/featured-potions" title="">Featured potions</a>
<a href="/collections/freebies" title="">Freebies</a>
<a href="/collections/frontpage" title="">Home page</a>
<a href="/collections/ingredients" title="">Ingredients</a>
<a href="/collections/potions" title="">Potions</a>
<a href="/collections/sale-potions" title="">Sale potions</a>The `color` object is returned from color type settings, and has the following attributes. Learn more
Returns the alpha component of the color, which is a decimal number between 0 and 1. Learn more
Returns the blue component of the color, which is a number between 0 and 255. Learn more
Returns the green component of the color, which is a number between 0 and 255. Learn more
Returns the hue component of the color, which is a number between 0 and 360. Learn more
Returns the lightness component of the color, which is a number between 0 and 100. Learn more
Returns the red component of the color, which is a number between 0 and 255. Learn more
Returns the saturation component of the color, which is a number between 0 and 100. Learn more
A color_scheme from a `color_scheme` setting. Learn more
The ID of the color_scheme Learn more
{{ color_scheme.id }}"background-2"The setting of the color_scheme Learn more
A `color_scheme_group` from a `color_scheme_group` setting. Learn more
A `color_scheme_group` from a `color_scheme_group` setting. Learn more
{% for scheme in settings.color_schemes %}
.color-{{ scheme.id }} {
--color-background: {{ scheme.settings.background }};
--color-text: {{ scheme.settings.text }};
}
{% endfor %}The `comment` object. Learn more
Returns the timestamp of when the comment was submitted. Use the `date` filter to convert the timestamp into a more readable format. Learn more
{{ comment.created_at | date: "%b %d, %Y" }}Feb 26, 2019Returns the id (unique identifier) of the comment. Learn more
Returns the author of the comment. Learn more
Returns the email address of the comment’s author. Learn more
Returns the content of the comment. Learn more
Returns the status of the comment. Learn more
Returns the timestamp of when the comment's status was last changed. For example, the timestamp of when a comment was approved by the article's author. Use the `date` filter to convert the timestamp into a more readable format. Learn more
{{ comment.updated_at | date: "%b %d, %Y" }}Mar 13, 2019Returns the URL of the article with `comment.id` appended to it. This is so the page will automatically scroll to the comment. Learn more
A company that a customer is purchasing for. Learn more
The company locations that the current customer has access to, or can interact with. Learn more
The ID of the company. Learn more
{{ company.id }}98369The metafields applied to the company. Learn more
The.name of the company. Learn more
{{ company.name }}"Cornelius' Custom Concoctions"The address of a company location. Learn more
The first line of the address. Learn more
{{ company_address.address1 }}"99 Cauldron Lane"The second line of the address. If no second line is specified, then `nil` is returned. Learn more
{{ company_address.address2 }}"Unit 4B"The attention line of the address. Learn more
{{ company_address.attention }}"Cornelius Potionmaker"The city of the address. Learn more
{{ company_address.city }}"Edinburgh"The country of the address. Learn more
{{ company_address.country }}"Scotland"The country of the address in ISO 3166-1 (alpha 2) format. Learn more
{{ company_address.country_code }}"GB"The id of the address. Learn more
{{ company_address.id }}65The province of the address. Learn more
{{ company_address.province }}nullThe province of the address of the address in ISO 3166-2 (alpha 2) format.. Learn more
{{ company_address.province_code }}nullA combination of the first and second lines of the address. Learn more
{{ company_address.street }}"99 Cauldron Lane, Unit 4BThe zip or postal code of the address. Learn more
{{ company_address.zip }}A location of the company that a customer is purchasing for. Learn more
The company that the location is associated with. Learn more
Returns true if the location is currently selected. Returns false if not. Learn more
{{ company_location.current? }}falseThe ID of the location. Learn more
{{ company_location.id }}98369The name of the location. Learn more
{{ company_location.name }}"99 Cauldron Lane"The address of the location. Learn more
{{ company_location.shipping_address }}The tax ID of the location. Learn more
{{ company_location.tax_registration_id }}nullThe URL to set the location as the current location for the customer. Learn more
{{ company_location.url_to_set_as_current }}"https://polinas-potent-potions.myshopify.com/company_location/update?location_id=98369&return_to=/resource"Returns checkout buttons for any active payment providers with offsite checkouts. Learn more
Use `additional_checkout_buttons` to check whether these payment providers exist, and `content_for_additional_checkout_buttons` to show the associated checkout buttons. Learn more
{% if additional_checkout_buttons %}
{{ content_for_additional_checkout_buttons }}
{% endif %}Dynamically returns all scripts required by Shopify. Learn more
Include the `content_for_header` object in your layout files between the opening and closing head HTML tags. You shouldn't try to modify or parse the `content_for_header` object because the contents are subject to change, which can change the behavior of your code. Learn more
Dynamically returns the content of sections to be rendered on the home page. Learn more
If you use a Liquid index template (`templates/index.liquid`), then you must include `{{ content_for_index }}` in the template. This object can't be used in JSON index templates. Learn more
Dynamically returns content based on the current template. Learn more
Include the `content_for_layout` object in your layout files between the opening and closing body HTML tags. Learn more
The country object has the following attributes. Learn more
Returns the currency used in the country. Learn more
Returns the ISO code of the country. For example, `US` or `FR` for United States or France. Learn more
Returns the name of the country. For example, United States or France. Learn more
Returns the unit system of the country. Can be either `imperial` or `metric`. Learn more
Create `option` tags for each country. Learn more
`country_option_tags` creates an `<option>` tag for each country. An attribute named `data-provinces` is set for each country, containing JSON-encoded arrays of the country’s respective subregions. If a country does not have any subregions, an empty array is set for its `data-provinces` attribute. `country_option_tags` must be wrapped in `<select>` HTML tags. Learn more
<select name="country">
{{ country_option_tags }}
</select>The `currency` object contains information about a store's currency. Learn more
Returns the name of the currency (for example `United States dollars` or `Euro`). Learn more
Returns the ISO code of the currency (for example `USD` or `EUR`). Learn more
Returns the currency's symbol (for example, `$` or `€`). Learn more
The current page number. Learn more
Returns the current page number. The `current_page` object has a value of 1 for non-paginated resources. Learn more
{{ page_title }}{% unless current_page == 1 %} - Page {{ current_page }}{% endunless %}Ingredients - Page 1Product tags are used to filter a collection to only show products that contain a specific product tag. Similarly, article tags are used to filter a blog to only show products that contain a specific article tag. The `current_tags` variable is an array that contains all tags that are being used to filter a collection or blog. Learn more
Inside collection.liquid, `current_tags` contains all product tags that are used to filter a collection. Learn more
Inside blog.liquid, `current_tags` contains all article tags that are used to filter the blog. Learn more
The `customer_address` object contains information of addresses tied to a Customer Account. Learn more
Returns the value of the First Name field of the address. Learn more
Returns the value of the Last Name field of the address. Learn more
Returns the value of the Address1 field of the address. Learn more
Returns the value of the Address2 field of the address. Learn more
Returns the combined values of the Address1 and Address2 fields of the address. Learn more
Returns the value of the Company field of the address. Learn more
Returns the value of the City field of the address. Learn more
Returns the value of the Province/State field of the address. Learn more
Returns the abbreviated value of the Province/State field of the address. Learn more
Returns the value of the Postal/Zip field of the address. Learn more
Returns the value of the Country field of the address. Learn more
Returns the value of the Country field of the address in ISO 3166-2 standard format. Learn more
{{ customer_address.country_code }}CAReturns the value of the Phone field of the address. Learn more
Returns the id of customer address. Learn more
The `customer` object contains information about a customer who has a Customer Account. The `customer` can be used and accessed from any file in your theme. Learn more
Returns `true` if the customer accepts marketing. Returns `false` if the customer does not. Learn more
Returns an array of all addresses associated with a customer. See `customer_address` for a full list of available attributes. Learn more
{% for address in customer.addresses %}
{{ address.street }}
{% endfor %}126 York St, Suite 200 (Shopify Office)
123 Fake St
53 Featherston LaneReturns the number of addresses associated with a customer. Learn more
Returns the default `customer_address`. Learn more
Returns the email address of the customer. Learn more
Returns the first name of the customer. Learn more
Returns `true` if the email associated with an order is also tied to a Customer Account. Returns `false` if it is not. Helpful in email templates. In the theme, this will always be true. Learn more
Returns the id of the customer. Learn more
Returns the last name of the customer. Learn more
Returns the last order placed by the customer, not including test orders. Learn more
Your last order was placed on: {{ customer.last_order.created_at | date: "%B %d, %Y %I:%M%p" }}Your last order was placed on: April 25, 2014 01:49PMReturns the full name of the customer. Learn more
Returns an array of all orders placed by the customer. Learn more
{% for order in customer.orders %}
{{ order.id }}
{% endfor %}\#1088
\#1089
\#1090Returns the total number of orders a customer has placed. Learn more
Returns the phone number of the customer. Learn more
Returns the list of tags associated with the customer. Learn more
{% for tag in customer.tags %}
{{ tag }}
{% endfor %}wholesale regular-customer VIPReturns whether or not the customer is exempt from taxes. Learn more
Returns the total amount spent on all orders. Learn more
The `date` object returns a date in ISO 8601 format. Learn more
You can use the Liquid date filter to output the date in a more readable format. Learn more
The `discount` object. Note that this object will display a value only if it’s accessed in notifications or in the Order Printer app. Learn more
Returns the id of the discount. Learn more
Returns the title or discount code of the discount. Learn more
{{ discount.title }}SPRING14Returns the title or discount code of the discount. Same as `discount.title`. Learn more
Returns the amount of the discount. Use one of the money filters to return the value in a monetary format. Learn more
{{ discount.amount | money }}$25Returns the total amount of the discount if it has been applied to multiple line items. Use a money filter to return the value in a monetary format. Learn more
Returns the amount of the discount’s savings. The negative version of amount. Use one of the money filters to return the value in a monetary format. Learn more
{{ discount.savings | money }}$-25Returns the total amount of the discount’s savings if it has been applied to multiple line items. The negative version of `total_amount`. Use a money filter to return the value in a monetary format. Learn more
Returns the type of the discount. Learn more
The `discount_allocation` object contains all of the information about how a particular discount affects a line item and how the price reduces. The object can be accessed on customer order and notification templates. Shopify Plus merchants can also access properties of the discount_allocation object in the `checkout.liquid` layout file. Learn more
The discounted amount on a line item by a particular discount. Learn more
The discount application that allocates the amount on the line item. Learn more
The `discount_application` object captures the intent of a discount applied on an order. The object can be accessed on customer order and notification templates. Shopify Plus merchants can also access properties of the `discount_allocation` object in the checkout.liquid layout file. Learn more
Describes how a discount selects line items in the cart to be discounted. target_selection has the following possible values: `all:` The discount applies to all line items. `entitled:` The discount applies to a particular subset of line items, often defined by a condition. `explicit:` The discount applies to a specifically selected line item or shipping line. Learn more
Describes the type of item that a discount applies to. target_type has the following possible values: `line_item` `shipping_line` Learn more
The customer-facing name of the discount. For example, `Welcome10` or `CBBWQQAKYBYY`. Learn more
The total amount that the price of an order is reduced by the discount. Learn more
The type of the discount. `type` has the following possible values: `automatic` `discount_code` `manual` `script` Learn more
The value of the discount. Learn more
The value type of the discount. `value_type` has the following possible values: `fixed_amount` `percentage` Learn more
The external_video object can be accessed from the product object's media attribute. It contains information about a Vimeo or YouTube video associated with a product. Learn more
Returns the alt tag of the video set on the product details page of the Shopify admin. Learn more
Returns the aspect ratio of the external video. Learn more
Returns the ID of the external video. Learn more
{% assign external_videos = product.media | where: "media_type", "external_video" %}
{% for external_video in external_videos %}
{{ external_video.external_id }}
{% endfor %}neFK-pv2sKY
JthaEfEsLYgReturns the name of the video host (youtube or vimeo). Learn more
Returns the media_id of the external video. Learn more
Returns the type of the object (external_video). This can be used to filter the product object's media array. Learn more
{% assign external_videos = product.media | where: "media_type", "external_video" %}
{% for external_video in external_videos %}
{{external_video.external_id}}
{% endfor %}neFK-pv2sKY
JthaEfEsLYgReturns the alt tag of the video set on the `product` details page of the Shopify admin. Learn more
The filter object represents a storefront filter. Learn more
Returns an array of filter_value objects that are currently active. Only applies to `list` type filters. Learn more
Returns an array of filter_value objects that are currently inactive. Only applies to `list` type filters. Learn more
Returns the customer-facing label for the filter. Learn more
Returns a filter_value object for the maximum value of `price_range` type filters. Learn more
Returns a filter_value object for the minimum value of `price_range` type filters. Learn more
Returns the name of the filter. For example, `filter.v.option.color`. Learn more
Returns the maximum product price within the current collection. This is only valid for filters of type `price_range`. Learn more
Returns the filter type. Can be `list` or `price_range`. Learn more
Returns the current page URL with the filter's currently applied value parameters removed. Learn more
If you want to remove the <code>Color</code> filter, then the <code>url_to_remove</code> attribute returns the following URL:/collections/all?filter.v.option.size=LReturns an array of filter_value objects for a list type filter. Learn more
The filter_value object represents an individual value from a filter object. Learn more
Returns whether the filter value is active. Returns either `true` or `false`. Learn more
Returns how many results are related to the filter value. Returns a number. Learn more
Returns the customer facing label for the filter value. For example, `Red` or `Rouge`. Learn more
Returns the name of the filter that the filter value belongs to. For example, `filter.v.option.color`. Filters of type `price_range` also include an extra component depending on the `filter_value` source. Learn more
If the filter_value is for a price_range filter's min_value, then the following is returned:filter.v.price.lteReturns the current page URL with the filter value parameter added. Learn more
Returns the current page URL with the filter value parameter removed. Learn more
Returns the value. Learn more
The focal point for an image. The focal point will remain visible when the image is cropped by the theme. Learn more
The horizontal position of the focal point, as a percent of the image width. Returns `50` if no focal point is set. Learn more
The vertical position of the focal point, as a percent of the image height. Returns `50` if no focal point is set. Learn more
The font object is used to access the `font_picker` settings. It can be accessed via the global settings object. Learn more
Returns the position of the baseline within the em box (measured from the bottom). Learn more
{{ settings.heading_font.baseline_ratio }}0.091Returns the suggested fallback font families. Learn more
{{ settings.heading_font.fallback_families }}sans-serifReturns the font's name. Learn more
{{ settings.heading_font.family }}"Neue Haas Unica"Returns the selected font style. Learn more
{{ settings.heading_font.style }}normalReturns `true` if the font is a system font. You can use this attribute to identify whether you need to embed the corresponding font-face for the font. Learn more
Returns the selected font weight. Learn more
{{ settings.heading_font.weight }}400Returns all of the variants within the font's family. Each of the variants is also a `font` object. Learn more
{% for variant in settings.heading_font.variants %}
{{ variant.family }}
{% endfor %}The `forloop` object contains attributes of its parent for loop. Learn more
Returns `true` if it’s the first iteration of the for loop. Returns `false` if it is not the first iteration. Learn more
{% for product in collections.frontpage.products %}
{% if forloop.first == true %}
First time through!
{% else %}
Not the first time.
{% endif %}
{% endfor %}First time through!
Not the first time.
Not the first time.
Not the first time.
Not the first time.Returns the current index of the for loop, starting at 1. Learn more
{% for product in collections.frontpage.products %}
{{ forloop.index }}
{% else %}
// no products in your frontpage collection
{% endfor %}1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16Returns the current index of the for loop, starting at 0. Learn more
{% for product in collections.frontpage.products %}
{{ forloop.index0 }}
{% endfor %}0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15Returns `true` if it’s the last iteration of the for loop. Returns `false` if it is not the last iteration. Learn more
{% for product in collections.frontpage.products %}
{% if forloop.last == true %}
This is the last iteration!
{% else %}
Keep going…
{% endif %}
{% endfor %}Keep going…
Keep going…
Keep going…
Keep going…
Keep going…
This is the last iteration!Returns `forloop.index` in reverse order. Learn more
{% for product in collections.frontpage.products %}
{{ forloop.rindex }}
{% endfor %}16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1Returns `forloop.index0` in reverse order. Learn more
{% for product in collections.frontpage.products %}
{{ forloop.rindex0 }}
{% endfor %}15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0Returns the number of iterations of the for loop. Learn more
<!-- if collections.frontpage.products contains 10 products -->
{% for product in collections.frontpage.products %}
{% capture length %}{{ forloop.length }}{% endcapture %}
{% endfor %}
{{ length }}10The `form` object is used within the form tag. It contains attributes of its parent form. Learn more
Returns the first address line associated with the address. Exclusive to `form` tags with the "address" parameter. Learn more
Returns the second address line associated with the address, if it exists. Exclusive to `form` tags with the "address" parameter. Learn more
Returns the name of the author of the blog article comment. Exclusive to `form` tags with the "article" parameter. Learn more
Returns the content of the blog article comment. Exclusive to `form` tags with the "article" parameter. Learn more
Returns the city associated with the address. Exclusive to `form` tags with the "address" parameter. Learn more
Returns the company name associated with the address, if it exists. Exclusive to `form` tags with the "address" parameter. Learn more
Returns the country associated with the address. Exclusive to `form` tags with the "address" parameter. Learn more
Returns the email address of the blog article comment’s author. Exclusive to `form` tags with the "article" parameter. Learn more
Returns an array of strings if the form was not submitted successfully. The strings returned depend on which fields of the form were left empty or contained errors. Learn more
{% for error in form.errors %}
{{ error }}
{% endfor %}<!-- if the Name field was left empty by the user -->
authorReturns the first name associated with the address. Exclusive to `form` tags with the "address" parameter. Learn more
Returns the id (unique identifier) of the form. Learn more
Returns the last name associated with the address. Exclusive to `form` tags with the "address" parameter. Learn more
Used only for `form` tags with the "customer_login" parameter. The `form.password_needed` attribute always returns `true`. Learn more
Returns the telephone number associated with the address, if it exists. Exclusive to `form` tags with the "address" parameter. Learn more
Returns `true` if the form was submitted successfully, or `false` if the form contained errors. All forms but the address form set this property. The address form is always submitted successfully. Learn more
{% if form.posted_successfully? %}
Comment posted successfully!
{% else %}
{{ form.errors | default_errors }}
{% endif %}Returns the province or state associated with the address. Exclusive to `form` tags with the "address" parameter. Learn more
{{ form.city }}, {{ form.province }}San Francisco, CaliforniaRenders an HTML checkbox that can submit the current form as the customer's default address. Exclusive to `form` tags with the "address" parameter. Learn more
{{ form.set_as_default_checkbox }}<input type="checkbox" id="address_default_address_12345678" name="address[default]" value="1">Returns the zip code or postal code associated with the address. Exclusive to form tags with the "address" parameter. Learn more
The error category strings for errors from a form created by a `form` tag. Learn more
The translated error messages for each value in the `form_errors` array. Learn more
The translated names for each value in the `form_errors` array. Learn more
The `fulfillment` object. Learn more
Returns the name of the fulfillment service. Learn more
Returns a fulfillment’s tracking number, if it exists. Learn more
Tracking Number: {{ fulfillment.tracking_number }}Tracking Number: 1Z5F44813600X02768Returns the URL for a tracking number. Learn more
{{ fulfillment.tracking_url }}http://wwwapps.ups.com/etracking/tracking.cgi?InquiryNumber1=1Z5F44813600X02768&TypeOfInquiryNumber=T&AcceptUPSLicenseAgreement=yes&submit=TrackReturns an array of all line items and their quantity included in the fulfillment. Any line items that have already been fulfilled, or are yet to be fulfilled, will not be included in the array. Learn more
We have fulfilled the following items:
<ul>
{% for line in fulfillment.fulfillment_line_items %}
<li>{{ line.line_item.title }} × {{ line.quantity }}</li>
{% endfor %}
</ul>We have fulfilled the following items:
* T-shirt - White / Medium × 8
* Adorable boots × 1Returns the total number of items included in the fulfillment. Learn more
We have fulfilled {{ fulfillment.item_count }} items of your recent order.We have fulfilled 3 items of your recent order.A file from a `file_reference` type metafield that is neither an image or video. Learn more
The alt text of the media. Learn more
The ID of the file. Learn more
{{ generic_file.id }}21918386454593The media type of the file. Always returns `generic_file`. Learn more
{{ generic_file.media_type }}"generic_file"The position of the media in the `product.media` array. If the source is a `file_reference` metafield, then `nil` is returned. Learn more
{{ generic_file.position }}nullThe preview image of the file. Learn more
The CDN URL text of the file. Learn more
{{ generic_file.url }}"//polinas-potent-potions.myshopify.com/cdn/shop/files/disclaimer.pdf?v=9043651738044769859"The `gift_card` object can be accessed in the following templates: The Gift card created email notification template ‘Email Notifications > Gift card created’. The `gift_card.liquid` template. Learn more
Returns the amount of money remaining on the gift card. Learn more
Returns the code that was used to redeem the gift card. Learn more
Returns the currency that the card was issued in. Learn more
Returns the customer variable of the customer that the gift card is assigned to. Learn more
Hey, {{ gift_card.customer.first_name }}!Hey, Brian!Returns `true` if the card is enabled, or `false` if the card is disabled. Learn more
Returns `true` if the card is expired, or `false` if the card is not. Learn more
Returns the expiration date of the gift card. Learn more
Returns the initial amount of money on the gift card. Learn more
Returns the product associated with the purchased gift card, or returns nothing if there is no associated product. Learn more
Returns the line item properties assigned to the gift card when it was added to the cart. Learn more
Returns the unique URL that links to the gift card’s page on the shop (rendered through gift_card.liquid). Learn more
The group object contains information about each default rule set in the `robots` object for the `robots.txt` file. Learn more
Returns of a list of `rule` objects for each rule in the group. Learn more
Returns the group's `sitemap` object. If the group doesn't require a sitemap, then this returns `blank`. Learn more
Returns the group's `user_agent` object. Learn more
The handle of the resource associated with the current template. Learn more
The handle object will return a value only when an article, blog, collection, page, or product template is being viewed. Learn more
The `image` object returns information about an image. Learn more
Returns the alt tag of the image, set in the Products page of the Admin. Learn more
Returns the aspect ratio (width / height) of the image. Learn more
Returns `true` if the image has been associated with a variant. Returns `false` otherwise. This can be used in cases where you want to create a gallery of images that are not associated with variants. Learn more
Returns the height of the image in pixels. Learn more
Returns the `id` of the image. Learn more
Returns the type of the object (image). Learn more
Returns the position of the image, starting at 1. This is the same as outputting `forloop.index`. Learn more
Returns a preview image for the image, when accessed through a `media` object. For example, `product.featured_media.preview_image`. Learn more
Returns the id of the image's product. Learn more
Returns the relative path of the product image. This is the same as outputting `{{ image }}`. Learn more
{% for image in product.images %}
{{ image.src }}
{{ image }}
{% endfor %}products/my_image.jpg
products/my_image.jpgReturns an array of attributes for the variant that the image is associated with. Learn more
{% for image in product.images %}
{% for variant in image.variants %}
{{ image.src }} - used for the variant: {{ variant.title }}
{% endfor %}
{% endfor %}products/red-shirt.jpeg - used for the variant: Red
products/green-shirt.jpg - used for the variant: Green
products/yellow-shirt.jpg - used for the variant: YellowReturns the width of the image in pixels. Learn more
The presentation settings for an image. Learn more
The focal point for the image. Learn more
Allows you to access all of the images that have been uploaded to a store. Learn more
All of the images that have been uploaded to a store. You can access images from the `images` array by their filename. Learn more
{{ images['potions-header.png'] | image_url: width: 300 | image_tag }}<img src="//polinas-potent-potions.myshopify.com/cdn/shop/files/potions-header.png?v=1650325393&width=300" alt="" srcset="//polinas-potent-potions.myshopify.com/cdn/shop/files/potions-header.png?v=1650325393&width=300 300w" width="300" height="173" style="object-position:1.9231% 9.7917%;">A line item represents a single line in the shopping cart. There is one line item for each distinct product variant in the cart. Learn more
Returns a list of all discount allocations containing the discounted amount and the reference to the parent discount application. `line_item.discount_allocations` is available on line items in carts, checkouts, orders, and draft orders. Learn more
Returns the combined price of all the items in the line item. This is equal to `line_item.final_price` times `line_item.quantity`. Learn more
Returns the price of the line item including all line level discount amounts. Learn more
Returns the fulfillment of the line item. Learn more
Returns the fulfillment service associated with the line item's variant. Line items that have no fulfillment service will return `manual`. Learn more
Returns `true` if the line item's product is a gift card, or `false` if it is not. Learn more
Returns the weight of the line item. Use the `weight_with_unit` filter to format the weight. Learn more
Returns the line item image. Learn more
{{ line_item.image | img_url: 'small' | img_tag }}<img src="//cdn.shopify.com/s/files/1/0159/3350/products/hvt401_red_small.jpg?v=1398706734" />Returns the line item's ID. Learn more
Returns a unique identifier for each item in the cart. Learn more
Returns a list of line-specific `discount_allocation` objects containing the discounted amount and a reference to the parent discount application. Learn more
Returns the total amount of all discounts applied to the line item specifically. This doesn't include discounts that are added to the cart. Learn more
Returns the discount message if a script has applied a discount to the line item. This attribute only has a value if you are using the Script Editor app. Learn more
Returns an array of selected values from the item's product options. Learn more
{% unless line_item.product.has_only_default_variant %}
<ul>
{% for option in line_item.options_with_values %}
<li>{{ option.name }}: {{ option.value }}</li>
{% endfor %}
</ul>
{% endunless %}<ul>
<li>Size: 42mm</li>
<li>Color: Silver</li>
<li>Strap: Stainless Steel</li>
</ul>Returns the original price of the line item before discounts were applied. Learn more
Returns the original price of the line item before discounts were applied. Learn more
Returns the `product` of the line item. Learn more
Returns the id of the line item’s product. Learn more
Returns an array of custom information for an item that has been added to the cart. Learn more
{% assign propertySize = line_item.properties | size %}
{% if propertySize > 0 %}
<ul>
{% for property in line_item.properties %}
<li>{{ property.first }}: {{ property.last }}</li>
{% endfor %}
</ul>
{% endif %}Monogram: My dog is the cutest
Gift wrap: YesReturns the quantity of the line item. Learn more
Returns `true` if the line item requires shipping, or `false` if it does not. This is set in the variant options in the Products page of the Admin. Learn more
Returns a `selling_plan_allocation` object when the line item contains a selling plan. Learn more
Returns the SKU of the line item’s variant. Learn more
Returns the successfully fulfilled quantity of the line item. Learn more
Returns `true` if the line item is taxable, or `false` if it isn’t. This is set in the variant options in the Products page of the Admin. Learn more
Returns the title of this line item. `line_item.title` combines both the line item’s `product.title` and the line item’s `variant.title`, separated by a hyphen. Learn more
{{ line_item.title }}Balloon Shirt - MediumReturns the unit price of the line item. The price reflects any discounts that are applied to the line item. Learn more
Returns a `unit_price_measurement` object for the line item. Learn more
Returns the URL to the product page using variant deep-linking. Learn more
{{ line_item.title | link_to: line_item.url }}<a href="/products/t-shirt?variant=12345678">T-Shirt - Small</a>Returns a URL that can be used to remove the line item from the cart. This is only valid within the context of cart line items. Learn more
Returns the variant of the line item. Learn more
Returns the id of the line item’s variant. Learn more
Returns the vendor name of the line item’s product. Learn more
The `link` object cannot be invoked on its own. It must be invoked inside a linklist. Learn more
Returns `true` if the link is active, or `false` if the link is inactive. Learn more
Similar to `link.active`, but returns true if a child link of the parent link is active, or false if no child links of the parent link are active. Learn more
{{ linklists.main.title }}
{% for link in linklists.main.links %}
{{ link.title }}: child_active: {{ link.child_active }}
{% for sub_link in link.links %}
{{ sub_link.title }}: child_active: {{ sub_link.child_active }}
{% for sub_sub_link in sub_link.links %}
{{ sub_sub_link.title }}: active: {{ sub_sub_link.active }}
{% endfor %}
{% endfor %}
{% endfor %}Main Menu
Home: child_active: false
About Us: child_active: true
In the news: child_active: false
Locations: child_active: true
Montreal: active: true
Ottawa: active: falseReturns true if a child link has a link object with `link.current` equal to `true`. Returns `false` if no child links have a link object with `link.current` equal to `true`. Learn more
{{ linklists.main.title }}
{% for link in linklists.main.links %}
{{ link.title }}: child_current: {{ link.child_current }}
{% for sub_link in link.links %}
{{ sub_link.title }}: child_current: {{ sub_link.child_current }}
{% for sub_sub_link in sub_link.links %}
{{ sub_sub_link.title }}: current: {{ sub_sub_link.current }}
{% endfor %}
{% endfor %}
{% endfor %}Main Menu
Home: child_current: false
About Us: child_current: true
In the news: child_current: false
Locations: child_current: true
Montreal: current: true
Ottawa: current: falseReturns `true` if the page content associated with the `link` is considered a match to the current page. Returns `false` if the content isn't considered a match. Learn more
{% for link in linklists.main.links %}
<a href="{{ link.url }}"
{% if link.current %}aria-current="page" class="highlight"{% endif %}
>
{{ link.title }}
</a>
{% endfor %}<a href="/collections/summer">Summer collection</a>
<a href="/collections/winter" aria-current="page" class="highlight">Winter collection</a>
<a href="/collections/all">All products</a>Returns the number of nested levels that a link contains. Learn more
{% assign menu = linklists.main-menu %}
{{ menu.title }}: {{ menu.levels }}
{% for link in menu.links %}
{{ link.title }}: {{ link.levels }}
{% for sub_link in link.links %}
{{ sub_link.title }}: {{ sub_link.levels }}
{% for sub_sub_link in sub_link.links %}
{{ sub_sub_link.title }}: {{ sub_sub_link.levels }}
{% endfor %}
{% endfor %}
{% endfor %}Main Menu: 3
Home: 0
About Us: 2
Locations: 1
Montreal: 0
Ottawa: 0Returns an array of the child links associated with the parent link. Learn more
Returns the variable associated to the link. The possible types are: product, collection, page, blog. Learn more
{{ link.object.price | money }}$10Returns the title of the link. Learn more
Returns the type of the link. The possible values are: `collection_link`: if the link points to a collection `product_link`: if the link points to a product page `page_link`: if the link points to a page `blog_link`: if the link points to a blog `relative_link`: if the link points to the search page, the home page or /collections/all `http_link`: if the link points to an external web page, or a type or vendor collection (e.g. /collections/types?q=Pants) Learn more
Returns the URL of the link. Learn more
`linklist` objects appear as ‘menus’ in the Navigation page of the Shopify admin. Learn more
Returns the handle of the `linklist`. Learn more
Returns the number of nested levels that a linklist contains. Learn more
Given the following menu structure:
Main menu
└ Home
└ About Us
└ Locations
└ Montreal
└ Ottawa
{% assign menu = linklists.main-menu %}
{{ menu.title }}: {{ menu.levels }}Main Menu: 3Returns an array of links in the `linklist`. Learn more
{% for link in linklists.main-menu.links %}
<a href="{{ link.url }}">{{ link.title }}</a>
{% endfor %}<a href="/">Home</a>
<a href="/collections/all">Catalog</a>
<a href="/blogs/news">Blog</a>
<a href="/pages/about-us">About Us</a>Returns the title of the `linklist`. Learn more
Allows you to access all of the menus in a store. Learn more
Allows you to access all of the menus in a store. You can access a specific menu through the `linklists` object using the menu's handle. Learn more
<!-- Main menu -->
{% for link in linklists.main-menu.links -%}
{{ link.title | link_to: link.url }}
{%- endfor %}<!-- Main menu -->
<a href="/" title="">Home</a>
<a href="/collections/all" title="">Catalog</a>
<a href="/pages/contact" title="">Contact</a>The `localization` object contains information about the currencies and languages that a store supports. Learn more
Returns a list of `country` objects for each country that the store supports. Learn more
Returns a list of `shop_locale` objects for each language that the currently selected country supports. Learn more
Returns the `country` object for the currently selected country. Learn more
Returns the `shop_locale` object for the currently selected language. Learn more
The `location` object contains location information for individual store locations. Learn more
Returns the `address` object corresponding to the location. Learn more
Returns the ID of the location. Learn more
Returns the latitude associated with the location. Returns `nil` if the address is not verified. Learn more
Returns the longitude associated to the location. Returns `nil` if the address is not verified. Learn more
Returns the name of location. Learn more
The `measurement` object contains measurement information for `weight`, `volume`, and `dimension` type metafields. Learn more
Returns the measurement type. Can be `dimension`, `volume`, or `weight`. Learn more
Returns the name of associated unit for the measurement type. For example, if the type is `weight`, then the unit might be `grams`. Learn more
Returns the measurement value. Learn more
The `media` object represents an object returned in a `product.media` array. The media object is an abstract object that can represent images, models, and videos associated with a product. You can use media filters to generate URLs and model-viewer tags so that media is rendered on the product page. Learn more
Returns the alt tag of the media, set in the Products page of the Admin. Learn more
Returns the ID of the media. Learn more
Returns the media type of the object. The `media_type` property can be used to filter the `product.media array` for all media of a desired type. Learn more
{% assign images = product.media | where: "media_type", "image" %}
{% for image in images %}
{{ image.alt }}
{% endfor %}Image of the black stroller
Image of the grey strollerReturns the position of the specific media object in the `product` object's media array. Learn more
Returns a preview image for the media. Learn more
Metafields make it possible to store additional information for articles, blogs, collections, customers, orders, pages, products, the shop, and variants. You can access the `metafield` object through the metafields attribute of these resources. Learn more
Returns `true` if the metafield is a list type. Returns `false` if not. Learn more
Returns the metafield type. Learn more
Returns the metafield value. Learn more
A metaobject entry, which includes the values for a set of fields. The set is defined by the parent `metaobject_definition`. Learn more
Basic information about the metaobject. These properties are grouped under the `system` object to avoid collisions between system property names and user-defined metaobject fields. Learn more
A metaobject definition defines the structure of a metaobject type for the store, which consists of a merchant-defined set of field definitions. Learn more
The metaobjects that follow the definition. Learn more
The total number of entries for the metaobject definition. Learn more
Basic information about a metaobject. These properties are grouped under the `system` object to avoid collisions between system property names and user-defined metaobject fields. Learn more
The unique handle of the metaobject. Learn more
The ID of the metaobject. Learn more
The type of the metaobject definition. This is a free-form string that's defined when the metaobject definition is created. Learn more
The model object can be accessed from the product object's `media` attribute. The `model` object contains information about a 3D model uploaded from the product details page in the Shopify admin. Learn more
Returns the alt tag of the model set on the product details page of the Shopify admin. Learn more
Returns the `media.id` of the model. Learn more
Returns the type of the object (`model`). This can be used to filter the `product` object's media array. Learn more
{% assign models = product.media | where: "media_type", "model" %}
{% for model in models %}
{{ model.alt }}
{% endfor %}Model of the black stroller
Model of the grey strollerReturns the position of the model in the `product` object's media array. Learn more
Returns preview image of the model. Learn more
Returns an array of model source objects. Learn more
The `model_source` object can be accessed from the model object's `sources` array. The `model_source` object contains information about the source files for a model associated with a product. Learn more
Returns the MIME type of the model source file. Learn more
Returns the format of the model source file. Learn more
Returns the URL of the model source file. Learn more
A money value, in the the customer's local (presentment) currency. Learn more
The customer's local (presentment) currency. Learn more
The `order` object can be accessed in Liquid templates with `customer.orders`, in order email templates, and in apps such as Order Printer. Learn more
Returns the custom cart attributes for the order, if there are any. You can add as many custom attributes to your cart as you like. When you're looping through attributes, use `{{ attribute | first }}` to get the name of the attribute, and `{{ attribute | last }}` to get its value. Learn more
{% if order.attributes %}
<p>Order notes:</p>
<ul>
{% for attribute in order.attributes %}
<li><strong>{{ attribute | first }}</strong>: {{ attribute | last }}</li>
{% endfor %}
</ul>
{% endif %}<p>Order notes:</p>
<ul>
<li><strong>Message to merchant</strong>: I love your products! Thanks!</li>
</ul>Returns the billing address of the order. Learn more
Returns `true` if an order is canceled, returns `false` if it is not. Learn more
Returns the timestamp of when an order was canceled. Use the `date` filter to format the timestamp. Learn more
Returns one of the following cancellation reasons, if an order was canceled: items unavailable fraudulent order customer changed/cancelled order other Learn more
Returns the translated output of an order’s `order.cancel_reason` Learn more
English: {{ order.cancel_reason }}
French: {{ order.cancel_reason_label }}English: Items unavailable
French: Produits indisponiblesReturns the timestamp of when an order was created. Use the `date` filter to format the timestamp. Learn more
Returns the customer associated with the order. Learn more
Returns the URL of the customer’s account page. Learn more
{{ order.name | link_to: order.customer_url }}<a href="http://johns-apparel.myshopify.com/account/orders/d94ec4a1956f423dc4907167c9ef0413">#1025</a>Returns an array of discount applications for an order. Learn more
{% for discount_application in order.discount_applications %}
Discount name: {{ discount_application.title }}
Savings: -{{ discount_application.total_allocated_amount | money }}
{% endfor %}Discount name: SUMMER19
Savings: -$20.00Returns the email address associated with an order. Learn more
Returns the financial status of an order. The possible values are: pending authorized paid partially_paid refunded partially_refunded voided Learn more
Returns the translated output of an order’s `financial_status`. Learn more
English: {{ order.financial_status }}
French: {{ order.financial_status_label }}English: Paid
French: PayéeReturns the fulfillment status of an order. Learn more
Returns the translated output of an order’s `fulfillment_status`. Learn more
English: {{ order.fulfillment_status }}
French: {{ order.fulfillment_status_label }}English: Unfulfilled
French: Non confirméeReturns an array of line items from the order. Learn more
Returns the sum of the order's line-item prices after any line item discounts have been applied. The subtotal amount doesn't include cart discounts, taxes (unless taxes are included in the prices), or shipping costs. Learn more
<!-- subtotal = total dollar value of cart items - line item discount -->
Subtotal: {{ order.line_items_subtotal_price | money }}<!-- for a cart containing a $500 product with a $50 line item discount -->
Subtotal: $450.00POS Only. Returns the physical location of the order. You can configure locations in the Locations settings of the admin. Learn more
Returns the link to the order status page for this order. Learn more
Returns the name of the order in the format set in the Standards & formats section of the General Settings of your Shopify admin. Learn more
{{ order.name }}\#1025Returns the note associated with a customer order. Learn more
Special instructions: {{ order.note }}Special instructions: Please deliver after 5 PMReturns the integer representation of the order name. Learn more
{{ order.order_number }}1025Returns the phone number associated with an order, if it exists. Learn more
Returns the shipping address of the order. Learn more
Returns an array of `shipping_method` variables from the order. Learn more
Returns the shipping price of an order. Use a money filter to return the value in a monetary format. Learn more
Returns an array of line items that are used to calculate the subtotal_price of an order. Excludes tip line items. Learn more
Returns the subtotal price of an order. Use a money filter to return the value in a monetary format. Learn more
Returns an array of all of the order's tags. The tags are returned in alphabetical order. Learn more
{% for tag in order.tags %}
{{ tag }}
{% endfor %}new
leather
sale
specialReturns an array of `tax_line` variables for an order. Learn more
{% for tax_line in order.tax_lines %}
Tax ({{ tax_line.title }} {{ tax_line.rate | times: 100 }}%):
{{ tax_line.price | money }}
{% endfor %}Tax (GST 14.0%): $25Returns the order’s tax price. Use a money filter to return the value in a monetary format. Learn more
Returns the total value of all discounts applied to the order. Learn more
Returns the net amount of the order. The `order.total_net_amount` is calculated after refunds are applied. The value is equivalent to `order.total_price` minus `order.total_refunded_amount`. Learn more
Returns the total price of an order. Use a money filter to return the value in a monetary format. Learn more
Returns the total refunded amount of an order. Learn more
Returns an array of transactions from the order. Learn more
The `page` object. Learn more
Returns the author of a page. Learn more
Returns the content of a page. Learn more
Returns the handle of a page. Learn more
Returns the id of a page. Learn more
Returns the timestamp of when the page was created. Use the `date` filter to format the timestamp. Learn more
Returns the name of the custom page template assigned to the page, without the page prefix or the `.liquid` suffix. Returns `nil` if a custom template is not assigned to the page. Learn more
<!-- on page.contact.liquid -->
{{ page.template_suffix }}contactReturns the title of a page. Learn more
Returns the relative URL of a page. Learn more
{{ page.url }}/pages/about-usReturns the meta description of the current page. Learn more
The meta description of the current page.The `page_description` object can be used to provide a brief description of a page for search engine listings and social media previews. Learn more
Returns an image drop for the relevant image to be displayed in social media feeds or search engine listings. Learn more
Returns an image drop for the relevant image to be displayed in social media feeds or search engine listings. For product pages, collection pages, and blog posts, the `page_image` is the resource's featured image if it exists. For example, a product page's `page_image` is the same as its `product.featured_image`. If a featured image does not exist, then the `page_image` is based on the store's social sharing image set in the admin. Learn more
{{ page_image | img_url }}//cdn.shopify.com/s/files/1/0987/1148/files/nice-candle-and-rocks_300x300.jpg?v=1590502771Returns the page title of the current page. The `page_title` object can be used to specify the title of page for search engine listings and social media previews. Learn more
Returns the page title of the current page. Learn more
Allows you to access all of the pages on a store. Learn more
Allows you to access all of the pages on a store. You can access a specific page through the `pages` object using the page's handle. Learn more
{{ pages.contact.title }}
{{ pages['about-us'].title }}Contact
About usThe paginate tag’s navigation is built using the attributes of the `paginate` object. You can also use the `default_pagination` filter for a quicker alternative. Learn more
Returns the number of the current page. Learn more
Returns the total number of items that are on the pages previous to the current one. For example, if you are paginating by 5 items per page and are on the third page, `paginate.current_offset` would return 10 (5 items × 2 pages). Learn more
Returns the total number of items to be paginated. For example, if you are paginating a collection of 120 products, `paginate.items` would return 120. Learn more
Returns an array of all parts of the pagination. A part is a component used to build the navigation for the pagination. Learn more
Returns the part variable for the Next link in the pagination navigation. Learn more
{% if paginate.next.is_link %}
<a href="{{ paginate.next.url }}">{{ paginate.next.title }}</a>
{% endif %}<!-- If we're not on the last page, and there still needs to be a Next link -->
<a href="/collections/all?page=17">Next »</a>Returns the part variable for the Previous link in the pagination navigation. Learn more
{% if paginate.previous.is_link %}
<a href="{{ paginate.previous.url }}">{{ paginate.previous.title }}</a>
{% endif %}<!-- If we're not on the first page, and there still needs to be a Previous link -->
<a href="/collections/all?page=15">« Previous</a>Returns the number of items displayed per page. Learn more
Returns the number of pages created by the pagination tag. Learn more
Each part returned by the `paginate.parts` array represents a link in the pagination's navigation. Learn more
Returns `true` if the part is a link, returns `false` if it is not. Learn more
Returns the title of the part. Learn more
Returns the URL of the part. Learn more
Header-value pairs that make up the list of payment information specific to the payment method. This information can be be used by the customer to complete the transaction offline. Learn more
The header of the payment instruction. These are payment method-specific. Learn more
Contains the corresponding values to the headers of the payment instruction. Learn more
An individual policy of the `shop.policies` object. An individual policy can also be referenced directly on the `shop` object. For example `shop.privacy_policy`. Learn more
Returns the content of the policy. Learn more
{% assign policy = shop.privacy_policy %}
{{ policy.body }}<h2>PRIVACY STATEMENT</h2>
<h3>SECTION 1 - WHAT DO WE DO WITH YOUR INFORMATION?</h3>
<p>When you purchase something from our store...</p>Returns the title of the policy. Learn more
{% for policy in shop.policies %}
{{ policy.title }}
{% endfor %}Privacy policy
Refund policy
Shipping policy
Terms of serviceReturns the URL of the policy. Learn more
{% for policy in shop.policies %}
{{ policy.url }}
{% endfor %}/policies/privacy-policy /policies/refund-policy /policies/shipping-policy /policies/terms-of-serviceCreates an HTML link element that links to a localied version of shopify.com, based on the locale of the store. Learn more
Creates an HTML link element that links to a localied version of shopify.com, based on the locale of the store. Learn more
{{ powered_by_link }}<a target="_blank" rel="nofollow" href="https://www.shopify.com?utm_campaign=poweredby&utm_medium=shopify&utm_source=onlinestore">Powered by Shopify</a>Information about the results from a predictive search query through the Predictive Search API. Learn more
Returns `true` when being referenced inside a section that's been rendered using the Predictive Search API and the Section Rendering API. Returns `false` if not. Learn more
The resources associated with the search query. Learn more
The entered search terms. Learn more
The object types that the search was performed on. Learn more
Contains arrays of objects for each resource type that can be returned by a predictive search query. Learn more
The articles associated with the query. Learn more
The collections associated with the search query. Learn more
The pages associated with the query. Learn more
The products associated with the query. Learn more
The `product` object. Learn more
Returns `true` if a product is available for purchase. Returns `false` if all of the products’ variants `inventory_quantity` values are zero or less, and their `inventory_policy` is not set to ‘Allow users to purchase this item, even if it is no longer in stock.’ Learn more
Returns an array of all of the collections a product belongs to. Learn more
{% for collection in product.collections %}
{{ collection.title }}
{% endfor %}Sale
Shirts
SpringReturns the lowest compare at price of all the product's variants entered in the Shopify admin. This attribute is similar to `product.compare_at_price_min`. Learn more
Returns the highest compare at price. Use one of the money filters to return the value in a monetary format. Learn more
Returns the lowest compare at price. Use one of the money filters to return the value in a monetary format. Learn more
Returns `true` if the `compare_at_price_min` is different from the `compare_at_price_max`. Returns `false` if they are the same. Learn more
Returns the description of the product. Alias for `product.description`. Learn more
Returns a timestamp for when a product was created in the admin. Learn more
{{ product.created_at }}2019-11-01 05:56:37 -0400Returns the description of the product. Learn more
Returns the relative URL of the product’s featured image. Learn more
Can be used to render the first piece of media attached to the product. Learn more
Returns the variant object of the first product variant that is available for purchase. In order for a variant to be available, its `variant.inventory_quantity` must be greater than zero or `variant.inventory_policy` must be set to continue. A variant with no `inventory_policy` is considered available. Learn more
Returns the handle of a product. Learn more
Returns `true` if the product is a gift card. Learn more
Returns `true` if the product only has the default variant. This lets you determine whether to show a variant picker in your product forms. Products that don't have customized variants have a single default variant with its "Title" option set to "Default Title". Learn more
{% if product.has_only_default_variant %}
<input name="id" value="{{ variant.id }}" type="hidden">
{% else %}
<select name="id">
{% for variant in product.variants %}
<option value="{{ variant.id }}">{{ variant.title }}</option>
{% endfor%}
</select>
{% endif %}<select name="id">
<option value="34679843235">Red</option>
<option value="34679843236">Blue</option>
<option value="34679843237">Green</option>
</select>Returns the id of the product. Learn more
Returns an array of the product’s images. Use the `product_img_url` filter to link to the product image on Shopify’s Content Delivery Network. Learn more
{% for image in product.images %}
<img src="{{ image.src | product_img_url: 'medium' }}">
{% endfor %}<img src="//cdn.shopify.com/s/files/1/0087/0462/products/shirt14_medium.jpeg?v=1309278311" />
<img src="//cdn.shopify.com/s/files/1/0087/0462/products/nice_shirt_medium.jpeg?v=1331480777">
<img src="//cdn.shopify.com/s/files/1/0087/0462/products/aloha_shirt_medium.jpeg?v=1331481001">Returns an array of a product's associated `media` objects, sorted by date added. Learn more
{% for media in product.media %}
{% include 'media' %}
{% endfor %}Returns an array of the product’s options. Learn more
Allows direct access to a product's options by their name. The object keys of `options_by_name` are case-insensitive. Learn more
<label>
Color
<select>
{% for color_option in product.options_by_name['Color'].values %}
<option>{{ color_option }}</option>
{% endfor %}
</select>
</label><label>
Color
<select>
<option>Red</option>
<option>Green</option>
</select>
</label>Returns an array of the product's options. Learn more
{% for product_option in product.options_with_values %}
<label>
{{ product_option.name }}
<select>
{% for value in product_option.values %}
<option {% if product_option.selected_value == value %}selected{% endif %}>
{{ value }}
</option>
{% endfor %}
</select>
</label>
{% endfor %}<label>
Color
<select>
<option selected>Red</option>
<option>Green</option>
</select>
</label>Returns the price of the product. Use one of the money filters to return the value in a monetary format. Learn more
Returns the highest price of the product. Use one of the money filters to return the value in a monetary format. Learn more
Returns the lowest price of the product. Use one of the money filters to return the value in a monetary format. Learn more
Returns `true` if the product’s variants have varying prices. Returns `false` if all of the product’s variants have the same price. Learn more
Returns a timestamp for when a product was published on a store. Learn more
{{ product.published_at }}2019-11-01 05:56:37 -0400Returns `true` when all variants of the product have `variant.requires_selling_plan` set to `true`. Learn more
Returns the variant object of the currently-selected variant if there is a valid `?variant=` parameter in the URL. Returns `nil` if there is not. Learn more
{{ product.selected_variant.id }}124746062Returns the variant object of the currently-selected variant if there is a valid `?variant=` query parameter in the URL. If there is no selected variant, the first available variant is returned. In order for a variant to be available, its `variant.inventory_quantity` must be greater than zero or `variant.inventory_policy` must be set to continue. A variant with no `inventory_management` is considered available. Learn more
Returns a `selling_plan_allocation` object based on the following sequential logic: Learn more
Returns the `selling_plan` object based on the value of the `selling_plan` URL parameter, if the parameter value is a valid selling plan ID. Learn more
Returns the `selling_plan_allocation` object based on URL parameters identifying a selling plan and variant. Learn more
An array of `selling_plan_group` objects that include the product’s variants. Learn more
Returns an array of all of the product’s tags. The tags are returned in alphabetical order. Learn more
{% for tag in product.tags %}
{{ tag }}
{% endfor %}new
leather
sale
specialReturns the name of the custom product template assigned to the product, without the product prefix nor the `.liquid` suffix. Returns `nil` if a custom template is not assigned to the product. Learn more
<!-- on product.wholesale.liquid -->
{{ product.template_suffix }}wholesaleReturns the title of the product. Learn more
Returns the type of the product. Learn more
Returns the relative URL of the product. Learn more
{{ product.url }}/products/awesome-shoesReturns an array the product’s variants. Learn more
Returns the vendor of the product. Learn more
The `product_option` object is available for each option in a product options array. The product options array is accessible via `product.options_with_values`. Learn more
Returns the product option's name. Learn more
<ul>
{% for product_option in product.options_with_values %}
<li>{{ product_option.name }}</li>
{% endfor %}
</ul><ul>
<li>Color</li>
<li>Size</li>
</ul>Returns the product option's position in the product options array. Learn more
<ul>
{% for product_option in product.options_with_values %}
<li>{{ product_option.position }} - {{ product_option.name }}</li>
{% endfor %}
</ul><ul>
<li>1 - Color</li>
<li>2 - Size</li>
</ul>Returns the currently selected value for this product option. Learn more
<select>
{% for value in product_option.values %}
<option {% if product_option.selected_value == value %}selected{% endif %}>
{{ value }}
</option>
{% endfor %}
</select><select>
<option selected>Red</option>
<option>Green</option>
</select>Returns an array of possible values for this product option. Learn more
<ul>
{% for value in product_option.values %}
<li>{{ value }}</li>
{% endfor %}
</ul><ul>
<li>Red</li>
<li>Green</li>
</ul>A variant order quantity rule (minimum, maximum, and increment). The default order variant quantity rule is `min=1,max=null,increment=1`. Learn more
The order quantity increment (default 1). Learn more
{{ quantity_rule.increment }}"1"The maximum order quantity. If there's no maximum, then `nil` is returned. Learn more
{{ quantity_rule.max }}nilThe minimum order quantity (default 1). Learn more
{{ quantity_rule.min }}1Information for a rating type metafield. Learn more
The rating value. Learn more
{{ rating.rating }}"4.5"The maximum value of the rating scale. Learn more
{{ rating.scale_max }}"5.0"The minimum value of the rating scale. Learn more
{{ rating.scale_min }}"0.0"A recipient that is associated with a gift card. Learn more
The email of the recipient. Learn more
{{ recipient.email }}"cornelius.potionmaker@gmail.com"The full name of the recipient. Learn more
{{ recipient.name }}"Cornelius Potionmaker"The nickname of the recipient. Learn more
{{ recipient.nickname }}"Cornelius"The `recommendations` object provides product recommendations that are related to a given product, based on data from sales, product descriptions, and relations between products and collections. Product recommendations become more accurate over time as new orders and product data become available. The `recommendations` object can be used and accessed from any file in your theme. Learn more
Returns `true` if the recommendations object is referenced inside a theme section that is rendered via `/recommendations/products?section_id=&product_id=` with valid parameters: `product_id`: id of the section where the `recommendations` object is being used (required) `section_id`: id of the product you want to show recommended products for yes (required) `limit`: Limits number of results, up to a maximum of ten no Learn more
Returns the number of product recommendations, or returns 0 if `recommendations.performed` is `false`. Learn more
Returns product recommendations. These objects are products. Doesn't return any product if `recommendations.performed` is false. Learn more
{% if recommendations.performed %}
{% if recommendations.products_count > 0 %}
{% for product in recommendations.products %}
{{ product.title | link_to: product.url }}
{% endfor %}
{% endif %}
{% else %}
<div class="placeholder">Placeholder animation</div>
{% endif %}When the enclosing section is rendered synchronously:
Placeholder animation
---------------------
When the enclosing section is rendered from the endpoint /recommendations/products?section_id=<section_id>&product_id=<product_id>:
Product title
Another product titleThe `request` object returns information about the domain used to access your store and the page being accessed. Learn more
Returns `true` if the request is being made from the theme editor in the Shopify admin. Learn more
{% if request.design_mode %}
<!-- This will only render in the theme editor -->
{% endif %}You can use `request.host` to check which domain a customer is visiting from. Learn more
{{ request.host }}your-store.myshopify.comReturns the `shop_locale` of the current request. Learn more
{{ request.locale.name }}EnglishReturns the protocol and host of the request. Learn more
{{ product.selected_variant.url | default: product.url | prepend: request.origin }}https://polinas-potent-potions.myshopify.com/products/health-potionReturns the type of the current page. These are the different page types: 404 article blog cart collection list-collections customers/account customers/activate_account customers/addresses customers/login customers/order customers/register customers/reset_password gift_card index page password product Learn more
{{ request.page_type }}collectionReturns the path to the current page. Learn more
{{ request.path }}/collections/classics/products/chambray-shirtReturns `true` if the request is being made from within the online store editor's visual section preview. Returns `false` if not. Learn more
The `robots` object contains the default rule groups for the `robots.txt` file. Learn more
Returns a list of `group` objects for each group of rules. Learn more
You can use the `routes` object to generate dynamic URLs to your storefront. By using them instead of hardcoded links, you can make sure your theme supports any changes to the URL format. Learn more
Returns the account addresses URL. Learn more
Returns the account URL. Learn more
Returns the account login URL. Learn more
Returns the account logout URL. Learn more
Returns the account recover URL. Learn more
Returns the account register URL. Learn more
Returns the URL that points to the collection for all products. Learn more
Returns the cart URL. Learn more
Returns the URL that accepts items to be added to a cart. Learn more
Returns the URL that allows a cart to be changed. Learn more
Returns the URL that will clear the cart. Learn more
Returns the collections URL. Learn more
Returns the product recommendations URL. Learn more
Returns the root URL. Learn more
Returns the search URL. Learn more
The rule object returns an individual rule for the `robots.txt` file, which tells crawlers which pages can, or can't, be accessed. It consists of a directive, which can be either `Allow` or `Disallow`, and a value of the associated URL path. Learn more
Returns the rule directive, which can be either `Allow` to allow crawlers to access the specified URL, or `Disallow` to block them. Learn more
Returns the associated URL path for the rule. Learn more
`script` objects contain information about the Shopify Scripts published in your store. Learn more
Returns the script's ID. Learn more
Returns the script's name. Learn more
{% if scripts.cart_calculate_line_items %}
<p>Check out our sale: {{ scripts.cart_calculate_line_items.name }}</p>
{% endif %}Check out our sale: Buy one chambray shirt and get a second for half priceThe active scripts, of each script type, on the store. There can be only one active script of each type. Currently, the only type accessible in Liquid is `cart_calculate_line_items`. Learn more
The active line item script. If no line item script is currently active, then nil is returned. Learn more
The `search` object. Learn more
Returns `true` if an HTML form with the attribute `action="/search"` was submitted successfully. This allows you to show content based on whether a search was performed or not. Learn more
{% if search.performed %}
<!-- Show search results -->
{% endif %}Returns an array of matching search result items. The items in the array can be a(n): product article page You can access the attributes of the above three objects through search.results. Learn more
Returns the number of results found. Learn more
Returns the string that was entered in the search input box. Use the `highlight` filter to apply a different style to any instances in the search results that match up with `search.terms`. Learn more
{{ item.content | highlight: search.terms }}<!-- If the search term was "Yellow" -->
<strong class="highlight">Yellow</strong> shirts are the best!Returns an array of strings representing the types the search was performed on. The items in the array can be any combination of `article`, `page`, `product`. The search types can be seen in the URL parameters of a search page. For example, s`torefront.com/search?type=article,product&q=*` will have a `search.types` array containing `article` and `product`. Learn more
The `section` object lets you access a section's properties and setting values. Learn more
Returns an array of the section's blocks. Learn more
For static sections, returns the section's file name without `.liquid`. For dynamic sections, returns a dynamically generated ID. Learn more
The 1-based index of the current section within its location. The `index` starts at 1 within each location. Learn more
The 0-based index of the current section within its location. This is the same as the `index` property except that the index starts at 0 instead of 1. Learn more
The scope or context of the section, such as a template, section group, or global. Learn more
Returns an object of the section settings set in the theme editor. Retrieve setting values by referencing the setting's unique `id`. Learn more
<h2>{{ section.settings.heading }}</h2>
<a href="{{ section.settings.featured_collection.url }}">This week's best selling items</a><h2>Weekly promotion</h2> <a href="/collections/new-this-week">This week's best selling items</a>The `selling_plan` object captures the intent of a selling plan applied on a line item. Learn more
Returns the selling plan's description. Learn more
The unique ID of the `selling_plan_group` that the selling plan belongs to. Learn more
The unique ID of the selling plan. Learn more
The selling plan's name. Learn more
An array of `selling_plan_option` objects that contain information about the selling plan's value for a particular `selling_plan_group_option`. Learn more
{% for option in selling_plan.options %}
{{ option.name }} : {{ option.value }}
{% endfor %}Delivery frequency : Every month
Payment frequency : Pay per deliveryAn array of `selling_plan_price_adjustment` objects. A `selling_plan_price_adjustment` describes how a selling plan changes the price of variants for a given period. Learn more
Pay {{ selling_plan_allocation.price_adjustments[0].price | money }} on the first {{ selling_plan.price_adjustments[0].order_count }} orders.Pay $100.00 on the first 3 orders.Returns `true` when the selling plan includes multiple recurring deliveries. Learn more
Returns `true` if the selling plan's ID is identified by the `selling_plan` URL parameter. Learn more
A `selling_plan_option` object contains the name and values of an individual item in the `selling_plan.options` array. Learn more
Returns the selling plan option’s name. Learn more
Returns the index of the the option amongst all the `selling_plan.options`. Learn more
Returns the selling plan option’s value. Learn more
Each `selling_plan_price_adjustment` of the selling plan maps to a `selling_plan_allocation_price_adjustment` in the `selling_plan_allocation` array. The `selling_plan.price_adjustments` describe the intent of the selling plan, while `selling_plan_allocation.price_adjustments` contains the resulting money amounts. Learn more
The number of orders that this price adjustment applies to. Learn more
The 1-based index of the `selling_plan_price_adjustment` in the `selling_plan.price_adjustments` array. Learn more
A float representing the value of price adjustment. The `value_type` determines what this value actually represents. Learn more
The type of the price adjustment, which can be `fixed_amount`, `percentage`, or `price`. Learn more
A selling plan allocation represents how a particular selling plan affects a line item. A selling plan allocation associates a variant with a selling plan. Learn more
The selling plan allocation's compare at price. Learn more
The price charged for each delivery included in a selling plan. Learn more
{{ selling_plan_allocation.price | money }}
{% if selling_plan_allocation.per_delivery_price != selling_plan_allocation.price %}
({{selling_plan_allocation.per_delivery_price }} each)
{% endif %}$1,200.00 ($100.00 each)The price of the line item with the selling plan applied. Learn more
An array of `selling_plan_allocation_price_adjustment` objects. Learn more
Pay {{ selling_plan_allocation.price_adjustments[0].price | money }} on the first {{ selling_plan.price_adjustments[0].order_count }} orders.Pay $100.00 on the first 3 orders.The `selling_plan` that created the allocation. Learn more
The ID of the `selling_plan_group` to which the allocation’s selling plan belongs. Learn more
The unit price of the variant associated with the selling plan. Learn more
Each `selling_plan_allocation_price_adjustment` of the selling plan allocation maps to a `selling_plan_price_adjustment` in the `selling_plan.price_adjustments` array. The `selling_plan.price_adjustments` describes the intent of the selling plan, while `selling_plan_allocation.price_adjustments` contains the resulting money amounts. Learn more
The 1-based index of the `selling_plan_allocation_price_adjustment` in the `selling_plan_allocation.price_adjustments` array. Learn more
The price that will be charged for the `selling_plan_allocation_price_adjustment` period. Learn more
Information about how a specific selling plan affects the amount that a customer needs to pay for a line item at checkout. Learn more
The value of the checkout charge. How this value is interpreted depends on the value type of the checkout charge. Learn more
{{ selling_plan_checkout_charge.value }}100The value type of the checkout charge. Learn more
{{ selling_plan_checkout_charge.value_type }}"percentage"A group of selling plans available for some or all of a product's variants. Selling plans in a group all share the same `selling_plan_option.name` values. Learn more
A unique ID for the selling plan group. Learn more
The name of the selling plan group. Learn more
An array of `selling_plan_group_option` objects. Learn more
{% for option in selling_plan_group.options %}
<label>{{ option.name }}</label>
<select>
{% for value in option.values %}
<option {% if value == option.selected_value %}selected{% endif %}>
{{ value }}
</option>
{% endfor %}
</select>
{% endfor %}<label>Delivery frequency</label>
<select>
<option>Every week (save 10%)</option>
<option selected>Every month (save 5%)</option>
<option>Every 2 months (save 5%)</option>
</select>Returns `true` if the selected selling plan is part of the selling plan group. The selected selling plan is based on the URL parameter `selling_plan`. Learn more
An array of `selling_plan` objects that belong to the `selling_plan_group`. Learn more
An optional string provided by an app to identify selling plan groups created by that app. Learn more
A `selling_plan_group_option` object contains the name and values of an individual item in the `selling_plan_group.options` array. Learn more
Returns the selling plan option’s name. Learn more
Returns the index of the the option amongst all the `selling_plan_group.options`. Learn more
Returns the value for the selling plan group option when a `selling_plan_allocation` is selected. The selected selling plan allocation is based on both the URL parameters `selling_plan` and `id`. Learn more
An array of values for the selling plan group option. Learn more
Allows you to access all of the theme's settings from the `settings_schema.json` file. Learn more
Allows you to access all of the theme's settings from the `settings_schema.json` file. Learn more
{% if settings.favicon != blank %}
<link rel="icon" type="image/png" href="{{ settings.favicon | image_url: width: 32, height: 32 }}">
{% endif %}The `shipping_method` object. Learn more
Returns the handle of the shipping method. The price of the shipping rate is appended to the end of the handle. Learn more
{{ shipping_method.handle }}shopify-international-shipping-25.00Returns the original price of the shipping method before discounts were applied. Use a money filter to return the value in a monetary format. Learn more
{{ shipping_method.original_price | money }}$20.00Returns the price of the shipping method. Use a money filter to return the value in a monetary format. Learn more
{{ shipping_method.price | money }}$15Returns the title of the shipping method. Learn more
{{ shipping_method.title }}International ShippingThe `shop` object can be used and accessed from any file in your theme. Learn more
You can add the attributes below to `shop.address` to return information about a shop’s address. Learn more
Returns the city of the shop's address. Learn more
{{ shop.address.city }}OttawaReturns the company of the shop's address. Learn more
{{ shop.address.company }}ShopifyReturns the country of the shop's address. Learn more
{{ shop.address.country }}CanadaReturns the country of the shop's address in uppercase. Learn more
{{ shop.address.country_upper }}CANADAReturns the province or state of the shop's address. Learn more
{{ shop.address.province }}OntarioReturns an abbreviated form of the province or state of the shop's address. Learn more
{{ shop.address.province_code }}trueReturns the shop's street address. Learn more
{{ shop.address.street }}150 Elgin StreetReturns a summary of the shop's address in the form of street, city, state/province, country. Learn more
{{ shop.address.summary }}150 Elgin Street, Ottawa, Ontario, CanadaReturns the postal or zip code of the shop's address. Learn more
{{ shop.address.zip }}K2P 1L4Returns `true` if customer accounts are optional for completing a checkout and there is a `?checkout_url` parameter in the URL. Otherwise, returns `false`. Learn more
Returns the number of collections in a shop. Learn more
Returns the shop’s currency in three-letter format (e.g. USD). Learn more
Returns `true` when a customer account is required to complete a checkout. Otherwise, returns `false`. Learn more
Returns `true` when a customer account is option to complete a checkout. Otherwise, returns `false`. Learn more
Returns the description of the shop. Learn more
Returns the primary domain of the shop. Learn more
Returns the shop’s email address. Learn more
Returns the list of currency objects that the store accepts. Learn more
Returns an array of accepted credit cards for the shop. Use the `payment_type_img_url` filter to link to the SVG image file of the credit card. Learn more
Returns the shop's ID. Learn more
Returns the shop’s metafields. Metafields can only be set using the Shopify API. Learn more
Returns a string that is used by Shopify to format money without showing the currency. Learn more
Returns a string that is used by Shopify to format money while also displaying the currency. Learn more
Returns the shop’s name. Learn more
Returns the shop’s password page message. Learn more
Returns the `.myshopify.com` URL of a shop. Learn more
Returns the shop's phone number. Learn more
Returns an array of your shop's policy objects. You can set these policies in your store's Legal settings in your Shopify admin. Learn more
Returns a policy object for your store's privacy policy. Learn more
Returns the number of products in a shop. Learn more
Returns an array of `shop_locale`objects. Each object represents a shop locale that's published on the shop. Learn more
Returns a policy object for your store's refund policy. Learn more
Returns the full URL of a shop prepended by the `https` protocol. Learn more
{{ shop.secure_url }}https://johns-apparel.comReturns a policy object for your store's shipping policy. Learn more
Returns a policy object for your store's subscription policy. Learn more
Returns a policy object for your store's terms of service. Learn more
Returns an array of all unique product types in a shop. Learn more
{% for product_type in shop.types %}
{{ product_type | link_to_type }}
{% endfor %}Returns the full URL of a shop. Learn more
{{ shop.url }}http://johns-apparel.comReturns an array of all unique vendors in a shop. Learn more
{% for product_vendor in shop.vendors %}
{{ product_vendor | link_to_vendor }}
{% endfor %}Returns information about the shop's locale. Learn more
Returns the locale endonym name. Learn more
{{ shop_locale.endonym_name }}français canadienReturns the locale code. Learn more
{{ shop_locale.iso_code }}fr-CAReturns the locale name. Learn more
{{ shop_locale.name }}Canadian FrenchReturns whether or not this is the shop's primary locale. Learn more
Returns the root relative URL of the locale. Learn more
The `sitemap` object returns the sitemap for a specific group in the `robots.txt` file. The sitemap provides information about the pages and content on a site, and the relationships between them, which helps crawlers crawl a site more efficiently. Learn more
Returns `Sitemap`. Learn more
Returns the URL that the sitemap is hosted at. Learn more
A sort option for a collection or search results page. Learn more
The customer-facing name of the sort option. The name can be edited by merchants in the language editor. Learn more
{{ sort_option.name }}"Alphabetically, A-Z"The value of the sort option. This value is used when assigning the `collection.sort_by` and `search.sort_by` parameters. Learn more
{{ sort_option.name }}The `store_availability` object is used to show what variants are stocked at physical store locations, regardless of the current stock level. If a location does not stock a variant, then that location will not be returned. Learn more
Returns `true` if the variant has stock. Learn more
Returns the location object that the variant is stocked at. Learn more
Returns `true` if the variant is stocked at a location that has pickup enabled. Learn more
Returns the amount of time it takes for pickup to be ready, For example, `Usually ready in 24 hours`. This value is set in the admin while setting up the local pickup option. Learn more
The `tablerow` object is used within the `tablerow` tag. It contains attributes of its parent for loop. Learn more
Returns the number of iterations of the `tablerow` loop. Learn more
Returns the current index of the `tablerow` loop, starting at 1. Learn more
Returns the current index of the `tablerow` loop, starting at 0. Learn more
Returns `tablerow.index` in reverse order. Learn more
Returns `tablerow.index0` in reverse order. Learn more
Returns `true` if it’s the first iteration of the `tablerow` loop. Returns `false` if it is not the first iteration. Learn more
Returns `true` if it’s the last iteration of the `tablerow` loop. Returns `false` if it is not the last iteration. Learn more
Returns the index of the current row, starting at 1. Learn more
Returns the index of the current row, starting at 0. Learn more
Returns `true` if the current column is the first column in a row. Returns `false` if it is not. Learn more
Returns `true` if the current column is the last column in a row. Returns `false` if it is not. Learn more
The `tax_line` object. Learn more
Returns the title of the tax. Learn more
{{ tax_line.title }}GSTReturns the amount of the tax. Use one of the money filters to return the value in a monetary format. Learn more
{{ tax_line.price | money }}€25Returns the rate of the tax in decimal notation. Learn more
{{ tax_line.rate }}0.14Returns the rate of the tax in percentage format. Learn more
{{ tax_line.rate_percentage }}%14%The `template` object has a handful of attributes. Referencing just `template` returns the name of the template used to render the current page, with the `.liquid` extension omitted. The `template` object can be used and accessed from any file in your theme. Learn more
As a best practice, it's recommended that you apply the template name as a CSS class on your HTML `body` tag. Learn more
<body class="{{ template }}"><body class="product">Returns the name of the template's parent directory. Returns `nil` for templates whose parent directory is the `templates/` folder. Learn more
<!-- If you're on the customers/login.liquid template -->
{{ template.directory }}customersReturns the template's name without the template's custom suffix, if it exists, or the `.liquid` extension. Learn more
<!-- If you're on the product.alternate.liquid template -->
{{ template.name }}productReturns the name of the custom template without the `template.name` prefix or the `.liquid` extension. Returns `nil` if a custom template is not being used. Learn more
<!-- If you're on the product.alternate.liquid template -->
{{ template.suffix }}alternateThe `theme` object contains information about published themes in a shop. You can also use `themes` to iterate through both themes. Learn more
Returns the theme’s id. This is useful for when you want to link a user directly to the theme’s Customize theme page. Learn more
Returns one of the two possible roles of a theme: main or mobile. Learn more
Returns the name of the theme. Learn more
The `transaction` object. Learn more
Returns a unique numeric identifier for the transaction. Learn more
Returns the amount of the transaction. Use one of the money filters to return the value in a monetary format. Learn more
Returns the name of the transaction. Learn more
{{ transaction.name }}c251556901.1Returns the status of the transaction. Learn more
Returns the translated output of a transaction’s status. Learn more
Returns the timestamp of when the transaction was created. Use the `date` filter to format the timestamp. Learn more
Returns text with information from the payment gateway about the payment receipt. This includes whether the payment was a test case and an authorization code if one was included in the transaction. Learn more
Returns the name of the payment gateway used for the transaction. Learn more
{{ transaction.gateway }}Cash on Delivery (COD)The `payment_details` object contains additional properties related to the payment method used in the transaction. `credit_card_company` returns the name of the company who issued the customer’s credit card. `credit_card_number` returns the customer’s credit card number. All but the last four digits are redacted. Learn more
{{ transaction.payment_details.credit_card_company }}: {{ transaction.payment_details.credit_card_number }}Visa: •••• •••• •••• 1234Information about the payment methods used for a transaction. Learn more
The name of the company that issued the credit card used for the transaction. Learn more
{{ transaction_payment_details.credit_card_company }}"Visa"The last four digits of the credit card number of the credit card used for the transaction. Learn more
{{ transaction_payment_details.credit_card_last_four_digits }}"4242"The credit card number of the credit card used for the transaction. All but the last four digits are redacted. Learn more
{{ transaction_payment_details.credit_card_number }}""•••• •••• •••• 4242""The gift card used for the transaction. If no gift card was used, then `nil` is returned. Learn more
{{ transaction_payment_details.gift_card }}"nil"The `unit_price_measurement` object contains information about how units of a product variant are measured. It's used by the `unit_price` attribute to calculate unit prices. Learn more
Returns the type of measurement as a string. For example, `volume`. Learn more
Returns the unit of measurement that's used to measure the `quantity_value`. For example, `l`. Learn more
Returns the quantity of the unit that's included. For example, `2.5`. Learn more
Returns the unit of measurement that's used to measure the `reference_value`. For example, `ml`. Learn more
Returns the reference value that's used to illustrate the base unit price. For example, `100`. Learn more
The author of a blog article. Learn more
Returns `true` if the author is the account owner of the store. Returns `false` if not. Learn more
{{ user.account_owner }}falseThe bio associated with the author's account. If no bio is specified, then `nil` is returned. Learn more
{{ user.bio }}"Polina got her first cauldron at the tender age of six, and she has been passionate about potions ever since!!"The email associated with the author's account. Learn more
{{ user.email }}"polinas.potent.potions@gmail.com"The first name associated with the author's account. Learn more
{{ user.first_name }}"Polina"The URL for the personal website associated with the author's account. If no personal website is specified, then `nil` is returned. Learn more
{{ user.homepage }}nullThe URL for the personal website associated with the author's account. If no personal website is specified, then `nil` is returned. Learn more
{{ user.image }}falseThe last name associated with the author's account. Learn more
{{ user.last_name }}"Waters"The first and last name associated with the author's account. Learn more
{{ user.name }}"Polina Waters"The `user_agent` object returns the user-agent, which is the name of the crawler, for a specific `group` in the `robots.txt` file. It consists of a `User-agent` directive, and a value of the user-agent name. Learn more
Returns `User-agent`. Learn more
Returns the user-agent name. Learn more
The `variant` object. Learn more
Returns `true` if the variant is available to be purchased, or `false` if it is not. In order for a variant to be available, its `variant.inventory_quantity` must be greater than zero or `variant.inventory_policy` must be set to continue. A variant with no `variant.inventory_management` is also considered available. Learn more
Returns the variant’s barcode. Learn more
Returns the variant’s compare at price. Use one of the money filters to return the value in a monetary format. Learn more
Returns the first media item attached to the variant. Learn more
Returns whether the variant has been matched by a storefront filter. Returns `true` if it's been matched, and `false` if not. Learn more
Returns the variant’s unique id. Learn more
Returns the `image` object associated to the variant. Learn more
{{ variant.image.src }}products/red-shirt.jpegReturns `true` if the variant has incoming inventory. Learn more
Returns the variant’s inventory tracking service. Learn more
Returns the string `continue` if the ‘Allow users to purchase this item, even if it is no longer in stock.’ checkbox is checked in the variant options in the Admin. Returns `deny` if it is unchecked. Learn more
Returns the date when the next incoming inventory will arrive. Learn more
Returns the variant’s inventory quantity. Learn more
Returns an array of the variant's product option values. Learn more
{% for option in variant.options %}
- {{ option }}
{% endfor %}- Red
- Small
- WoolReturns the value of the variant’s first option. Learn more
Returns the value of the variant’s second option. Learn more
Returns the value of the variant’s third option. Learn more
Returns the variant’s price. Learn more
Returns the parent `product` object. Learn more
Returns a boolean result as to whether the variant is set to require shipping. Learn more
Returns `true` if the variant is currently selected by the `?variant=` URL parameter. Learn more
Returns a `selling_plan_allocation` object based on the URL parameter `selling_plan`. Learn more
An array of `selling_plan_allocation` objects available for the variant. Learn more
Returns the variant’s SKU. Learn more
Returns an array of `store_availability` objects if `variant.selected` is `true`, or the variant is the product's first available variant. Learn more
Returns a boolean result as to whether taxes will be charged for this variant. Learn more
Returns the concatenation of all the variant’s option values, joined by a /. Learn more
<!-- If variant’s option1, option2, and option3 are "Red", "Small", "Wool", respectively -->
{{ variant.title }}Red / Small / WoolReturns the unit price of the product variant. The price reflects any discounts that are applied to the line item. Unit prices are available only to stores located in Germany or France. Learn more
Returns a unit_price_measurement object for the product variant. Unit prices are available only to stores located in Germany or France. Learn more
Returns the variant’s absolute URL. Learn more
{{ variant.url }}http://my-store.myshopify.com/products/t-shirt?variant=12345678Returns the variant’s weight in grams. Use the `weight_with_unit` filter to convert it to the shop’s weight format or the weight unit configured on the variant. Learn more
Returns the unit for the weight configured on the variant. Works well paired with the `weight_in_unit` attribute and the `weight_with_unit` filter. Learn more
Returns the weight of the product converted to the unit configured on the variant. Works well paired with the `weight_unit` attribute and the `weight_with_unit` filter. Learn more
The `video` object can be accessed from the `product` object's media attribute. It contains information about a video uploaded from the product details page in the Shopify admin. Learn more
Returns the alt tag of the video set on the product details page of the Shopify admin. Learn more
Returns the aspect ratio of the video source file. Learn more
Returns the duration of the video source file. Learn more
Returns the `media_id` of the video. Learn more
Returns the type of the object (`video`). This can be used to filter the `product` object's media array. Learn more
{% assign videos = product.media | where: "media_type", "video" %}
{% for video in videos %}
{{ video.alt }}
{% endfor %}Promotional video for stroller
Features video for strollerReturns the position of the video in the `product` object's media array. Learn more
Returns a preview `image` for the video. Learn more
Returns an array of `video_source` objects. Learn more
The `video_source` object can be accessed from the `video` object's `sources` array. The `video_source` object contains information about the source files for a video associated with a product. Learn more
Returns the format of the video source file (`mp4`/`m3u8`). Learn more
Returns the height of the video source file. Learn more
Returns the MIME type of the video source file. Learn more
Returns the URL of the video source file. Learn more
Returns the width of the video source file. Learn more