{"version":"1.0","tags":[{"name":"assign","category":"variable","summary":"Creates a variable.","description":"The value can be any expression, including filters. Variables live until the end of the file (snippets rendered with render get their own scope).","syntax":"{% assign name = value %}","params":[{"name":"name","type":"string","description":"Variable name.","required":true},{"name":"value","type":"any","description":"Value or expression.","required":true}],"examples":[{"liquid":"{% assign greeting = 'Marhaba' | append: ', Noora' %}{{ greeting }}","id":"tag/assign/1","output":"Marhaba, Noora"}],"related":["capture","increment"],"since":"1.0","shopify":{"status":"same"}},{"name":"break","category":"iteration","summary":"Stops a for loop.","syntax":"{% break %}","examples":[{"liquid":"{% for i in (1..10) %}{% if i > 3 %}{% break %}{% endif %}{{ i }}{% endfor %}","id":"tag/break/1","output":"123"}],"related":["for","continue"],"since":"1.0","shopify":{"status":"same"}},{"name":"capture","category":"variable","summary":"Captures rendered content into a variable.","syntax":"{% capture name %}…{% endcapture %}","params":[{"name":"name","type":"string","description":"Variable that receives the text.","required":true}],"examples":[{"liquid":"{% capture label %}{{ product.title }} · {{ product.vendor }}{% endcapture %}{{ label | upcase }}","id":"tag/capture/1","output":"EMBROIDERED LINEN ABAYA · LAYLA"}],"related":["assign"],"since":"1.0","shopify":{"status":"same"}},{"name":"case","category":"control","summary":"Chooses a branch by value.","syntax":"{% case value %}{% when a, b %}…{% else %}…{% endcase %}","examples":[{"liquid":"{% case product.type %}{% when 'Abayas', 'Kaftans' %}Modest wear{% when 'Fragrance' %}Oud and perfume{% else %}Other{% endcase %}","id":"tag/case/1","output":"Modest wear"}],"related":["if"],"since":"1.0","shopify":{"status":"same"}},{"name":"comment","category":"utility","summary":"Text that isn't rendered.","description":"{% # text %} is a one-tag comment; inside {% liquid %}, lines starting with # are comments.","syntax":"{% comment %}…{% endcomment %} · {% # note %}","examples":[{"liquid":"Shown{% comment %} Not shown {{ product.title }}{% endcomment %}","id":"tag/comment/1","output":"Shown"},{"title":"Inline comment","liquid":"Shown{% # not shown %}{%- liquid\n  # a comment line\n  echo ' too'\n-%}","id":"tag/comment/2","output":"Shown too"}],"since":"1.0","shopify":{"status":"same"}},{"name":"content_for","category":"theme","summary":"Renders theme blocks.","description":"'blocks' renders the current section's (or block's) theme blocks in their saved order. 'block' renders one static block with a fixed type and id. closest.product: value hands an object to every block below.","syntax":"{% content_for 'blocks' %} · {% content_for 'block', type: 'price', id: 'main-price' %}","params":[{"name":"'blocks' | 'block'","type":"string","description":"All theme blocks","or one static block.":null,"required":true},{"name":"type","type":"string","description":"Block file in blocks/ (static block)."},{"name":"id","type":"string","description":"Stable id of the static block."}],"related":["section","render"],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"continue","category":"iteration","summary":"Skips to the next iteration of a for loop.","syntax":"{% continue %}","examples":[{"liquid":"{% for i in (1..5) %}{% if i == 3 %}{% continue %}{% endif %}{{ i }}{% endfor %}","id":"tag/continue/1","output":"1245"}],"related":["for","break"],"since":"1.0","shopify":{"status":"same"}},{"name":"cycle","category":"iteration","summary":"Outputs the next of a list of strings on each call.","syntax":"{% cycle 'odd', 'even' %}","examples":[{"liquid":"{% for i in (1..4) %}{% cycle 'odd', 'even' %} {% endfor %}","id":"tag/cycle/1","output":"odd even odd even"}],"related":["for"],"since":"1.0","shopify":{"status":"same"}},{"name":"decrement","category":"variable","summary":"Subtracts one from a counter, then outputs it.","syntax":"{% decrement name %}","examples":[{"liquid":"{% decrement stock %} {% decrement stock %}","id":"tag/decrement/1","output":"-1 -2"}],"related":["increment"],"since":"1.0","shopify":{"status":"same"}},{"name":"doc","category":"utility","summary":"Documents a snippet or block for the code editor; it isn't rendered.","syntax":"{% doc %}@param {product} product - The product to show{% enddoc %}","examples":[{"liquid":"Card{% doc %}@param {string} title{% enddoc %}","id":"tag/doc/1","output":"Card"}],"since":"1.0","shopify":{"status":"partial","note":"Accepted and removed; the editor doesn't read @param types yet."}},{"name":"echo","category":"utility","summary":"Outputs an expression (useful inside liquid tags).","syntax":"{% echo value %}","examples":[{"liquid":"{% echo product.title | upcase %}","id":"tag/echo/1","output":"EMBROIDERED LINEN ABAYA"}],"related":["liquid"],"since":"1.0","shopify":{"status":"same"}},{"name":"for","category":"iteration","summary":"Repeats a block for each item.","description":"Inside the loop, forloop gives the position. limit and offset take part of the array, reversed walks it backwards, and else renders when the array is empty. Loops stop after 10,000 iterations per render.","syntax":"{% for item in array limit: 4 offset: 0 reversed %}…{% else %}…{% endfor %}","params":[{"name":"limit","type":"number","description":"Most items to loop over."},{"name":"offset","type":"number","description":"Items to skip first."},{"name":"reversed","type":"flag","description":"Loop from the end."}],"examples":[{"liquid":"{% for variant in product.variants %}{{ forloop.index }}. {{ variant.title }}{% unless forloop.last %}, {% endunless %}{% endfor %}","id":"tag/for/1","output":"1. S / Sand, 2. M / Sand, 3. L / Sand"},{"title":"Ranges and else","liquid":"{% for i in (1..3) %}{{ i }}{% endfor %} {% for item in cart.discounts %}{{ item }}{% else %}No discounts{% endfor %}","id":"tag/for/2","output":"123"}],"related":["break","continue","cycle","tablerow","paginate"],"since":"1.0","shopify":{"status":"same"}},{"name":"form","category":"html","summary":"Renders an HTML form for a storefront action.","description":"Outputs <form> with the right action and hidden fields. Supported types: product, cart, contact, customer, newsletter, customer_login, create_customer, recover_customer_password, reset_customer_password, activate_customer_password, customer_address, guest_login, localization, storefront_password, currency, new_comment. Inside, form gives errors and posted_successfully?. Other parameters become attributes; return_to sets where to go after.","syntax":"{% form 'product', product, class: 'product-form' %}…{% endform %}","params":[{"name":"type","type":"string","description":"Form type.","required":true},{"name":"object","type":"object","description":"The product (product form), article (new_comment) or address."},{"name":"return_to","type":"string","description":"Path to redirect to after a successful post."}],"examples":[{"liquid":"{% form 'contact', class: 'contact' %}<input name=\"contact[email]\">{% endform %}","id":"tag/form/1","output":"<form method=\"post\" action=\"/contact\" id=\"form-contact\" accept-charset=\"UTF-8\" class=\"contact\"><input type=\"hidden\" name=\"form_type\" value=\"contact\"><input type=\"hidden\" name=\"utf8\" value=\"✓\"><input name=\"contact[email]\"></form>"}],"related":["form"],"since":"1.0","shopify":{"status":"same"}},{"name":"if","category":"control","summary":"Renders a block when a condition is true.","description":"Combine conditions with and / or (evaluated right to left, no parentheses). Compare with ==, !=, >, <, >=, <= and contains. Only false and nil are falsy; empty strings and 0 are truthy, so test for emptiness with blank or empty.","syntax":"{% if condition %}…{% elsif other %}…{% else %}…{% endif %}","examples":[{"liquid":"{% if product.available %}In stock{% else %}Sold out{% endif %}","id":"tag/if/1","output":"In stock"},{"title":"Testing for empty values","liquid":"{% if product.description != blank %}Has a description{% endif %}{% if cart.items == empty %} · empty cart{% else %} · {{ cart.item_count }} items{% endif %}","id":"tag/if/2","output":"Has a description · 3 items"}],"related":["unless","case"],"since":"1.0","shopify":{"status":"same"}},{"name":"increment","category":"variable","summary":"Outputs a counter, then adds one to it.","description":"Counters are separate from variables made with assign and start at 0.","syntax":"{% increment name %}","examples":[{"liquid":"{% increment cards %}{% increment cards %}{% increment cards %}","id":"tag/increment/1","output":"012"}],"related":["decrement"],"since":"1.0","shopify":{"status":"same"}},{"name":"javascript","category":"html","summary":"JavaScript of a section or block, output once per page.","syntax":"{% javascript %}…{% endjavascript %}","related":["stylesheet"],"since":"1.0","shopify":{"status":"partial","note":"Output inline once per page rather than bundled into one file."},"examples":[]},{"name":"layout","category":"theme","summary":"Picks the layout of a template.","description":"Layouts are files in layout/; theme.liquid is the default. none renders the template without a layout.","syntax":"{% layout 'alternate' %} · {% layout none %}","since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"liquid","category":"utility","summary":"Several tags in one block, one per line, without delimiters.","description":"Use echo to output inside it.","syntax":"{% liquid … %}","examples":[{"liquid":"{%- liquid\n  assign count = product.variants | size\n  if count > 1\n    echo count | append: ' options'\n  else\n    echo 'One option'\n  endif\n-%}","id":"tag/liquid/1","output":"3 options"}],"related":["echo"],"since":"1.0","shopify":{"status":"same"}},{"name":"paginate","category":"iteration","summary":"Splits a list into pages.","description":"Works on paginated lists (collection.products, blog.articles, search.results, collections, customer.orders). Page size 1 to 250; the page comes from ?page=. Inside, paginate has the page links; pass it to default_pagination for ready-made links.","syntax":"{% paginate collection.products by 24 %}…{% endpaginate %}","params":[{"name":"list","type":"array","description":"A paginated list.","required":true},{"name":"by","type":"number","description":"Items per page (1 to 250).","required":true}],"related":["default_pagination","paginate"],"since":"1.0","shopify":{"status":"partial","note":"window_size is accepted and ignored."},"examples":[]},{"name":"raw","category":"utility","summary":"Outputs Liquid code without running it.","syntax":"{% raw %}…{% endraw %}","examples":[{"liquid":"{% raw %}{{ product.title }}{% endraw %}","id":"tag/raw/1","output":"{{ product.title }}"}],"since":"1.0","shopify":{"status":"same"}},{"name":"render","category":"theme","summary":"Renders a snippet in its own scope.","description":"The snippet sees global objects and the parameters you pass, not the caller's variables. \"with x as name\" passes one value; \"for list as item\" renders once per item, with forloop. Errors in a snippet show a marker in the theme editor and are hidden from shoppers.","syntax":"{% render 'snippet', key: value %} · {% render 'card' with product as item %} · {% render 'card' for products as item %}","params":[{"name":"snippet","type":"string","description":"File name in snippets/, without .liquid.","required":true},{"name":"key: value","type":"any","description":"Variables the snippet receives."}],"examples":[{"liquid":"{% render 'badge', label: 'New' %}{% render 'badge' for product.tags as label %}","files":{"snippets/badge.liquid":"<span class=\"badge\">{{ label }}</span>"},"id":"tag/render/1","output":"<span class=\"badge\">New</span><span class=\"badge\">linen</span><span class=\"badge\">new</span><span class=\"badge\">summer</span>"}],"related":["section"],"since":"1.0","shopify":{"status":"partial","note":"As in Shopify. The older include tag isn't supported: use render."}},{"name":"schema","category":"theme","summary":"A section's or block's settings, blocks and presets (JSON).","description":"Never rendered. The visual editor builds its forms from it. See the section schema guide.","syntax":"{% schema %}{ \"name\": \"Hero\", \"settings\": […] }{% endschema %}","since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"section","category":"theme","summary":"Renders a section statically.","description":"Its settings come from the section's schema defaults or the theme's settings_data. Use it in layouts and custom pages; templates list their sections in JSON instead.","syntax":"{% section 'name' %}","examples":[{"liquid":"{% section 'promo' %}","files":{"sections/promo.liquid":"<p class=\"promo\">{{ section.settings.text }}</p>{% schema %}{\"name\":\"Promo\",\"settings\":[{\"type\":\"text\",\"id\":\"text\",\"label\":\"Text\",\"default\":\"Eid sale: 20% off\"}]}{% endschema %}"},"id":"tag/section/1","output":"<div id=\"shopify-section-promo\" class=\"shopify-section\"><p class=\"promo\">Eid sale: 20% off</p></div>"}],"related":["sections","render"],"since":"1.0","shopify":{"status":"same"}},{"name":"sections","category":"theme","summary":"Renders a section group, such as the header or footer.","description":"Groups are JSON files in sections/ (header-group.json). Merchants add and reorder their sections in the visual editor.","syntax":"{% sections 'header-group' %}","related":["section"],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"style","category":"html","summary":"CSS that updates live in the visual editor.","description":"Wraps the content in a <style> tag. Settings used inside update as the merchant edits.","syntax":"{% style %}…{% endstyle %}","examples":[{"liquid":"{% style %}.price { color: {{ '#8A1538' }}; }{% endstyle %}","id":"tag/style/1","output":"<style data-sooquna>.price { color: #8A1538; }</style>"}],"related":["stylesheet"],"since":"1.0","shopify":{"status":"same"}},{"name":"stylesheet","category":"html","summary":"CSS of a section or block, output once per page.","description":"However many times the section renders, its stylesheet appears once. Liquid isn't processed inside.","syntax":"{% stylesheet %}…{% endstylesheet %}","related":["javascript","style"],"since":"1.0","shopify":{"status":"partial","note":"Output inline once per page rather than bundled into one file."},"examples":[]},{"name":"tablerow","category":"iteration","summary":"Generates table rows and cells for each item.","description":"Outputs <tr> and <td> elements; cols sets the cells per row. Wrap it in a <table>.","syntax":"{% tablerow item in array cols: 3 %}…{% endtablerow %}","params":[{"name":"cols","type":"number","description":"Cells per row."},{"name":"limit","type":"number","description":"Most items."},{"name":"offset","type":"number","description":"Items to skip."}],"examples":[{"liquid":"<table>{% tablerow i in (1..4) cols: 2 %}{{ i }}{% endtablerow %}</table>","id":"tag/tablerow/1","output":"<table><tr class=\"row1\"><td class=\"col1\">1</td><td class=\"col2\">2</td></tr><tr class=\"row2\"><td class=\"col1\">3</td><td class=\"col2\">4</td></tr></table>"}],"related":["for"],"since":"1.0","shopify":{"status":"same"}},{"name":"unless","category":"control","summary":"Renders a block when a condition is false.","syntax":"{% unless condition %}…{% endunless %}","examples":[{"liquid":"{% unless product.tags contains 'final-sale' %}Free returns{% endunless %}","id":"tag/unless/1","output":"Free returns"}],"related":["if"],"since":"1.0","shopify":{"status":"same"}}],"filters":[{"name":"abs","category":"math","summary":"Absolute value.","syntax":"number | abs","returns":"number","examples":[{"liquid":"{{ -12 | abs }}","id":"filter/abs/1","output":"12"}],"since":"1.0","shopify":{"status":"same"}},{"name":"append","category":"string","summary":"Adds a string to the end.","syntax":"string | append: string","returns":"string","params":[{"name":"string","type":"string","description":"Text to add.","required":true}],"examples":[{"liquid":"{{ 'linen-abaya' | append: '.jpg' }}","id":"filter/append/1","output":"linen-abaya.jpg"}],"related":["prepend"],"since":"1.0","shopify":{"status":"same"}},{"name":"asset_img_url","category":"url","summary":"URL of an image in assets/.","syntax":"'file' | asset_img_url","returns":"string","examples":[{"liquid":"{{ 'base.css' | asset_img_url: '300x' }}","id":"filter/asset_img_url/1","output":"/cdn/shop/t/1/assets/base.css?v=aaaaaaaaaaaa"}],"related":["asset_url"],"since":"1.0","shopify":{"status":"partial","note":"The size argument is ignored: the file's URL is returned. Use image_url with images from settings to resize."}},{"name":"asset_url","category":"url","summary":"URL of a file in the theme's assets/ folder.","description":"The URL includes a version, so browsers cache it until the file changes.","syntax":"'file' | asset_url","returns":"string","examples":[{"liquid":"{{ 'base.css' | asset_url }}","id":"filter/asset_url/1","output":"/cdn/shop/t/1/assets/base.css?v=aaaaaaaaaaaa"}],"related":["stylesheet_tag","script_tag"],"since":"1.0","shopify":{"status":"same"}},{"name":"at_least","category":"math","summary":"Limits a number to a minimum.","syntax":"number | at_least: number","returns":"number","examples":[{"liquid":"{{ 3 | at_least: 5 }}","id":"filter/at_least/1","output":"5"}],"since":"1.0","shopify":{"status":"same"}},{"name":"at_most","category":"math","summary":"Limits a number to a maximum.","syntax":"number | at_most: number","returns":"number","examples":[{"liquid":"{{ 8 | at_most: 5 }}","id":"filter/at_most/1","output":"5"}],"since":"1.0","shopify":{"status":"same"}},{"name":"capitalize","category":"string","summary":"Upper-cases the first character, lower-cases the rest.","syntax":"string | capitalize","returns":"string","examples":[{"liquid":"{{ 'eID collection' | capitalize }}","id":"filter/capitalize/1","output":"Eid collection"}],"since":"1.0","shopify":{"status":"same"}},{"name":"ceil","category":"math","summary":"Rounds up to an integer.","syntax":"number | ceil","returns":"number","examples":[{"liquid":"{{ 4.2 | ceil }}","id":"filter/ceil/1","output":"5"}],"since":"1.0","shopify":{"status":"same"}},{"name":"color_brightness","category":"color","summary":"Perceived brightness of a color (0–255).","description":"Above about 128 the color is light, so dark text reads on it.","syntax":"color | color_brightness","returns":"number","examples":[{"liquid":"{% assign b = '#8A1538' | color_brightness %}{{ b | round }}{% if b > 128 %} dark text{% else %} light text{% endif %}","id":"filter/color_brightness/1","output":"60 light text"}],"since":"1.0","shopify":{"status":"same"}},{"name":"color_darken","category":"color","summary":"Darkens a color by a percentage.","syntax":"color | color_darken: amount","returns":"string","examples":[{"liquid":"{{ '#8A1538' | color_darken: 20 }}","id":"filter/color_darken/1","output":"#6e112d"}],"related":["color_lighten"],"since":"1.0","shopify":{"status":"same"}},{"name":"color_lighten","category":"color","summary":"Lightens a color by a percentage.","syntax":"color | color_lighten: amount","returns":"string","examples":[{"liquid":"{{ '#8A1538' | color_lighten: 20 }}","id":"filter/color_lighten/1","output":"#a14460"}],"related":["color_darken"],"since":"1.0","shopify":{"status":"same"}},{"name":"color_mix","category":"color","summary":"Mixes two colors (weight 0–100 is the first color's share).","syntax":"color | color_mix: other, weight","returns":"string","examples":[{"liquid":"{{ '#8A1538' | color_mix: '#ffffff', 50 }}","id":"filter/color_mix/1","output":"#c58a9c"}],"since":"1.0","shopify":{"status":"same"}},{"name":"color_modify","category":"color","summary":"Changes one channel of a color.","syntax":"color | color_modify: 'alpha', 0.5","returns":"string","params":[{"name":"channel","type":"string","description":"red, green, blue, alpha, hue, saturation or lightness.","required":true},{"name":"value","type":"number","description":"New value.","required":true}],"examples":[{"liquid":"{{ '#8A1538' | color_modify: 'alpha', 0.5 }}","id":"filter/color_modify/1","output":"rgba(138, 21, 56, 0.5)"}],"since":"1.0","shopify":{"status":"same"}},{"name":"color_to_rgb","category":"color","summary":"A color as rgb().","syntax":"color | color_to_rgb","returns":"string","examples":[{"liquid":"{{ '#8A1538' | color_to_rgb }}","id":"filter/color_to_rgb/1","output":"rgb(138, 21, 56)"}],"since":"1.0","shopify":{"status":"same"}},{"name":"compact","category":"array","summary":"Removes nil items.","syntax":"array | compact","returns":"array","examples":[{"liquid":"{{ product.variants | map: 'barcode' | compact | size }}","id":"filter/compact/1","output":"1"}],"since":"1.0","shopify":{"status":"same"}},{"name":"concat","category":"array","summary":"Joins two arrays.","syntax":"array | concat: array","returns":"array","examples":[{"liquid":"{% assign a = 'S,M' | split: ',' %}{% assign b = 'L' | split: ',' %}{{ a | concat: b | join: ' ' }}","id":"filter/concat/1","output":"S M L"}],"since":"1.0","shopify":{"status":"same"}},{"name":"date","category":"date","summary":"Formats a date in the store's time zone.","description":"Takes a strftime format, or format: with a named format (abbreviated_date, basic, date, on_date, long, short). On Arabic pages month and day names are Arabic, and calendar: 'hijri' gives the Hijri date. 'now' is the current time.","syntax":"date | date: '%d %b %Y' · date | date: format: 'long' · date | date: calendar: 'hijri'","returns":"string","params":[{"name":"format","type":"string","description":"strftime format (default \"%b %d, %Y\")."},{"name":"calendar","type":"string","description":"hijri or gregorian."}],"examples":[{"liquid":"{{ article.published_at | date: '%d %B %Y' }} · {{ article.published_at | date: format: 'basic' }}","id":"filter/date/1","output":"14 March 2026 · 03/14/2026"},{"title":"Arabic page","liquid":"{{ article.published_at | date: '%d %B %Y' }} · {{ article.published_at | date: calendar: 'hijri' }}","lang":"ar","id":"filter/date/2","output":"14 مارس 2026 · 25 رمضان 1447 هـ"}],"related":["time_tag"],"since":"1.0","shopify":{"status":"partial","note":"Adds Arabic month names and the Hijri calendar."}},{"name":"default","category":"string","summary":"A fallback for nil, false or empty values.","description":"allow_false keeps false as a value.","syntax":"value | default: fallback","returns":"any","params":[{"name":"fallback","type":"any","description":"Value to use instead.","required":true},{"name":"allow_false","type":"boolean","description":"Treat false as a value."}],"examples":[{"liquid":"{{ product.metafields.custom.subtitle | default: 'Made in Doha' }}","id":"filter/default/1","output":"Made in Doha"}],"since":"1.0","shopify":{"status":"same"}},{"name":"default_pagination","category":"html","summary":"Pagination links for a paginate block.","syntax":"paginate | default_pagination","returns":"html","related":["paginate"],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"divided_by","category":"math","summary":"Divides by a number.","description":"Dividing integers gives an integer (rounded down). Divide by a decimal (100.0) for a decimal result.","syntax":"number | divided_by: number","returns":"number","examples":[{"liquid":"{{ 10 | divided_by: 4 }} · {{ 10 | divided_by: 4.0 }}","id":"filter/divided_by/1","output":"2 · 2.5"}],"since":"1.0","shopify":{"status":"same"}},{"name":"downcase","category":"string","summary":"Lower-cases a string.","syntax":"string | downcase","returns":"string","examples":[{"liquid":"{{ 'Royal OUD' | downcase }}","id":"filter/downcase/1","output":"royal oud"}],"related":["upcase"],"since":"1.0","shopify":{"status":"same"}},{"name":"escape","category":"html","summary":"Escapes HTML characters.","description":"Output is escaped automatically (see \"Auto-escaping\"), so you rarely need this; it's kept so ported themes work. Text is escaped once either way.","syntax":"string | escape","returns":"string","examples":[{"liquid":"<img alt=\"{{ 'Oud & musk \"gift\" set' | escape }}\">","id":"filter/escape/1","output":"<img alt=\"Oud &amp; musk &#34;gift&#34; set\">"}],"related":["escape_once","strip_html"],"since":"1.0","shopify":{"status":"partial","note":"Sooquna escapes all output automatically, so escape is optional; it never escapes twice."}},{"name":"escape_once","category":"html","summary":"Escapes HTML without escaping existing entities twice.","syntax":"string | escape_once","returns":"string","examples":[{"liquid":"{{ '1 &lt; 2 & 3' | escape_once }}","id":"filter/escape_once/1","output":"1 &lt; 2 &amp; 3"}],"related":["escape"],"since":"1.0","shopify":{"status":"same"}},{"name":"file_img_url","category":"url","summary":"Image URL of a file (compatibility).","syntax":"'file' | file_img_url","returns":"string","since":"1.0","shopify":{"status":"partial","note":"Size argument ignored."},"examples":[]},{"name":"file_url","category":"url","summary":"URL of a file uploaded in the theme's assets.","syntax":"'file' | file_url","returns":"string","since":"1.0","shopify":{"status":"partial","note":"Resolves files in assets/; for merchant uploads use an image_picker or url setting."},"examples":[]},{"name":"first","category":"array","summary":"First item of an array.","syntax":"array | first","returns":"any","examples":[{"liquid":"{{ product.variants | first | map: 'title' }}{{ product.tags | first }}","id":"filter/first/1","output":"linen"}],"related":["last"],"since":"1.0","shopify":{"status":"same"}},{"name":"floor","category":"math","summary":"Rounds down to an integer.","syntax":"number | floor","returns":"number","examples":[{"liquid":"{{ 4.8 | floor }}","id":"filter/floor/1","output":"4"}],"since":"1.0","shopify":{"status":"same"}},{"name":"font_face","category":"font","summary":"@font-face rule for a font setting (compatibility).","description":"Outputs nothing. Self-host your fonts in assets/ with @font-face rules in your CSS; see the fonts guide for Arabic font choices.","syntax":"settings.heading_font | font_face","returns":"html","since":"1.0","shopify":{"status":"stub","note":"Sooquna has no hosted font library yet: outputs nothing so ported themes still render."},"examples":[]},{"name":"font_modify","category":"font","summary":"A font setting at another weight or style (compatibility).","syntax":"font | font_modify: 'weight', 'bold'","returns":"font","since":"1.0","shopify":{"status":"stub","note":"Returns the font unchanged."},"examples":[]},{"name":"font_url","category":"font","summary":"URL of a font file (compatibility).","syntax":"font | font_url","returns":"string","since":"1.0","shopify":{"status":"stub","note":"Returns an empty string."},"examples":[]},{"name":"format_address","category":"html","summary":"An address as HTML lines.","syntax":"address | format_address","returns":"html","examples":[{"liquid":"{{ customer_address | format_address }}","id":"filter/format_address/1","output":"Mariam Al-Thani<br>Building 12, Al Corniche St<br>Doha<br>Qatar"}],"since":"1.0","shopify":{"status":"same"}},{"name":"global_asset_url","category":"url","summary":"URL of a shared asset (compatibility).","syntax":"'file' | global_asset_url","returns":"string","since":"1.0","shopify":{"status":"partial","note":"Resolves to the theme's assets/ folder: ship the file with your theme."},"examples":[]},{"name":"handle","category":"url","summary":"Turns a string into a handle (lowercase, dashes).","description":"Arabic letters are kept, so Arabic titles get readable handles.","syntax":"string | handle","returns":"string","examples":[{"liquid":"{{ 'Royal Oud – Gift Set!' | handle }} · {{ 'عود ملكي' | handle }}","id":"filter/handle/1","output":"royal-oud-gift-set · عود-ملكي"}],"related":["handleize"],"since":"1.0","shopify":{"status":"partial","note":"Keeps Arabic and other non-Latin letters instead of dropping them."}},{"name":"handleize","category":"url","summary":"Same as handle.","syntax":"string | handleize","returns":"string","examples":[{"liquid":"{{ 'New In' | handleize }}","id":"filter/handleize/1","output":"new-in"}],"related":["handle"],"since":"1.0","shopify":{"status":"partial","note":"Keeps Arabic and other non-Latin letters."}},{"name":"highlight","category":"html","summary":"Wraps search terms in <strong class=\"highlight\">.","syntax":"string | highlight: terms","returns":"html","examples":[{"liquid":"{{ 'Royal oud gift set' | highlight: 'oud' }}","id":"filter/highlight/1","output":"Royal <strong class=\"highlight\">oud</strong> gift set"}],"since":"1.0","shopify":{"status":"same"}},{"name":"image_tag","category":"media","summary":"A responsive <img> with srcset, width, height and lazy loading.","description":"Use after image_url. srcset covers standard widths up to twice the displayed width. Images below the fold load lazily; pass preload: true for the main image (it then gets fetchpriority=high). Also takes alt, sizes, widths ('360,720'), class, id, style and loading.","syntax":"image | image_url: width: 800 | image_tag: sizes: '50vw', preload: true","returns":"html","params":[{"name":"alt","type":"string","description":"Alt text (default the image's)."},{"name":"sizes","type":"string","description":"sizes attribute."},{"name":"widths","type":"string","description":"Comma-separated srcset widths."},{"name":"preload","type":"boolean","description":"Eager loading with fetchpriority=high."},{"name":"loading","type":"string","description":"lazy (default) or eager."},{"name":"class, id, style","type":"string","description":"Attributes."}],"examples":[{"liquid":"{{ product.featured_image | image_url: width: 360 | image_tag: sizes: '50vw', class: 'card__img' }}","id":"filter/image_tag/1","output":"<img src=\"https://cdn.sooquna.store/s/sample/abaya.jpg\" alt=\"Linen abaya\" loading=\"lazy\" sizes=\"50vw\" class=\"card__img\">"}],"related":["image_url"],"since":"1.0","shopify":{"status":"same"}},{"name":"image_url","category":"media","summary":"URL of an image at a size, served as WebP from the CDN.","description":"Pass an image, or a product, variant, collection or line item (its first image). width alone returns the smallest pre-generated size at least that wide; height or crop return a signed, resized copy. Chain image_tag to get a responsive <img>.","syntax":"image | image_url: width: 800, height: 600, crop: 'center'","returns":"string","params":[{"name":"width","type":"number","description":"Width in pixels."},{"name":"height","type":"number","description":"Height in pixels."},{"name":"crop","type":"string","description":"center, top, bottom, left or right (with height or square)."}],"examples":[{"liquid":"{{ product.featured_image | image_url: width: 720 }}","id":"filter/image_url/1","output":"https://cdn.sooquna.store/s/sample/abaya.jpg"}],"related":["image_tag"],"since":"1.0","shopify":{"status":"partial","note":"Always WebP; format and pad_color aren't supported."}},{"name":"img_tag","category":"media","summary":"A plain lazy <img> tag (older form).","syntax":"url | img_tag: alt","returns":"html","examples":[{"liquid":"{{ '/logo.png' | img_tag: 'Logo' }}","id":"filter/img_tag/1","output":"<img src=\"/logo.png\" alt=\"Logo\" loading=\"lazy\">"}],"since":"1.0","deprecated":"image_tag","shopify":{"status":"partial","note":"Takes alt only; use image_tag for srcset and sizes."}},{"name":"img_url","category":"media","summary":"Image URL at a size ('400x', '400x300', 'master').","syntax":"image | img_url: '600x'","returns":"string","examples":[{"liquid":"{{ product.featured_image | img_url: '360x' }}","id":"filter/img_url/1","output":"https://cdn.sooquna.store/s/sample/abaya.jpg"}],"related":["image_url"],"since":"1.0","deprecated":"image_url","shopify":{"status":"same"}},{"name":"inspect","category":"string","summary":"Shows a value as JSON-like text, for debugging.","syntax":"value | inspect","returns":"string","examples":[{"liquid":"{{ 'S,M' | split: ',' | inspect }}","id":"filter/inspect/1","output":"[&#34;S&#34;,&#34;M&#34;]"}],"related":["json"],"since":"1.0","shopify":{"status":"sooquna","note":"Not in Shopify Liquid. Use while developing; output isn't stable."}},{"name":"join","category":"array","summary":"Joins array items with a separator (default a space).","syntax":"array | join: separator","returns":"string","examples":[{"liquid":"{{ product.tags | join: ', ' }}","id":"filter/join/1","output":"linen, new, summer"}],"related":["split"],"since":"1.0","shopify":{"status":"same"}},{"name":"json","category":"format","summary":"A value as JSON.","description":"<, > and & are escaped (\\u003c…), so the output is safe inside <script> tags.","syntax":"value | json","returns":"string","examples":[{"liquid":"{{ product.tags | json }}","id":"filter/json/1","output":"[\"linen\",\"new\",\"summer\"]"}],"since":"1.0","shopify":{"status":"same"}},{"name":"last","category":"array","summary":"Last item of an array.","syntax":"array | last","returns":"any","examples":[{"liquid":"{{ product.tags | last }}","id":"filter/last/1","output":"summer"}],"related":["first"],"since":"1.0","shopify":{"status":"same"}},{"name":"link_to","category":"html","summary":"An <a> tag.","syntax":"text | link_to: url, title","returns":"html","params":[{"name":"url","type":"string","description":"Link target.","required":true},{"name":"title","type":"string","description":"title attribute."}],"examples":[{"liquid":"{{ 'Shop abayas' | link_to: '/collections/abayas' }}","id":"filter/link_to/1","output":"<a href=\"/collections/abayas\">Shop abayas</a>"}],"since":"1.0","shopify":{"status":"same"}},{"name":"link_to_type","category":"html","summary":"Link to the collection of a product type.","syntax":"type | link_to_type","returns":"html","examples":[{"liquid":"{{ product.type | link_to_type }}","id":"filter/link_to_type/1","output":"<a href=\"/collections/types?q=Abayas\">Abayas</a>"}],"related":["url_for_type"],"since":"1.0","shopify":{"status":"same"}},{"name":"link_to_vendor","category":"html","summary":"Link to the collection of a vendor.","syntax":"vendor | link_to_vendor","returns":"html","examples":[{"liquid":"{{ product.vendor | link_to_vendor }}","id":"filter/link_to_vendor/1","output":"<a href=\"/collections/vendors?q=Layla\">Layla</a>"}],"related":["url_for_vendor"],"since":"1.0","shopify":{"status":"same"}},{"name":"lstrip","category":"string","summary":"Removes whitespace at the start.","syntax":"string | lstrip","returns":"string","examples":[{"liquid":"[{{ '   Oud   ' | lstrip }}]","id":"filter/lstrip/1","output":"[Oud   ]"}],"related":["strip"],"since":"1.0","shopify":{"status":"same"}},{"name":"map","category":"array","summary":"Takes one property from every item.","syntax":"array | map: property","returns":"array","examples":[{"liquid":"{{ product.variants | map: 'title' | join: ' / ' }}","id":"filter/map/1","output":"S / Sand / M / Sand / L / Sand"}],"related":["where"],"since":"1.0","shopify":{"status":"same"}},{"name":"md5","category":"hash","summary":"MD5 hash (hex).","syntax":"string | md5","returns":"string","examples":[{"liquid":"{{ 'sooquna' | md5 }}","id":"filter/md5/1","output":"d0e0fd53810c6c6fe4a8a4f4a1c3c0e8"}],"since":"1.0","shopify":{"status":"same"}},{"name":"minus","category":"math","summary":"Subtracts a number.","syntax":"number | minus: number","returns":"number","examples":[{"liquid":"{{ product.compare_at_price | minus: product.price | money }} off","id":"filter/minus/1","output":"QAR 70.00 off"}],"since":"1.0","shopify":{"status":"same"}},{"name":"modulo","category":"math","summary":"Remainder of a division.","syntax":"number | modulo: number","returns":"number","examples":[{"liquid":"{{ 7 | modulo: 3 }}","id":"filter/modulo/1","output":"1"}],"since":"1.0","shopify":{"status":"same"}},{"name":"money","category":"money","summary":"A price in the store's currency.","description":"Prices are in minor units (fils, halalas, cents). The currency's own decimals are used (3 for KWD, BHD, OMR).","syntax":"price | money","returns":"string","examples":[{"liquid":"{{ product.price | money }} · {{ 1500 | money }}","id":"filter/money/1","output":"QAR 450.00 · QAR 15.00"}],"related":["money_with_currency","money_without_trailing_zeros","money_without_currency"],"since":"1.0","shopify":{"status":"partial","note":"Shows the currency code before the amount (QAR 15.00); the format isn't editable per store."}},{"name":"money_with_currency","category":"money","summary":"A price with the currency code.","syntax":"price | money_with_currency","returns":"string","examples":[{"liquid":"{{ 1234567 | money_with_currency }}","id":"filter/money_with_currency/1","output":"QAR 12,345.67"}],"related":["money"],"since":"1.0","shopify":{"status":"partial","note":"Same output as money: the code is always shown."}},{"name":"money_without_currency","category":"money","summary":"A price as a plain number.","syntax":"price | money_without_currency","returns":"string","examples":[{"liquid":"{{ 1500 | money_without_currency }}","id":"filter/money_without_currency/1","output":"15.00"}],"related":["money"],"since":"1.0","shopify":{"status":"same"}},{"name":"money_without_trailing_zeros","category":"money","summary":"A price without .00 for whole amounts.","syntax":"price | money_without_trailing_zeros","returns":"string","examples":[{"liquid":"{{ 1500 | money_without_trailing_zeros }} · {{ 1550 | money_without_trailing_zeros }}","id":"filter/money_without_trailing_zeros/1","output":"QAR 15 · QAR 15.50"}],"related":["money"],"since":"1.0","shopify":{"status":"same"}},{"name":"newline_to_br","category":"html","summary":"Turns line breaks into <br>.","syntax":"string | newline_to_br","returns":"string","examples":[{"liquid":"{% capture text %}Line 1\nLine 2{% endcapture %}{{ text | newline_to_br }}","id":"filter/newline_to_br/1","output":"Line 1<br />\nLine 2"}],"since":"1.0","shopify":{"status":"same"}},{"name":"payment_type_svg_tag","category":"html","summary":"An icon for a payment method.","description":"Knows cod, visa, mastercard, american_express, apple_pay, mada, skipcash, tabby, tamara and paylater; others show their name. Loop over shop.enabled_payment_types.","syntax":"type | payment_type_svg_tag: class: 'icon'","returns":"html","examples":[{"liquid":"{% for type in shop.enabled_payment_types %}{{ type | payment_type_svg_tag: class: 'pay' }}{% endfor %}","id":"filter/payment_type_svg_tag/1","output":"<svg class=\"pay\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 38 24\" width=\"38\" height=\"24\" role=\"img\" aria-label=\"COD\"><rect x=\".5\" y=\".5\" width=\"37\" height=\"23\" rx=\"3\" fill=\"#fff\" stroke=\"#d4d4d4\"/><text x=\"19\" y=\"15.5\" text-anchor=\"middle\" font-family=\"system-ui,sans-serif\" font-size=\"8\" font-weight=\"700\" fill=\"#222\">COD</text></svg><svg class=\"pay\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 38 24\" width=\"38\" height=\"24\" role=\"img\" aria-label=\"VISA\"><rect x=\".5\" y=\".5\" width=\"37\" height=\"23\" rx=\"3\" fill=\"#fff\" stroke=\"#d4d4d4\"/><text x=\"19\" y=\"15.5\" text-anchor=\"middle\" font-family=\"system-ui,sans-serif\" font-size=\"8\" font-weight=\"700\" fill=\"#222\">VISA</text></svg><svg class=\"pay\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 38 24\" width=\"38\" height=\"24\" role=\"img\" aria-label=\"SkipCash\"><rect x=\".5\" y=\".5\" width=\"37\" height=\"23\" rx=\"3\" fill=\"#fff\" stroke=\"#d4d4d4\"/><text x=\"19\" y=\"15.5\" text-anchor=\"middle\" font-family=\"system-ui,sans-serif\" font-size=\"8\" font-weight=\"700\" fill=\"#222\">SkipCash</text></svg>"}],"since":"1.0","shopify":{"status":"partial","note":"Draws a labelled badge rather than brand artwork."}},{"name":"placeholder_svg_tag","category":"html","summary":"A placeholder illustration for missing images.","syntax":"name | placeholder_svg_tag: class","returns":"html","examples":[{"liquid":"{{ 'product-1' | placeholder_svg_tag: 'placeholder' }}","id":"filter/placeholder_svg_tag/1","output":"<svg class=\"placeholder\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 525 525\" aria-hidden=\"true\" preserveAspectRatio=\"xMidYMid slice\"><rect width=\"525\" height=\"525\" fill=\"currentColor\" opacity=\".08\"/><path d=\"M190 310l50-60 40 45 30-30 55 70H180z\" fill=\"currentColor\" opacity=\".25\"/><circle cx=\"320\" cy=\"200\" r=\"22\" fill=\"currentColor\" opacity=\".25\"/></svg>"}],"since":"1.0","shopify":{"status":"partial","note":"One neutral illustration whatever the name; it takes the text color."}},{"name":"pluralize","category":"localization","summary":"Picks a singular or plural word for a count (English-style).","description":"For translated text use t with count, which knows every language's plural rules.","syntax":"count | pluralize: 'item', 'items'","returns":"string","examples":[{"liquid":"{{ cart.item_count }} {{ cart.item_count | pluralize: 'item', 'items' }}","id":"filter/pluralize/1","output":"3 items"}],"related":["t"],"since":"1.0","shopify":{"status":"same"}},{"name":"plus","category":"math","summary":"Adds a number.","syntax":"number | plus: number","returns":"number","examples":[{"liquid":"{{ 4 | plus: 2 }}","id":"filter/plus/1","output":"6"}],"since":"1.0","shopify":{"status":"same"}},{"name":"preload_tag","category":"html","summary":"A <link rel=\"preload\"> for a file.","syntax":"url | preload_tag: as: 'style'","returns":"html","params":[{"name":"as","type":"string","description":"Resource type: style, script, font or image.","required":true}],"examples":[{"liquid":"{{ 'base.css' | asset_url | preload_tag: as: 'style' }}","id":"filter/preload_tag/1","output":"<link href=\"/cdn/shop/t/1/assets/base.css?v=aaaaaaaaaaaa\" rel=\"preload\" as=\"style\">"}],"since":"1.0","shopify":{"status":"same"}},{"name":"prepend","category":"string","summary":"Adds a string to the start.","syntax":"string | prepend: string","returns":"string","params":[{"name":"string","type":"string","description":"Text to add.","required":true}],"examples":[{"liquid":"{{ 'abayas' | prepend: '/collections/' }}","id":"filter/prepend/1","output":"/collections/abayas"}],"related":["append"],"since":"1.0","shopify":{"status":"same"}},{"name":"product_img_url","category":"media","summary":"Product image URL at a size (older form).","syntax":"image | product_img_url: '600x'","returns":"string","since":"1.0","deprecated":"image_url","shopify":{"status":"same"},"examples":[]},{"name":"remove","category":"string","summary":"Removes every occurrence of a string.","syntax":"string | remove: string","returns":"string","examples":[{"liquid":"{{ 'Sale! Sale! Sale!' | remove: 'Sale! ' }}","id":"filter/remove/1","output":"Sale!"}],"related":["remove_first","remove_last","replace"],"since":"1.0","shopify":{"status":"same"}},{"name":"remove_first","category":"string","summary":"Removes the first occurrence of a string.","syntax":"string | remove_first: string","returns":"string","examples":[{"liquid":"{{ 'a-b-c' | remove_first: '-' }}","id":"filter/remove_first/1","output":"ab-c"}],"related":["remove"],"since":"1.0","shopify":{"status":"same"}},{"name":"remove_last","category":"string","summary":"Removes the last occurrence of a string.","syntax":"string | remove_last: string","returns":"string","examples":[{"liquid":"{{ 'a-b-c' | remove_last: '-' }}","id":"filter/remove_last/1","output":"a-bc"}],"related":["remove"],"since":"1.0","shopify":{"status":"same"}},{"name":"replace","category":"string","summary":"Replaces every occurrence of a string.","syntax":"string | replace: find, replace_with","returns":"string","params":[{"name":"find","type":"string","description":"Text to look for.","required":true},{"name":"replace_with","type":"string","description":"Replacement.","required":true}],"examples":[{"liquid":"{{ 'Free delivery in Doha' | replace: 'Doha', 'Qatar' }}","id":"filter/replace/1","output":"Free delivery in Qatar"}],"related":["replace_first","replace_last","remove"],"since":"1.0","shopify":{"status":"same"}},{"name":"replace_first","category":"string","summary":"Replaces the first occurrence of a string.","syntax":"string | replace_first: find, replace_with","returns":"string","examples":[{"liquid":"{{ '1-2-3' | replace_first: '-', '/' }}","id":"filter/replace_first/1","output":"1/2-3"}],"related":["replace"],"since":"1.0","shopify":{"status":"same"}},{"name":"replace_last","category":"string","summary":"Replaces the last occurrence of a string.","syntax":"string | replace_last: find, replace_with","returns":"string","examples":[{"liquid":"{{ '1-2-3' | replace_last: '-', '/' }}","id":"filter/replace_last/1","output":"1-2/3"}],"related":["replace"],"since":"1.0","shopify":{"status":"same"}},{"name":"reverse","category":"array","summary":"Reverses an array.","syntax":"array | reverse","returns":"array","examples":[{"liquid":"{{ '1,2,3' | split: ',' | reverse | join: '' }}","id":"filter/reverse/1","output":"321"}],"since":"1.0","shopify":{"status":"same"}},{"name":"round","category":"math","summary":"Rounds to a number of decimals (default 0).","syntax":"number | round: decimals","returns":"number","examples":[{"liquid":"{{ 4.56 | round }} · {{ 4.56 | round: 1 }}","id":"filter/round/1","output":"5 · 4.6"}],"since":"1.0","shopify":{"status":"same"}},{"name":"rstrip","category":"string","summary":"Removes whitespace at the end.","syntax":"string | rstrip","returns":"string","examples":[{"liquid":"[{{ '   Oud   ' | rstrip }}]","id":"filter/rstrip/1","output":"[   Oud]"}],"related":["strip"],"since":"1.0","shopify":{"status":"same"}},{"name":"safe","category":"html","summary":"Kept for compatibility; output is still escaped unless it's already trusted HTML.","description":"Values Sooquna builds as HTML (product.description, image_tag…) are never escaped twice. safe can't turn other text into HTML.","syntax":"value | safe","returns":"any","examples":[{"liquid":"{{ '<b>x</b>' | safe }}","id":"filter/safe/1","output":"&lt;b&gt;x&lt;/b&gt;"}],"since":"1.0","shopify":{"status":"sooquna","note":"Not a Shopify filter; it doesn't disable escaping."}},{"name":"script_tag","category":"html","summary":"A deferred <script> tag for a URL.","syntax":"url | script_tag","returns":"html","examples":[{"liquid":"{{ 'cart.js' | asset_url | script_tag }}","id":"filter/script_tag/1","output":"<script src=\"/cdn/shop/t/1/assets/cart.js\" defer></script>"}],"related":["asset_url"],"since":"1.0","shopify":{"status":"partial","note":"Adds defer, so scripts never block rendering."}},{"name":"sha1","category":"hash","summary":"SHA-1 hash (hex).","syntax":"string | sha1","returns":"string","examples":[{"liquid":"{{ 'sooquna' | sha1 }}","id":"filter/sha1/1","output":"1abaaea056670cd9434837ab693e09522de84bcc"}],"since":"1.0","shopify":{"status":"same"}},{"name":"sha256","category":"hash","summary":"SHA-256 hash (hex).","syntax":"string | sha256","returns":"string","examples":[{"liquid":"{{ 'sooquna' | sha256 }}","id":"filter/sha256/1","output":"1e896b5ff7ac6755f5eed1650502770f17b0e7e069526942a5ff110c106daf4f"}],"since":"1.0","shopify":{"status":"same"}},{"name":"shopify_asset_url","category":"url","summary":"Platform asset URL (compatibility alias).","syntax":"'file' | shopify_asset_url","returns":"string","since":"1.0","deprecated":"asset_url","shopify":{"status":"partial","note":"Resolves to the theme's assets/ folder."},"examples":[]},{"name":"size","category":"string","summary":"Number of characters in a string or items in an array.","syntax":"value | size","returns":"number","examples":[{"liquid":"{{ 'Sooquna' | size }} · {{ product.variants | size }}","id":"filter/size/1","output":"7 · 3"}],"since":"1.0","shopify":{"status":"same"}},{"name":"slice","category":"string","summary":"Part of a string or array, from an index and a length.","description":"Negative indexes count from the end. The length defaults to 1.","syntax":"string | slice: start, length","returns":"string or array","params":[{"name":"start","type":"number","description":"First index (0-based; negative from the end).","required":true},{"name":"length","type":"number","description":"How many characters or items (default 1)."}],"examples":[{"liquid":"{{ 'Sooquna' | slice: 0, 4 }} {{ 'Sooquna' | slice: -3, 3 }}","id":"filter/slice/1","output":"Sooq una"}],"since":"1.0","shopify":{"status":"same"}},{"name":"sort","category":"array","summary":"Sorts an array, case-sensitively; by a property when given.","syntax":"array | sort: property","returns":"array","examples":[{"liquid":"{{ 'b,C,a' | split: ',' | sort | join: '' }}","id":"filter/sort/1","output":"Cab"}],"related":["sort_natural","reverse"],"since":"1.0","shopify":{"status":"same"}},{"name":"sort_by","category":"url","summary":"A collection URL with a sort order.","syntax":"url | sort_by: order","returns":"string","examples":[{"liquid":"{{ collection.url | sort_by: 'price-ascending' }}","id":"filter/sort_by/1","output":"/collections/abayas?sort_by=price-ascending"}],"since":"1.0","shopify":{"status":"same"}},{"name":"sort_natural","category":"array","summary":"Sorts an array case-insensitively; by a property when given.","syntax":"array | sort_natural: property","returns":"array","examples":[{"liquid":"{{ 'b,C,a' | split: ',' | sort_natural | join: '' }}","id":"filter/sort_natural/1","output":"abC"}],"related":["sort"],"since":"1.0","shopify":{"status":"same"}},{"name":"split","category":"string","summary":"Splits a string into an array.","syntax":"string | split: separator","returns":"array","examples":[{"liquid":"{% assign sizes = 'S,M,L' | split: ',' %}{{ sizes | size }} sizes, first {{ sizes | first }}","id":"filter/split/1","output":"3 sizes, first S"}],"related":["join"],"since":"1.0","shopify":{"status":"same"}},{"name":"strip","category":"string","summary":"Removes whitespace at both ends.","syntax":"string | strip","returns":"string","examples":[{"liquid":"[{{ '   Oud   ' | strip }}]","id":"filter/strip/1","output":"[Oud]"}],"related":["lstrip","rstrip"],"since":"1.0","shopify":{"status":"same"}},{"name":"strip_html","category":"html","summary":"Removes HTML tags.","syntax":"string | strip_html","returns":"string","examples":[{"liquid":"{{ product.description | strip_html }}","id":"filter/strip_html/1","output":"Soft linen, hand-embroidered in Doha."}],"since":"1.0","shopify":{"status":"same"}},{"name":"strip_newlines","category":"string","summary":"Removes line breaks.","syntax":"string | strip_newlines","returns":"string","examples":[{"liquid":"{% capture text %}One\nTwo{% endcapture %}{{ text | strip_newlines }}","id":"filter/strip_newlines/1","output":"OneTwo"}],"since":"1.0","shopify":{"status":"same"}},{"name":"structured_data","category":"html","summary":"JSON-LD for a product or article.","description":"Products include offers per variant with price, currency and availability, and review ratings while the reviews feature is on. Output it in a <script type=\"application/ld+json\"> tag.","syntax":"product | structured_data","returns":"html","since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"stylesheet_tag","category":"html","summary":"A <link rel=\"stylesheet\"> for a URL.","syntax":"url | stylesheet_tag: media: 'print'","returns":"html","examples":[{"liquid":"{{ 'base.css' | asset_url | stylesheet_tag }}","id":"filter/stylesheet_tag/1","output":"<link href=\"/cdn/shop/t/1/assets/base.css?v=aaaaaaaaaaaa\" rel=\"stylesheet\" type=\"text/css\" media=\"all\">"}],"related":["asset_url","preload_tag"],"since":"1.0","shopify":{"status":"same"}},{"name":"sum","category":"array","summary":"Adds up numbers in an array, or a property of its items.","syntax":"array | sum: property","returns":"number","examples":[{"liquid":"{{ cart.items | sum: 'quantity' }}","id":"filter/sum/1","output":"3"}],"since":"1.0","shopify":{"status":"same"}},{"name":"t","category":"localization","summary":"A translation from the theme's locale files.","description":"Keys are dotted paths in locales/<language>.json. Pass variables as key: value; count picks the plural form (Arabic has zero, one, two, few, many and other). Keys ending in _html may contain markup; other values are escaped. Missing keys fall back to the default locale, then to the key itself.","syntax":"'section.key' | t: name: value, count: n","returns":"string","examples":[{"liquid":"{{ 'cart.count' | t: count: 3 }}","files":{"locales/en.default.json":"{\"cart\":{\"count\":{\"one\":\"{{ count }} item\",\"other\":\"{{ count }} items\"}}}","locales/ar.json":"{\"cart\":{\"count\":{\"zero\":\"لا منتجات\",\"one\":\"منتج واحد\",\"two\":\"منتجان\",\"few\":\"{{ count }} منتجات\",\"many\":\"{{ count }} منتجاً\",\"other\":\"{{ count }} منتج\"}}}"},"id":"filter/t/1","output":"3 items"},{"title":"Arabic plural forms","liquid":"{{ 'cart.count' | t: count: 2 }} · {{ 'cart.count' | t: count: 3 }} · {{ 'cart.count' | t: count: 11 }}","lang":"ar","files":{"locales/en.default.json":"{\"cart\":{\"count\":{\"one\":\"{{ count }} item\",\"other\":\"{{ count }} items\"}}}","locales/ar.json":"{\"cart\":{\"count\":{\"zero\":\"لا منتجات\",\"one\":\"منتج واحد\",\"two\":\"منتجان\",\"few\":\"{{ count }} منتجات\",\"many\":\"{{ count }} منتجاً\",\"other\":\"{{ count }} منتج\"}}}"},"id":"filter/t/2","output":"منتجان · 3 منتجات · 11 منتجاً"}],"related":["pluralize"],"since":"1.0","shopify":{"status":"partial","note":"Adds CLDR plural forms beyond one/other, which Arabic needs."}},{"name":"time_tag","category":"html","summary":"A <time> tag with a formatted date.","syntax":"date | time_tag: format","returns":"html","params":[{"name":"format","type":"string","description":"strftime format (default \"%b %d, %Y\")."}],"examples":[{"liquid":"{{ article.published_at | time_tag: '%d %B %Y' }}","id":"filter/time_tag/1","output":"<time datetime=\"2026-03-14T09:30:00Z\">14 March 2026</time>"},{"liquid":"{{ article.published_at | time_tag: '%d %B %Y' }}","lang":"ar","id":"filter/time_tag/2","output":"<time datetime=\"2026-03-14T09:30:00Z\">14 مارس 2026</time>"}],"related":["date"],"since":"1.0","shopify":{"status":"same"}},{"name":"times","category":"math","summary":"Multiplies by a number.","syntax":"number | times: number","returns":"number","examples":[{"liquid":"{{ 3 | times: 4 }}","id":"filter/times/1","output":"12"}],"since":"1.0","shopify":{"status":"same"}},{"name":"truncate","category":"string","summary":"Shortens a string to a number of characters.","description":"The ellipsis (default \"...\") counts towards the length.","syntax":"string | truncate: length, ellipsis","returns":"string","params":[{"name":"length","type":"number","description":"Maximum length.","required":true},{"name":"ellipsis","type":"string","description":"Text added at the end (default \"...\")."}],"examples":[{"liquid":"{{ 'Hand-embroidered linen abaya' | truncate: 15 }} · {{ 'Hand-embroidered linen abaya' | truncate: 15, '…' }}","id":"filter/truncate/1","output":"Hand-embroid... · Hand-embroider…"}],"related":["truncatewords"],"since":"1.0","shopify":{"status":"same"}},{"name":"truncatewords","category":"string","summary":"Shortens a string to a number of words.","syntax":"string | truncatewords: words, ellipsis","returns":"string","examples":[{"liquid":"{{ 'Soft linen for warm evenings in Doha' | truncatewords: 3 }}","id":"filter/truncatewords/1","output":"Soft linen for..."}],"related":["truncate"],"since":"1.0","shopify":{"status":"same"}},{"name":"type","category":"string","summary":"The type of a value (string, int, array…), for debugging.","syntax":"value | type","returns":"string","examples":[{"liquid":"{{ 'abc' | type }} {{ 3 | type }}","id":"filter/type/1","output":"string int"}],"since":"1.0","shopify":{"status":"sooquna","note":"Not in Shopify Liquid."}},{"name":"uniq","category":"array","summary":"Removes duplicate items.","syntax":"array | uniq","returns":"array","examples":[{"liquid":"{{ 'a,b,a' | split: ',' | uniq | join: ',' }}","id":"filter/uniq/1","output":"a,b"}],"since":"1.0","shopify":{"status":"same"}},{"name":"upcase","category":"string","summary":"Upper-cases a string.","syntax":"string | upcase","returns":"string","examples":[{"liquid":"{{ 'new in' | upcase }}","id":"filter/upcase/1","output":"NEW IN"}],"related":["downcase"],"since":"1.0","shopify":{"status":"same"}},{"name":"url_decode","category":"url","summary":"Decodes a URL-encoded string.","syntax":"string | url_decode","returns":"string","examples":[{"liquid":"{{ 'oud+%26+musk' | url_decode }}","id":"filter/url_decode/1","output":"oud &amp; musk"}],"since":"1.0","shopify":{"status":"same"}},{"name":"url_encode","category":"url","summary":"Encodes a string for a URL (spaces become +).","syntax":"string | url_encode","returns":"string","examples":[{"liquid":"{{ 'oud & musk' | url_encode }}","id":"filter/url_encode/1","output":"oud+%26+musk"}],"related":["url_decode","url_param_escape"],"since":"1.0","shopify":{"status":"same"}},{"name":"url_escape","category":"url","summary":"Escapes a string for a URL path (keeps /).","syntax":"string | url_escape","returns":"string","examples":[{"liquid":"{{ 'gift sets/oud' | url_escape }}","id":"filter/url_escape/1","output":"gift%20sets/oud"}],"since":"1.0","shopify":{"status":"same"}},{"name":"url_for_type","category":"url","summary":"URL of the collection of a product type.","syntax":"type | url_for_type","returns":"string","examples":[{"liquid":"{{ 'Abayas' | url_for_type }}","id":"filter/url_for_type/1","output":"/collections/types?q=Abayas"}],"since":"1.0","shopify":{"status":"same"}},{"name":"url_for_vendor","category":"url","summary":"URL of the collection of a vendor.","syntax":"vendor | url_for_vendor","returns":"string","examples":[{"liquid":"{{ 'Layla' | url_for_vendor }}","id":"filter/url_for_vendor/1","output":"/collections/vendors?q=Layla"}],"since":"1.0","shopify":{"status":"same"}},{"name":"url_param_escape","category":"url","summary":"Escapes a string for a query parameter.","syntax":"string | url_param_escape","returns":"string","examples":[{"liquid":"/search?q={{ 'oud & musk' | url_param_escape }}","id":"filter/url_param_escape/1","output":"/search?q=oud+%26+musk"}],"since":"1.0","shopify":{"status":"same"}},{"name":"weight_with_unit","category":"format","summary":"A weight in grams, shown in kg (default), g, lb or oz.","syntax":"grams | weight_with_unit: unit","returns":"string","examples":[{"liquid":"{{ 1250 | weight_with_unit }} · {{ 1250 | weight_with_unit: 'lb' }}","id":"filter/weight_with_unit/1","output":"1.25 kg · 2.76 lb"}],"since":"1.0","shopify":{"status":"partial","note":"Takes the unit as an argument instead of the store's setting."}},{"name":"where","category":"array","summary":"Items whose property equals a value (or is truthy, without a value).","syntax":"array | where: property, value","returns":"array","examples":[{"liquid":"{{ product.variants | where: 'available' | map: 'title' | join: ', ' }}","id":"filter/where/1","output":"S / Sand, M / Sand"}],"related":["map"],"since":"1.0","shopify":{"status":"same"}},{"name":"within","category":"url","summary":"A product URL inside a collection (/collections/x/products/y).","syntax":"product.url | within: collection","returns":"string","examples":[{"liquid":"{{ product.url | within: collection }}","id":"filter/within/1","output":"/collections/abayas/products/embroidered-linen-abaya"}],"since":"1.0","shopify":{"status":"same"}}],"objects":[{"name":"all_products","category":"global","summary":"Products by handle: all_products['linen-abaya'].","access":"Every template.","related":["product"],"since":"1.0","shopify":{"status":"partial","note":"Lookup only: it can't be looped."},"examples":[]},{"name":"article","category":"template","summary":"A blog post.","access":"Article template; blog.articles.","properties":[{"name":"id","type":"string","summary":"ID."},{"name":"title","type":"string","summary":"Title."},{"name":"handle","type":"string","summary":"Handle."},{"name":"url","type":"string","summary":"URL."},{"name":"content","type":"html","summary":"Content."},{"name":"excerpt","type":"html","summary":"Summary."},{"name":"excerpt_or_content","type":"html","summary":"Summary","else content.":null},{"name":"author","type":"string","summary":"Author."},{"name":"image","type":"image","summary":"Image."},{"name":"tags","type":"array","summary":"Tags."},{"name":"published_at","type":"date","summary":"Publish date."},{"name":"comments","type":"array of comment","summary":"Published comments."},{"name":"comments_count","type":"number","summary":"Number of comments."},{"name":"comment_post_url","type":"string","summary":"Comment form URL."}],"examples":[{"liquid":"{{ article.title }} · {{ article.published_at | date: '%d %b %Y' }}","id":"object/article/1","output":"Dressing for Eid · 14 Mar 2026"}],"related":["blog","comment"],"since":"1.0","shopify":{"status":"same"}},{"name":"block","category":"theme","summary":"The current block.","access":"Section files (loops over section.blocks) and blocks/.","properties":[{"name":"id","type":"string","summary":"Block ID."},{"name":"type","type":"string","summary":"Block type."},{"name":"settings","type":"object","summary":"Block settings."},{"name":"shopify_attributes","type":"string","summary":"Attributes the editor needs; output them on the block's wrapper."}],"examples":[{"liquid":"{% for block in section.blocks %}<div {{ block.shopify_attributes }}>{{ block.settings.text }}</div>{% endfor %}","id":"object/block/1","output":"<div data-block-id=\"b1\">Free delivery in Doha</div>"}],"since":"1.0","shopify":{"status":"same"}},{"name":"blog","category":"template","summary":"A blog.","access":"Blog and article templates; also blogs['handle'].","properties":[{"name":"id","type":"string","summary":"ID."},{"name":"title","type":"string","summary":"Title."},{"name":"handle","type":"string","summary":"Handle."},{"name":"url","type":"string","summary":"URL."},{"name":"articles","type":"array of article","summary":"Articles on this page."},{"name":"articles_count","type":"number","summary":"Number of articles."},{"name":"all_tags","type":"array","summary":"Tags its articles use."},{"name":"comments_enabled?","type":"boolean","summary":"Comments allowed."}],"related":["article","current_tags"],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"blogs","category":"global","summary":"Blogs by handle: blogs['news'].articles.","access":"Every template.","related":["blog"],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"canonical_url","category":"global","summary":"Canonical URL of the current page (includes ?page= after page 1).","access":"Every template.","since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"cart","category":"global","summary":"The shopper's cart.","access":"Every template.","properties":[{"name":"item_count","type":"number","summary":"Number of items."},{"name":"items","type":"array of line_item","summary":"Lines."},{"name":"total_price","type":"number","summary":"Total after discounts (minor units)."},{"name":"items_subtotal_price","type":"number","summary":"Items total."},{"name":"original_total_price","type":"number","summary":"Total before discounts."},{"name":"total_discount","type":"number","summary":"Discounts."},{"name":"total_weight","type":"number","summary":"Weight in grams."},{"name":"note","type":"string","summary":"Order note."},{"name":"attributes","type":"object","summary":"Cart attributes."},{"name":"currency","type":"object","summary":"Currency."},{"name":"requires_shipping","type":"boolean","summary":"Has items that ship."},{"name":"cart_level_discount_applications","type":"array","summary":"Order discounts."},{"name":"discount_codes","type":"array","summary":"Codes entered (code, applicable)."},{"name":"free_shipping_threshold","type":"number","summary":"Order total for free shipping, nil when none (Sooquna)."},{"name":"empty?","type":"boolean","summary":"True when empty."}],"examples":[{"liquid":"{{ cart.item_count }} · {{ cart.total_price | money }}","id":"object/cart/1","output":"3 · QAR 1,220.00"}],"related":["line_item"],"since":"1.0","shopify":{"status":"partial","note":"Adds free_shipping_threshold for progress bars."}},{"name":"closest","category":"theme","summary":"Objects a section hands down to every theme block inside it.","description":"A section passes them with {% content_for 'blocks', closest.product: product %}; any block below, however deep, reads closest.product. Use it so one block (a price, a buy button) works in every section that shows a product.","access":"Theme blocks.","properties":[{"name":"product","type":"product","summary":"The product the section is about (when it passes one)."}],"examples":[{"liquid":"{{ closest.product.title | default: 'No product here' }}","id":"object/closest/1","output":"No product here"}],"related":["block","content_for"],"since":"1.0","shopify":{"status":"partial","note":"Set explicitly with content_for 'blocks', closest.<name>: …; Shopify also infers it from the template."}},{"name":"collection","category":"template","summary":"A collection.","access":"Collection template; also collections['handle'].","properties":[{"name":"id","type":"string","summary":"ID."},{"name":"title","type":"string","summary":"Title."},{"name":"handle","type":"string","summary":"Handle."},{"name":"url","type":"string","summary":"URL."},{"name":"description","type":"html","summary":"Description."},{"name":"image","type":"image","summary":"Image."},{"name":"products","type":"array of product","summary":"Products (use paginate for more than 50)."},{"name":"products_count","type":"number","summary":"Products after filters."},{"name":"all_products_count","type":"number","summary":"All products."},{"name":"filters","type":"array","summary":"Storefront filters."},{"name":"sort_by","type":"string","summary":"Current sort order."},{"name":"sort_options","type":"array","summary":"Sort orders (name, value)."},{"name":"default_sort_by","type":"string","summary":"Default sort order."},{"name":"current_type","type":"string","summary":"Type, on /collections/types?q=."},{"name":"current_vendor","type":"string","summary":"Vendor, on /collections/vendors?q=."},{"name":"template_suffix","type":"string","summary":"Alternate template."}],"examples":[{"liquid":"{{ collection.title }}: {% for p in collection.products limit: 2 %}{{ p.title }}{% unless forloop.last %}, {% endunless %}{% endfor %}","id":"object/collection/1","output":"Abayas: Embroidered linen abaya, Royal oud gift set"}],"related":["product","paginate"],"since":"1.0","shopify":{"status":"same"}},{"name":"collections","category":"global","summary":"Collections by handle: collections['sale'], collections.all.","description":"Looping gives up to 250 collections.","access":"Every template.","examples":[{"liquid":"{{ collections.all.products_count }} products","id":"object/collections/1","output":"24 products"}],"related":["collection"],"since":"1.0","shopify":{"status":"same"}},{"name":"comment","category":"resource","summary":"A blog comment.","access":"article.comments.","properties":[{"name":"id","type":"string","summary":"ID."},{"name":"author","type":"string","summary":"Author."},{"name":"content","type":"string","summary":"Comment."},{"name":"created_at","type":"date","summary":"Posted."},{"name":"status","type":"string","summary":"published."}],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"content_for_header","category":"global","summary":"Required in the layout's <head>: meta, scripts and styles the platform adds.","access":"Layouts.","since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"content_for_layout","category":"global","summary":"Required in the layout's <body>: the template's content.","access":"Layouts.","since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"current_page","category":"global","summary":"The ?page= number (1 by default).","access":"Every template.","since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"current_tags","category":"template","summary":"Tags filtering a blog (/blogs/news/tagged/x).","access":"Blog template.","since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"custom_page","category":"template","summary":"A custom landing page (custom_pages/<name>.liquid, at /custom/<name>).","access":"Custom page templates.","properties":[{"name":"name","type":"string","summary":"File name."},{"name":"title","type":"string","summary":"Title."},{"name":"url","type":"string","summary":"URL."},{"name":"settings","type":"object","summary":"Settings from the file's {% schema %}."}],"since":"1.0","shopify":{"status":"sooquna","note":"Sooquna only; see the custom page tutorial."},"examples":[]},{"name":"customer","category":"global","summary":"The signed-in customer, nil for guests.","description":"Order history and addresses are on the account pages, which Sooquna draws for the theme.","access":"Every template.","properties":[{"name":"id","type":"string","summary":"ID."},{"name":"name","type":"string","summary":"Full name."},{"name":"first_name","type":"string","summary":"First name."},{"name":"last_name","type":"string","summary":"Last name."},{"name":"email","type":"string","summary":"Email."},{"name":"orders_count","type":"number","summary":"Number of orders."},{"name":"has_account","type":"boolean","summary":"Always true when signed in."}],"examples":[{"liquid":"{% if customer %}Hi {{ customer.first_name }}{% else %}<a href=\"{{ routes.account_login_url }}\">Sign in</a>{% endif %}","id":"object/customer/1","output":"<a href=\"/account/login\">Sign in</a>"}],"since":"1.0","shopify":{"status":"partial","note":"No orders, addresses or tags: customer account pages are drawn by Sooquna, not by templates/customers."}},{"name":"external_video","category":"resource","summary":"A YouTube or Vimeo video among a product's media.","access":"product.media.","properties":[{"name":"id","type":"string","summary":"ID."},{"name":"media_type","type":"string","summary":"external_video."},{"name":"host","type":"string","summary":"youtube or vimeo."},{"name":"external_id","type":"string","summary":"Video ID on the host."},{"name":"alt","type":"string","summary":"Alt text."},{"name":"position","type":"number","summary":"Position."}],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"features","category":"global","summary":"Store features that are on (Features in admin): features.wishlist, features.reviews…","description":"Every feature key in admin works (unknown keys are nil); the common ones are below. Sections, blocks and settings groups with \"capability\" in their schema render only while that feature is on, so a theme can ship them all.","access":"Every template.","properties":[{"name":"wishlist","type":"boolean","summary":"Wishlist."},{"name":"reviews","type":"boolean","summary":"Product reviews."},{"name":"back_in_stock","type":"boolean","summary":"Back-in-stock alerts."},{"name":"back_in_stock_whatsapp","type":"boolean","summary":"Back-in-stock alerts can go to WhatsApp."},{"name":"quick_view","type":"boolean","summary":"Quick view."},{"name":"image_zoom","type":"boolean","summary":"Image zoom."},{"name":"product_badges","type":"boolean","summary":"Product badges."},{"name":"stock_status","type":"boolean","summary":"Stock status."},{"name":"order_tracking","type":"boolean","summary":"Order lookup (/orders/lookup)."},{"name":"size_guide","type":"boolean","summary":"Size guide."},{"name":"related_products","type":"boolean","summary":"Related products."},{"name":"whatsapp_share","type":"boolean","summary":"Share on WhatsApp."},{"name":"announcement_bar","type":"boolean","summary":"Announcement bar."},{"name":"newsletter_capture","type":"boolean","summary":"Newsletter sign-up."},{"name":"gift_message","type":"boolean","summary":"Gift message at checkout."}],"examples":[{"liquid":"{% if features.wishlist %}<a href=\"/wishlist\">Saved</a>{% endif %}","id":"object/features/1","output":"<a href=\"/wishlist\">Saved</a>"}],"since":"1.0","shopify":{"status":"sooquna","note":"Sooquna's built-in storefront features; Shopify uses apps."}},{"name":"filter","category":"resource","summary":"A storefront filter of a collection or search page (collection.filters, search.filters).","description":"Merchants choose the filters in Storefront › Search & discovery. Each filter adds its param_name to the URL; the page reloads (or re-renders the section) with the filtered products.","access":"collection.filters, search.filters.","properties":[{"name":"label","type":"string","summary":"Name, in the visitor's language."},{"name":"type","type":"string","summary":"list, price_range or boolean."},{"name":"param_name","type":"string","summary":"URL parameter (filter.v.price, filter.p.vendor, filter.v.option.color…)."},{"name":"presentation","type":"string","summary":"swatch for colour options, else text."},{"name":"values","type":"array of filter_value","summary":"Values (list and boolean filters)."},{"name":"active_values","type":"array of filter_value","summary":"Values in use."},{"name":"inactive_values","type":"array of filter_value","summary":"Values not in use."},{"name":"min_value","type":"object","summary":"price_range: param_name and value of the minimum."},{"name":"max_value","type":"object","summary":"price_range: param_name and value of the maximum."},{"name":"range_min","type":"number","summary":"price_range: lowest price in the list."},{"name":"range_max","type":"number","summary":"price_range: highest price in the list."},{"name":"url_to_remove","type":"string","summary":"The current URL without this filter."}],"related":["filter_value","collection"],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"filter_value","category":"resource","summary":"One value of a filter.","access":"filter.values.","properties":[{"name":"label","type":"string","summary":"Label."},{"name":"value","type":"string","summary":"Value in the URL."},{"name":"count","type":"number","summary":"Products with it."},{"name":"active","type":"boolean","summary":"In use."},{"name":"param_name","type":"string","summary":"The filter's URL parameter."},{"name":"url_to_add","type":"string","summary":"The current URL with this value added."},{"name":"url_to_remove","type":"string","summary":"The current URL without it."},{"name":"swatch","type":"object","summary":"swatch.color for colour values."}],"related":["filter"],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"forloop","category":"form","summary":"Loop state inside for.","access":"Inside for.","properties":[{"name":"index","type":"number","summary":"1-based index."},{"name":"index0","type":"number","summary":"0-based index."},{"name":"rindex","type":"number","summary":"Index from the end (1-based)."},{"name":"rindex0","type":"number","summary":"Index from the end (0-based)."},{"name":"first","type":"boolean","summary":"First iteration."},{"name":"last","type":"boolean","summary":"Last iteration."},{"name":"length","type":"number","summary":"Number of iterations."}],"examples":[{"liquid":"{% for i in (1..3) %}{{ forloop.index }}{% if forloop.last %}!{% endif %}{% endfor %}","id":"object/forloop/1","output":"123!"}],"since":"1.0","shopify":{"status":"partial","note":"forloop.parentloop isn't available."}},{"name":"form","category":"form","summary":"Form state inside form.","access":"Inside form.","properties":[{"name":"posted_successfully?","type":"boolean","summary":"Submitted without errors."},{"name":"errors","type":"array","summary":"Errors."},{"name":"email","type":"string","summary":"Submitted email."},{"name":"body","type":"string","summary":"Submitted message."}],"related":["form"],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"form_error","category":"template","summary":"The wrong-password message on the password page.","access":"Password template.","since":"1.0","shopify":{"status":"sooquna","note":"Shopify uses form.errors."},"examples":[]},{"name":"image","category":"resource","summary":"An image.","description":"Pass it to image_url to get a resized URL.","access":"product.images, collection.image, image_picker settings…","properties":[{"name":"id","type":"string","summary":"ID."},{"name":"src","type":"string","summary":"Original URL."},{"name":"url","type":"string","summary":"Same as src."},{"name":"alt","type":"string","summary":"Alt text."},{"name":"width","type":"number","summary":"Width."},{"name":"height","type":"number","summary":"Height."},{"name":"aspect_ratio","type":"number","summary":"Width ÷ height."},{"name":"position","type":"number","summary":"Position among the product's media."},{"name":"media_type","type":"string","summary":"image."},{"name":"presentation","type":"object","summary":"presentation.focal_point, as CSS object-position."}],"examples":[{"liquid":"{{ product.featured_image.alt }} {{ product.featured_image.width }}×{{ product.featured_image.height }}","id":"object/image/1","output":"Linen abaya 1600×2000"}],"related":["image_url","image_tag"],"since":"1.0","shopify":{"status":"same"}},{"name":"line_item","category":"resource","summary":"A cart line.","access":"cart.items.","properties":[{"name":"id","type":"string","summary":"Line key."},{"name":"key","type":"string","summary":"Line key (for /cart/change)."},{"name":"title","type":"string","summary":"Product and variant title."},{"name":"product_title","type":"string","summary":"Product title."},{"name":"variant_title","type":"string","summary":"Variant title."},{"name":"quantity","type":"number","summary":"Quantity."},{"name":"sku","type":"string","summary":"SKU."},{"name":"vendor","type":"string","summary":"Vendor."},{"name":"price","type":"number","summary":"Unit price."},{"name":"original_price","type":"number","summary":"Unit price before discounts."},{"name":"final_price","type":"number","summary":"Unit price after discounts."},{"name":"line_price","type":"number","summary":"Line total."},{"name":"original_line_price","type":"number","summary":"Line total before discounts."},{"name":"final_line_price","type":"number","summary":"Line total after discounts."},{"name":"total_discount","type":"number","summary":"Discount on the line."},{"name":"line_level_discount_allocations","type":"array","summary":"Discounts on the line."},{"name":"product","type":"object","summary":"Product (id, title, url, handle, vendor, featured_image)."},{"name":"variant","type":"object","summary":"Variant (id, title, image)."},{"name":"image","type":"image","summary":"Image."},{"name":"url","type":"string","summary":"Variant URL."},{"name":"properties","type":"object","summary":"Line properties."},{"name":"requires_shipping","type":"boolean","summary":"Ships."},{"name":"gift_card","type":"boolean","summary":"A gift card."}],"examples":[{"liquid":"{% for item in cart.items %}{{ item.quantity }} × {{ item.title }} = {{ item.final_line_price | money }}{% endfor %}","id":"object/line_item/1","output":"2 × Embroidered linen abaya - M / Sand = QAR 900.001 × Royal oud gift set = QAR 320.00"}],"since":"1.0","shopify":{"status":"partial","note":"product and variant carry a few fields only; look up all_products[item.product.handle] for more."}},{"name":"link","category":"resource","summary":"A menu link.","access":"linklist.links, link.links.","properties":[{"name":"title","type":"string","summary":"Title."},{"name":"url","type":"string","summary":"URL."},{"name":"active","type":"boolean","summary":"Current page."},{"name":"child_active","type":"boolean","summary":"A child is the current page."},{"name":"current","type":"boolean","summary":"Same as active."},{"name":"links","type":"array of link","summary":"Child links."},{"name":"type","type":"string","summary":"Link type (collection_link, http_link…)."},{"name":"handle","type":"string","summary":"Handle of the title."},{"name":"object","type":"object","summary":"Linked resource."}],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"linklist","category":"resource","summary":"A navigation menu.","access":"linklists, link_list settings.","properties":[{"name":"handle","type":"string","summary":"Handle."},{"name":"title","type":"string","summary":"Title."},{"name":"links","type":"array of link","summary":"Top-level links."},{"name":"levels","type":"number","summary":"Nesting depth."}],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"linklists","category":"global","summary":"Navigation menus by handle: linklists['main-menu'].links.","access":"Every template.","examples":[{"liquid":"{% for link in linklists.main-menu.links %}{{ link.title }} {% endfor %}","id":"object/linklists/1","output":"Abayas Oud"}],"related":["linklist","link"],"since":"1.0","shopify":{"status":"same"}},{"name":"localization","category":"global","summary":"Languages and countries, for the language selector.","access":"Every template.","properties":[{"name":"language","type":"object","summary":"Current language (iso_code, name, endonym_name, primary, root_url, direction)."},{"name":"available_languages","type":"array","summary":"Published languages."},{"name":"country","type":"object","summary":"Store country (iso_code, name, currency.iso_code)."},{"name":"available_countries","type":"array","summary":"Countries."}],"examples":[{"liquid":"{% for l in localization.available_languages %}{{ l.endonym_name }} {% endfor %}","id":"object/localization/1","output":"English العربية"}],"related":["form"],"since":"1.0","shopify":{"status":"partial","note":"One country, the store's: prices are in its currency."}},{"name":"metafield","category":"resource","summary":"A custom field.","description":"Reach one as resource.metafields.namespace.key; output it directly, or read .value.","access":"product.metafields, collection.metafields, shop.metafields…","properties":[{"name":"value","type":"any","summary":"The value","typed.":null},{"name":"type","type":"string","summary":"Type (single_line_text_field, rating…)."},{"name":"namespace","type":"string","summary":"Namespace."},{"name":"key","type":"string","summary":"Key."}],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"metaobject","category":"template","summary":"An entry of a custom content type, on its own page.","access":"Metaobject templates (templates/metaobject/<type>.json).","properties":[{"name":"id","type":"string","summary":"ID."},{"name":"handle","type":"string","summary":"Handle."},{"name":"type","type":"string","summary":"Type."},{"name":"url","type":"string","summary":"URL."}],"description":"Fields are read by key (metaobject.author.value).","related":["metaobject_field"],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"metaobject_field","category":"resource","summary":"A field of a metaobject entry.","access":"metaobject.<field>.","properties":[{"name":"value","type":"any","summary":"The value."},{"name":"type","type":"string","summary":"Type."}],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"page","category":"template","summary":"A content page.","access":"Page template; also pages['handle'].","properties":[{"name":"id","type":"string","summary":"ID."},{"name":"title","type":"string","summary":"Title."},{"name":"handle","type":"string","summary":"Handle."},{"name":"url","type":"string","summary":"URL."},{"name":"content","type":"html","summary":"Content."},{"name":"author","type":"string","summary":"Author."},{"name":"published_at","type":"date","summary":"Publish date."},{"name":"template_suffix","type":"string","summary":"Alternate template."}],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"page_description","category":"global","summary":"SEO description of the current page (empty when none).","access":"Every template.","since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"page_image","category":"global","summary":"Share image of the current page (the store's share image by default).","access":"Every template.","since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"page_title","category":"global","summary":"SEO title of the current page.","access":"Every template.","examples":[{"liquid":"<title>{{ page_title }} – {{ shop.name }}</title>","id":"object/page_title/1","output":"<title>Embroidered linen abaya – Layla Boutique</title>"}],"since":"1.0","shopify":{"status":"same"}},{"name":"pages","category":"global","summary":"Pages by handle: pages['about'].content.","access":"Every template.","related":["page"],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"paginate","category":"form","summary":"Pagination state inside paginate.","access":"Inside paginate.","properties":[{"name":"current_page","type":"number","summary":"Current page."},{"name":"current_offset","type":"number","summary":"Items before this page."},{"name":"pages","type":"number","summary":"Number of pages."},{"name":"items","type":"number","summary":"Number of items."},{"name":"page_size","type":"number","summary":"Items per page."},{"name":"page_param","type":"string","summary":"Query parameter (page)."},{"name":"previous","type":"object","summary":"Previous page link (title, url, is_link)."},{"name":"next","type":"object","summary":"Next page link."},{"name":"parts","type":"array","summary":"Page links."}],"related":["paginate","default_pagination"],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"policy","category":"resource","summary":"A store policy.","access":"shop.policies, shop.refund_policy…","properties":[{"name":"title","type":"string","summary":"Title."},{"name":"body","type":"html","summary":"Content."},{"name":"url","type":"string","summary":"URL."},{"name":"handle","type":"string","summary":"Handle."},{"name":"kind","type":"string","summary":"refund, privacy, terms, shipping, contact or legal."}],"examples":[{"liquid":"{% for p in shop.policies %}<a href=\"{{ p.url }}\">{{ p.title }}</a> {% endfor %}","id":"object/policy/1","output":"<a href=\"/policies/refund-policy\">Refund policy</a> <a href=\"/policies/privacy-policy\">Privacy policy</a>"}],"since":"1.0","shopify":{"status":"partial","note":"kind is Sooquna's."}},{"name":"powered_by_link","category":"global","summary":"A \"Powered by Sooquna\" link.","access":"Every template.","since":"1.0","shopify":{"status":"partial","note":"Links to Sooquna."},"examples":[]},{"name":"predictive_search","category":"template","summary":"Suggestions for a predictive-search section (rendered with section_id=).","access":"Sections rendered by routes.predictive_search_url.","properties":[{"name":"performed","type":"boolean","summary":"A query was given."},{"name":"terms","type":"string","summary":"Query."},{"name":"resources","type":"object","summary":"products, collections, pages, articles and queries."}],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"product","category":"template","summary":"A product.","access":"Product template; also loops (collection.products, search results) and all_products.","properties":[{"name":"id","type":"string","summary":"ID."},{"name":"title","type":"string","summary":"Title (in the current language)."},{"name":"handle","type":"string","summary":"Handle."},{"name":"url","type":"string","summary":"URL."},{"name":"description","type":"html","summary":"Description."},{"name":"content","type":"html","summary":"Same as description."},{"name":"vendor","type":"string","summary":"Vendor."},{"name":"type","type":"string","summary":"Product type."},{"name":"tags","type":"array","summary":"Tags."},{"name":"price","type":"number","summary":"Lowest variant price (minor units)."},{"name":"price_min","type":"number","summary":"Lowest price."},{"name":"price_max","type":"number","summary":"Highest price."},{"name":"price_varies","type":"boolean","summary":"Variants differ in price."},{"name":"compare_at_price","type":"number","summary":"Compare-at price."},{"name":"compare_at_price_max","type":"number","summary":"Highest compare-at price."},{"name":"available","type":"boolean","summary":"A variant can be bought."},{"name":"featured_image","type":"image","summary":"First image."},{"name":"featured_media","type":"image","summary":"First media."},{"name":"images","type":"array of image","summary":"Images."},{"name":"media","type":"array","summary":"Images and external videos."},{"name":"options","type":"array","summary":"Option names."},{"name":"options_with_values","type":"array of product_option","summary":"Options with values."},{"name":"variants","type":"array of variant","summary":"Variants."},{"name":"selected_variant","type":"variant","summary":"Variant from ?variant=."},{"name":"selected_or_first_available_variant","type":"variant","summary":"Selected","else first available.":null},{"name":"first_available_variant","type":"variant","summary":"First available variant."},{"name":"has_only_default_variant","type":"boolean","summary":"No options."},{"name":"collections","type":"array of collection","summary":"Collections it's in."},{"name":"metafields","type":"object","summary":"Custom fields (product.metafields.custom.key)."},{"name":"gift_card?","type":"boolean","summary":"A gift card product."},{"name":"published_at","type":"date","summary":"Publish date."},{"name":"created_at","type":"date","summary":"Created."},{"name":"updated_at","type":"date","summary":"Updated."},{"name":"template_suffix","type":"string","summary":"Alternate template."},{"name":"rating","type":"number","summary":"Average published review rating to 1 decimal (reviews feature; nil without reviews)."},{"name":"rating_count","type":"number","summary":"Published reviews."},{"name":"reviews","type":"reviews","summary":"Reviews (reviews feature)."},{"name":"bestseller","type":"boolean","summary":"One of the store's top sellers (product_badges feature)."}],"examples":[{"liquid":"{{ product.title }} – {{ product.price | money }}{% if product.compare_at_price > product.price %} (was {{ product.compare_at_price | money }}){% endif %}","id":"object/product/1","output":"Embroidered linen abaya – QAR 450.00 (was QAR 520.00)"},{"title":"Arabic page","liquid":"{{ product.title }} – {{ product.price | money }}","lang":"ar","id":"object/product/2","output":"عباية كتان مطرزة – 450.00 ر.ق"}],"related":["variant","image","product_option","reviews"],"since":"1.0","shopify":{"status":"partial","note":"Adds rating, reviews and bestseller; selling plans are empty."}},{"name":"product_option","category":"resource","summary":"An option with its values (product.options_with_values).","access":"product.options_with_values.","properties":[{"name":"name","type":"string","summary":"Name."},{"name":"position","type":"number","summary":"1-based position."},{"name":"selected_value","type":"string","summary":"Value of the selected variant."},{"name":"values","type":"array of product_option_value","summary":"Values."}],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"product_option_value","category":"resource","summary":"One value of an option.","access":"product_option.values.","properties":[{"name":"id","type":"string","summary":"ID."},{"name":"name","type":"string","summary":"Value."},{"name":"available","type":"boolean","summary":"A variant with it can be bought."},{"name":"selected","type":"boolean","summary":"The selected variant has it."}],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"recently_viewed","category":"global","summary":"Products the shopper viewed (from ?recent_ids=, sent by a recently-viewed section).","access":"Every template.","properties":[{"name":"products","type":"array of product","summary":"Products."},{"name":"size","type":"number","summary":"How many."}],"since":"1.0","shopify":{"status":"sooquna","note":"Sooquna only."},"examples":[]},{"name":"recommendations","category":"template","summary":"Product recommendations for a section (rendered with product_id= and section_id=).","access":"Product template, and sections rendered by routes.product_recommendations_url.","properties":[{"name":"performed","type":"boolean","summary":"Recommendations were computed."},{"name":"intent","type":"string","summary":"related or complementary."},{"name":"products","type":"array of product","summary":"Recommended products."},{"name":"products_count","type":"number","summary":"How many."}],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"request","category":"global","summary":"The current request.","access":"Every template.","properties":[{"name":"host","type":"string","summary":"Host name."},{"name":"path","type":"string","summary":"Path."},{"name":"origin","type":"string","summary":"Scheme and host (https://…)."},{"name":"locale","type":"object","summary":"Current language: iso_code, name, endonym_name, primary, root_url, direction (ltr or rtl)."},{"name":"page_type","type":"string","summary":"Template type (index, product, collection…)."},{"name":"design_mode","type":"boolean","summary":"True in the theme editor."},{"name":"visual_preview_mode","type":"boolean","summary":"True in an editor preview."}],"examples":[{"liquid":"<html dir=\"{{ request.locale.direction }}\" lang=\"{{ request.locale.iso_code }}\">","id":"object/request/1","output":"<html dir=\"ltr\" lang=\"en\">"}],"since":"1.0","shopify":{"status":"partial","note":"request.locale.direction is Sooquna's: use it for dir= on RTL languages."}},{"name":"review","category":"resource","summary":"A product review.","access":"product.reviews.items.","properties":[{"name":"id","type":"string","summary":"ID."},{"name":"author","type":"string","summary":"Reviewer's display name."},{"name":"rating","type":"number","summary":"1–5."},{"name":"title","type":"string","summary":"Title."},{"name":"body","type":"string","summary":"Review."},{"name":"verified_buyer","type":"boolean","summary":"Bought the product."},{"name":"created_at","type":"date","summary":"Posted."},{"name":"reply","type":"string","summary":"The store's reply."},{"name":"replied_at","type":"date","summary":"Replied."},{"name":"helpful_count","type":"number","summary":"Helpful votes."},{"name":"vote_url","type":"string","summary":"POST here to vote helpful."}],"since":"1.0","shopify":{"status":"sooquna","note":"Sooquna's built-in reviews."},"examples":[]},{"name":"reviews","category":"resource","summary":"A product's reviews (reviews feature).","access":"product.reviews.","properties":[{"name":"count","type":"number","summary":"Published reviews."},{"name":"summary","type":"object","summary":"average, count and histogram (5 → count)."},{"name":"items","type":"array of review","summary":"Reviews on this page (?reviews_page=, ?reviews_sort=)."},{"name":"page","type":"number","summary":"Current page."},{"name":"pages","type":"number","summary":"Number of pages."},{"name":"per_page","type":"number","summary":"Reviews per page."},{"name":"sort","type":"string","summary":"newest, highest, lowest or helpful."},{"name":"form_url","type":"string","summary":"Where the review form posts."}],"related":["review"],"since":"1.0","shopify":{"status":"sooquna","note":"Sooquna's built-in reviews."},"examples":[]},{"name":"robots","category":"template","summary":"Default robots.txt rules, for templates/robots.txt.liquid.","access":"robots.txt.liquid.","properties":[{"name":"default","type":"string","summary":"The default rules."},{"name":"sitemap","type":"string","summary":"Sitemap URL."}],"examples":[{"liquid":"{{ robots.sitemap }}","id":"object/robots/1","output":"https://layla.sooquna.store/sitemap.xml"}],"since":"1.0","shopify":{"status":"partial","note":"default is the rules as text, not groups."}},{"name":"routes","category":"global","summary":"Storefront URLs, with the language prefix where needed.","access":"Every template.","properties":[{"name":"root_url","type":"string","summary":"Home."},{"name":"cart_url","type":"string","summary":"Cart page."},{"name":"cart_add_url","type":"string","summary":"Add to cart (POST, or /cart/add.js)."},{"name":"cart_change_url","type":"string","summary":"Change a line."},{"name":"cart_update_url","type":"string","summary":"Update quantities","note and attributes.":null},{"name":"cart_clear_url","type":"string","summary":"Empty the cart."},{"name":"account_url","type":"string","summary":"Customer account."},{"name":"account_login_url","type":"string","summary":"Sign in."},{"name":"account_logout_url","type":"string","summary":"Sign out."},{"name":"account_register_url","type":"string","summary":"Create an account."},{"name":"account_addresses_url","type":"string","summary":"Addresses."},{"name":"account_recover_url","type":"string","summary":"Reset password."},{"name":"collections_url","type":"string","summary":"All collections."},{"name":"all_products_collection_url","type":"string","summary":"All products."},{"name":"search_url","type":"string","summary":"Search."},{"name":"predictive_search_url","type":"string","summary":"Predictive search (JSON with ?q=, or HTML with section_id=)."},{"name":"product_recommendations_url","type":"string","summary":"Product recommendations."}],"examples":[{"liquid":"<a href=\"{{ routes.cart_url }}\">Cart</a>","id":"object/routes/1","output":"<a href=\"/cart\">Cart</a>"}],"since":"1.0","shopify":{"status":"same"}},{"name":"search","category":"template","summary":"Search results.","access":"Search template.","properties":[{"name":"performed","type":"boolean","summary":"A search ran."},{"name":"terms","type":"string","summary":"Query."},{"name":"results","type":"array","summary":"Results (products, pages, articles); check item.object_type."},{"name":"results_count","type":"number","summary":"Number of results."},{"name":"filters","type":"array","summary":"Filters."},{"name":"sort_by","type":"string","summary":"Sort order."},{"name":"sort_options","type":"array","summary":"Sort orders."},{"name":"types","type":"array","summary":"Resource types searched."}],"related":["predictive_search"],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"section","category":"theme","summary":"The current section.","access":"Section files.","properties":[{"name":"id","type":"string","summary":"Section ID (unique on the page; use in element IDs)."},{"name":"settings","type":"object","summary":"Settings from its {% schema %}."},{"name":"blocks","type":"array of block","summary":"Blocks."},{"name":"index","type":"number","summary":"1-based position on the page (lazy-load from 3 on)."},{"name":"location","type":"string","summary":"Section group or template."}],"examples":[{"liquid":"{{ section.settings.heading }}","id":"object/section/1","output":"New in"}],"related":["block","schema"],"since":"1.0","shopify":{"status":"same"}},{"name":"settings","category":"global","summary":"Theme settings (config/settings_schema.json).","description":"Values follow each setting's type; see Settings. Section and block settings are on section.settings and block.settings.","access":"Every template.","examples":[{"liquid":"{{ settings.brand_color }}","id":"object/settings/1","output":"#8A1538"}],"related":["section","block"],"since":"1.0","shopify":{"status":"same"}},{"name":"shop","category":"global","summary":"The store.","access":"Every template.","properties":[{"name":"name","type":"string","summary":"Store name."},{"name":"id","type":"string","summary":"Store ID."},{"name":"email","type":"string","summary":"Contact email."},{"name":"phone","type":"string","summary":"Support phone."},{"name":"url","type":"string","summary":"Storefront origin (https://…)."},{"name":"secure_url","type":"string","summary":"Same as url."},{"name":"domain","type":"string","summary":"Host of the current request."},{"name":"permanent_domain","type":"string","summary":"Same as domain."},{"name":"currency","type":"string","summary":"Store currency code (QAR, SAR…)."},{"name":"money_format","type":"string","summary":"Money format ({{amount}} QAR)."},{"name":"money_with_currency_format","type":"string","summary":"Same as money_format."},{"name":"locale","type":"string","summary":"Current language code."},{"name":"published_locales","type":"array","summary":"Language codes the store publishes."},{"name":"brand","type":"object","summary":"Brand assets from Settings > Brand (logo, colors, slogan)."},{"name":"description","type":"string","summary":"Store description."},{"name":"enabled_payment_types","type":"array","summary":"Payment methods shown at checkout (cod, visa, skipcash…); pair with payment_type_svg_tag."},{"name":"policies","type":"array of policy","summary":"Store policies that have content."},{"name":"privacy_policy","type":"policy","summary":"Privacy policy."},{"name":"refund_policy","type":"policy","summary":"Refund policy."},{"name":"shipping_policy","type":"policy","summary":"Shipping policy."},{"name":"terms_of_service","type":"policy","summary":"Terms of service."},{"name":"contact_information","type":"policy","summary":"Contact information."},{"name":"legal_notice","type":"policy","summary":"Legal notice."},{"name":"metafields","type":"object","summary":"Store custom fields (shop.metafields.namespace.key)."},{"name":"customer_accounts_enabled","type":"boolean","summary":"Always true."},{"name":"customer_accounts_optional","type":"boolean","summary":"Always true (guest checkout)."},{"name":"password_message","type":"string","summary":"Message for the password page."}],"examples":[{"liquid":"{{ shop.name }} · {{ shop.currency }}","id":"object/shop/1","output":"Layla Boutique · QAR"}],"related":["localization","request"],"since":"1.0","shopify":{"status":"partial","note":"products_count, collections_count, types and vendors aren't available; use collections['all']."}},{"name":"tablerowloop","category":"form","summary":"Loop state inside tablerow.","access":"Inside tablerow.","properties":[{"name":"col","type":"number","summary":"1-based column."},{"name":"row","type":"number","summary":"1-based row."},{"name":"col_first","type":"boolean","summary":"First column."},{"name":"col_last","type":"boolean","summary":"Last column."},{"name":"index","type":"number","summary":"1-based index."}],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"template","category":"global","summary":"The current template.","access":"Every template.","properties":[{"name":"name","type":"string","summary":"Type (product, collection…)."},{"name":"suffix","type":"string","summary":"Alternate template suffix, nil for the default."},{"name":"directory","type":"string","summary":"Always nil."}],"examples":[{"liquid":"<body class=\"template-{{ template.name }}\">","id":"object/template/1","output":"<body class=\"template-product\">"}],"since":"1.0","shopify":{"status":"same"}},{"name":"theme","category":"global","summary":"The theme being rendered.","access":"Every template.","properties":[{"name":"id","type":"string","summary":"ID."},{"name":"name","type":"string","summary":"Name."},{"name":"role","type":"string","summary":"main, or unpublished in previews."}],"since":"1.0","shopify":{"status":"same"},"examples":[]},{"name":"variant","category":"resource","summary":"A product variant.","access":"product.variants, product.selected_variant…","properties":[{"name":"id","type":"string","summary":"ID (send as id to /cart/add)."},{"name":"title","type":"string","summary":"Title (S / Black)."},{"name":"sku","type":"string","summary":"SKU."},{"name":"barcode","type":"string","summary":"Barcode."},{"name":"price","type":"number","summary":"Price."},{"name":"compare_at_price","type":"number","summary":"Compare-at price."},{"name":"available","type":"boolean","summary":"Can be bought."},{"name":"inventory_management","type":"string","summary":"Whether stock is tracked."},{"name":"inventory_policy","type":"string","summary":"continue or deny when sold out."},{"name":"option1","type":"string","summary":"First option value."},{"name":"option2","type":"string","summary":"Second option value."},{"name":"option3","type":"string","summary":"Third option value."},{"name":"options","type":"array","summary":"Option values."},{"name":"featured_image","type":"image","summary":"Image."},{"name":"weight","type":"number","summary":"Weight in grams."},{"name":"weight_unit","type":"string","summary":"Weight unit."},{"name":"requires_shipping","type":"boolean","summary":"Ships."},{"name":"taxable","type":"boolean","summary":"Taxed."},{"name":"quantity_rule","type":"object","summary":"min, max and increment."},{"name":"url","type":"string","summary":"Product URL with ?variant=."},{"name":"product","type":"product","summary":"The product."}],"examples":[{"liquid":"{% for v in product.variants %}{{ v.title }}{% unless v.available %} (sold out){% endunless %}{% unless forloop.last %}, {% endunless %}{% endfor %}","id":"object/variant/1","output":"S / Sand, M / Sand, L / Sand (sold out)"}],"since":"1.0","shopify":{"status":"partial","note":"inventory_quantity isn't exposed; use available."}},{"name":"wishlist","category":"template","summary":"The wishlist page (/wishlist).","access":"Wishlist template (wishlist feature).","properties":[{"name":"products","type":"array of product","summary":"Saved products."},{"name":"count","type":"number","summary":"How many."},{"name":"signed_in","type":"boolean","summary":"It's the customer's account list (not this browser's)."},{"name":"api_url","type":"string","summary":"JSON endpoint for the list."}],"since":"1.0","shopify":{"status":"sooquna","note":"Sooquna's built-in wishlist."},"examples":[]}],"settings":[{"type":"article","category":"specialized","summary":"Pick a blog post.","value":"The article's ID as a string; nil when none.","json":"{ \"type\": \"article\", \"id\": \"featured_article\", \"label\": \"Article\" }","since":"1.0","shopify":{"status":"partial","note":"Returns the ID, not the article object."}},{"type":"blog","category":"specialized","summary":"Pick a blog.","value":"The blog's ID as a string. Read blogs[handle] for its articles.","json":"{ \"type\": \"blog\", \"id\": \"blog\", \"label\": \"Blog\" }","since":"1.0","shopify":{"status":"partial","note":"Returns the ID, not the blog object."}},{"type":"checkbox","category":"basic","summary":"An on/off switch.","value":"true or false.","json":"{ \"type\": \"checkbox\", \"id\": \"show_vendor\", \"label\": \"Show vendor\", \"default\": false }","liquid":"{% if section.settings.show_vendor %}{{ product.vendor }}{% endif %}","since":"1.0","shopify":{"status":"same"}},{"type":"collection","category":"specialized","summary":"Pick a collection.","value":"The collection object; nil when none.","json":"{ \"type\": \"collection\", \"id\": \"collection\", \"label\": \"Collection\" }","liquid":"{% assign c = section.settings.collection | default: collections.all %}{{ c.title }}","since":"1.0","shopify":{"status":"same"}},{"type":"collection_list","category":"specialized","summary":"Pick several collections. \"limit\" caps how many.","value":"An array of collections (empty when none).","json":"{ \"type\": \"collection_list\", \"id\": \"collections\", \"label\": \"Collections\", \"limit\": 8 }","liquid":"{% for c in section.settings.collections %}{{ c.title }}{% endfor %}","since":"1.0","shopify":{"status":"same"}},{"type":"color","category":"specialized","summary":"A color picker.","value":"A hex string (\"#8A1538\"). Works with the color_* filters.","json":"{ \"type\": \"color\", \"id\": \"brand_color\", \"label\": \"Brand color\", \"default\": \"#8A1538\" }","liquid":"--brand: {{ settings.brand_color }}; --brand-soft: {{ settings.brand_color | color_modify: 'alpha', 0.12 }};","since":"1.0","shopify":{"status":"partial","note":"The value is the hex string, not a color object (.red, .rgb aren't available); use the color_* filters."}},{"type":"color_background","category":"specialized","summary":"A CSS background (a color or gradient).","value":"A CSS background string.","json":"{ \"type\": \"color_background\", \"id\": \"gradient\", \"label\": \"Background\" }","since":"1.0","shopify":{"status":"same"}},{"type":"color_scheme","category":"specialized","summary":"Pick one of the theme's color schemes.","value":"The scheme ID; use it as a class name.","json":"{ \"type\": \"color_scheme\", \"id\": \"color_scheme\", \"label\": \"Color scheme\", \"default\": \"scheme-1\" }","liquid":"<section class=\"scheme-{{ section.settings.color_scheme }}\">","since":"1.0","shopify":{"status":"partial","note":"The value is the scheme ID, not the scheme object."}},{"type":"color_scheme_group","category":"specialized","summary":"The theme's color schemes (settings_schema.json only): named sets of colors.","description":"Define the colors each scheme has in \"definition\"; merchants add schemes in the editor. Output a CSS class per scheme in a snippet.","value":"An object of schemes by ID; each has settings.<color id>.","json":"{ \"type\": \"color_scheme_group\", \"id\": \"color_schemes\", \"definition\": [{ \"type\": \"color\", \"id\": \"background\", \"label\": \"Background\", \"default\": \"#FFFFFF\" }, { \"type\": \"color\", \"id\": \"text\", \"label\": \"Text\", \"default\": \"#191719\" }], \"role\": { \"background\": \"background\", \"text\": \"text\" } }","since":"1.0","shopify":{"status":"same"}},{"type":"custom_page","category":"specialized","summary":"Pick one of the theme's custom pages (custom_pages/).","value":"A custom_page (name, url); nil when none.","json":"{ \"type\": \"custom_page\", \"id\": \"landing\", \"label\": \"Landing page\" }","liquid":"{% if section.settings.landing %}<a href=\"{{ section.settings.landing.url }}\">Ramadan offers</a>{% endif %}","since":"1.0","shopify":{"status":"sooquna","note":"Sooquna only."}},{"type":"font_picker","category":"specialized","summary":"Pick a font (compatibility).","description":"Sooquna has no hosted font library yet. Ship fonts in assets/ and offer a select of your own font names instead.","value":"The font name as a string.","json":"{ \"type\": \"font_picker\", \"id\": \"heading_font\", \"label\": \"Heading font\", \"default\": \"assistant_n4\" }","since":"1.0","shopify":{"status":"stub","note":"Accepted so ported themes load; font_face outputs nothing."}},{"type":"header","category":"sidebar","summary":"A heading that groups the settings after it.","value":"No value.","json":"{ \"type\": \"header\", \"content\": \"Colors\" }","since":"1.0","shopify":{"status":"same"}},{"type":"html","category":"specialized","summary":"HTML the merchant writes.","value":"Sanitized HTML (scripts and event handlers are removed).","json":"{ \"type\": \"html\", \"id\": \"custom_html\", \"label\": \"Custom HTML\" }","since":"1.0","shopify":{"status":"partial","note":"Scripts are removed."}},{"type":"image_picker","category":"specialized","summary":"Pick or upload an image.","value":"An image object; nil when none. Pass it to image_url.","json":"{ \"type\": \"image_picker\", \"id\": \"image\", \"label\": \"Image\" }","liquid":"{% if section.settings.image %}{{ section.settings.image | image_url: width: 1200 | image_tag: sizes: '100vw' }}{% endif %}","since":"1.0","shopify":{"status":"same"}},{"type":"inline_richtext","category":"specialized","summary":"Formatted text without paragraphs (bold, italic, links).","value":"Sanitized HTML.","json":"{ \"type\": \"inline_richtext\", \"id\": \"caption\", \"label\": \"Caption\" }","since":"1.0","shopify":{"status":"same"}},{"type":"link_list","category":"specialized","summary":"Pick a navigation menu.","value":"The linklist; nil when none.","json":"{ \"type\": \"link_list\", \"id\": \"menu\", \"label\": \"Menu\", \"default\": \"main-menu\" }","liquid":"{% for link in section.settings.menu.links %}<a href=\"{{ link.url }}\">{{ link.title }}</a>{% endfor %}","since":"1.0","shopify":{"status":"same"}},{"type":"liquid","category":"specialized","summary":"Liquid the merchant writes (compatibility).","value":"The code as text; it isn't rendered.","json":"{ \"type\": \"liquid\", \"id\": \"custom_liquid\", \"label\": \"Custom Liquid\" }","since":"1.0","shopify":{"status":"partial","note":"The value isn't rendered as Liquid: merchant code doesn't run on the storefront. Use html for markup."}},{"type":"metaobject","category":"specialized","summary":"Pick an entry of a metaobject type (\"metaobject_type\").","value":"The entry's ID as a string.","json":"{ \"type\": \"metaobject\", \"id\": \"author\", \"label\": \"Author\", \"metaobject_type\": \"author\" }","since":"1.0","shopify":{"status":"partial","note":"Returns the ID, not the entry."}},{"type":"metaobject_list","category":"specialized","summary":"Pick several entries of a metaobject type.","value":"An array of entry IDs.","json":"{ \"type\": \"metaobject_list\", \"id\": \"authors\", \"label\": \"Authors\", \"metaobject_type\": \"author\" }","since":"1.0","shopify":{"status":"partial","note":"Returns IDs, not entries."}},{"type":"number","category":"basic","summary":"A number field.","value":"A number (whole numbers are integers, so they work as loop limits); nil when empty.","json":"{ \"type\": \"number\", \"id\": \"products_to_show\", \"label\": \"Products\", \"default\": 4 }","liquid":"{% for p in collection.products limit: section.settings.products_to_show %}…{% endfor %}","since":"1.0","shopify":{"status":"same"}},{"type":"page","category":"specialized","summary":"Pick a page.","value":"The page's ID as a string. Read pages[handle] for its content.","json":"{ \"type\": \"page\", \"id\": \"page\", \"label\": \"Page\" }","since":"1.0","shopify":{"status":"partial","note":"Returns the ID, not the page object."}},{"type":"paragraph","category":"sidebar","summary":"Help text in the settings panel.","value":"No value.","json":"{ \"type\": \"paragraph\", \"content\": \"Shown above the footer on every page.\" }","since":"1.0","shopify":{"status":"same"}},{"type":"product","category":"specialized","summary":"Pick a product.","value":"The product object; nil when none.","json":"{ \"type\": \"product\", \"id\": \"product\", \"label\": \"Product\" }","liquid":"{% assign p = section.settings.product %}{% if p %}{{ p.title }} {{ p.price | money }}{% endif %}","since":"1.0","shopify":{"status":"same"}},{"type":"product_list","category":"specialized","summary":"Pick several products. \"limit\" caps how many.","value":"An array of products (empty when none).","json":"{ \"type\": \"product_list\", \"id\": \"products\", \"label\": \"Products\", \"limit\": 12 }","since":"1.0","shopify":{"status":"same"}},{"type":"radio","category":"basic","summary":"One choice among a few, shown as radio buttons.","value":"The chosen option's value.","json":"{ \"type\": \"radio\", \"id\": \"layout\", \"label\": \"Layout\", \"options\": [{ \"value\": \"grid\", \"label\": \"Grid\" }, { \"value\": \"list\", \"label\": \"List\" }], \"default\": \"grid\" }","liquid":"<div class=\"layout-{{ section.settings.layout }}\">","since":"1.0","shopify":{"status":"same"}},{"type":"range","category":"basic","summary":"A slider between min and max, in steps.","description":"The saved value stays between min and max.","value":"A number.","json":"{ \"type\": \"range\", \"id\": \"columns\", \"label\": \"Columns\", \"min\": 2, \"max\": 5, \"step\": 1, \"default\": 4 }","liquid":"grid-template-columns: repeat({{ section.settings.columns }}, 1fr);","since":"1.0","shopify":{"status":"same"}},{"type":"richtext","category":"specialized","summary":"Formatted text with paragraphs and lists.","description":"A default must be wrapped in <p> or <ul>.","value":"Sanitized HTML.","json":"{ \"type\": \"richtext\", \"id\": \"text\", \"label\": \"Text\", \"default\": \"<p>Hand-made in Doha.</p>\" }","liquid":"{{ section.settings.text }}","since":"1.0","shopify":{"status":"same"}},{"type":"select","category":"basic","summary":"One choice from a dropdown. Options can be grouped with \"group\".","value":"The chosen option's value.","json":"{ \"type\": \"select\", \"id\": \"image_ratio\", \"label\": \"Image ratio\", \"options\": [{ \"value\": \"square\", \"label\": \"Square\" }, { \"value\": \"portrait\", \"label\": \"Portrait\" }], \"default\": \"square\" }","since":"1.0","shopify":{"status":"same"}},{"type":"text","category":"basic","summary":"A single line of text.","value":"A string; nil when empty. Output is escaped.","json":"{ \"type\": \"text\", \"id\": \"heading\", \"label\": \"Heading\", \"default\": \"New in\" }","liquid":"{{ section.settings.heading }}","since":"1.0","shopify":{"status":"same"}},{"type":"text_alignment","category":"specialized","summary":"Left, center or right alignment.","description":"Values are logical (left means the start side), so they flip on Arabic pages when you use text-align start/end in CSS.","value":"left, center or right.","json":"{ \"type\": \"text_alignment\", \"id\": \"alignment\", \"label\": \"Alignment\", \"default\": \"left\" }","since":"1.0","shopify":{"status":"same"}},{"type":"textarea","category":"basic","summary":"Several lines of plain text.","value":"A string. Use newline_to_br to keep line breaks.","json":"{ \"type\": \"textarea\", \"id\": \"note\", \"label\": \"Note\" }","liquid":"{{ section.settings.note | newline_to_br }}","since":"1.0","shopify":{"status":"same"}},{"type":"url","category":"specialized","summary":"A link to a page of the store or another site.","value":"The URL as a string, with the language prefix for store pages; nil when empty.","json":"{ \"type\": \"url\", \"id\": \"button_link\", \"label\": \"Button link\" }","liquid":"{% if section.settings.button_link %}<a href=\"{{ section.settings.button_link }}\">Shop</a>{% endif %}","since":"1.0","shopify":{"status":"same"}},{"type":"video","category":"specialized","summary":"Pick an uploaded video.","value":"The video's asset reference as a string.","json":"{ \"type\": \"video\", \"id\": \"video\", \"label\": \"Video\" }","since":"1.0","shopify":{"status":"partial","note":"Returns the reference, not a video object."}},{"type":"video_url","category":"specialized","summary":"A YouTube or Vimeo link (\"accept\" lists which).","value":"The URL as a string.","json":"{ \"type\": \"video_url\", \"id\": \"video_url\", \"label\": \"Video\", \"accept\": [\"youtube\", \"vimeo\"] }","since":"1.0","shopify":{"status":"partial","note":"The value is the URL, not an object with .id and .type."}}]}