Filtros
Un filtro transforma un valor: {{ product.price | money }}. Se encadenan de izquierda a derecha y algunos reciben parámetros con nombre (image_url: width: 600).
Los marcados como Merge son propios de la plataforma o se comportan distinto al Liquid estándar. Un filtro que no está en esta página no existe en el motor: usarlo es un error de render.
Dinero
Los montos llegan en unidades menores (centésimos): 12990 son $ 129,90. Formateá siempre con estos filtros, nunca dividas a mano.
moneyMerge
monto | money
Monto con el símbolo de la moneda de la tienda ($ para pesos, U$S para dólares), separador de miles con punto y decimales con coma. Si los decimales son ,00 no se muestran.
{{ product.price | money }}Resultado: $ 1.290
money_with_currencyMerge
monto | money_with_currency
Como money, con el código ISO de la moneda al final.
{{ cart.total_price | money_with_currency }}Resultado: $ 2.450,50 UYU
money_without_currencyMerge
monto | money_without_currency
Solo el número formateado, sin símbolo.
{{ variant.price | money_without_currency }}Resultado: 1.290
money_without_trailing_zerosMerge
monto | money_without_trailing_zeros
Igual a money (que ya omite los ,00). Existe para que los themes portados funcionen sin cambios.
{{ product.price | money_without_trailing_zeros }}Resultado: $ 1.290
Imágenes y medios
Reciben un objeto de imagen (o su URL) y arman la URL o el tag. image_url pide el tamaño que necesitás; la plataforma sirve la versión redimensionada cuando está disponible.
image_urlMerge
imagen | image_url: width: n, height: n
URL de la imagen. Con width y/o height, la URL de una versión redimensionada. Acepta un objeto de imagen o una URL.
{{ product.featured_image | image_url: width: 600 }}image_tagMerge
url | image_tag: alt: texto, class: clase, width: n, height: n, sizes: s, loading: l
Un <img> con loading="lazy" y decoding="async" por defecto. loading: "eager" para la imagen principal de la página.
{{ product.featured_image | image_url: width: 800 | image_tag: alt: product.title, class: 'card__img' }}Resultado: <img src="…" alt="Remera lisa" class="card__img" loading="lazy" decoding="async">
media_tagMerge
media | media_tag: class: clase
El <img> de un elemento de product.media, con su texto alternativo. Acepta los mismos parámetros que image_tag.
{% for media in product.media %}{{ media | media_tag }}{% endfor %}video_tagMerge
video | video_tag: autoplay: true, loop: true, muted: true, controls: true, class: clase, preload: p
Un <video playsinline> de un setting de tipo video. Los atributos booleanos se agregan solo con true; preload acepta none, metadata o auto. Cualquier otro atributo se ignora.
{{ section.settings.video | video_tag: autoplay: true, muted: true, loop: true }}placeholder_svg_tagMerge
'nombre' | placeholder_svg_tag: 'clase'
Un SVG neutro para mostrar donde todavía no hay imagen (por ejemplo, en una sección recién agregada). Toma el color del texto.
{{ 'image' | placeholder_svg_tag: 'placeholder' }}payment_type_svg_tagMerge
tipo | payment_type_svg_tag: class: clase
Ícono de un medio de pago como tarjeta con su nombre (sin logos de marcas). Reconoce visa, master, amex, oca, cabal, creditel, anda, lider, passcard, abitab, redpagos, mercado_pago, paypal y otros; un tipo desconocido muestra su nombre.
{{ 'oca' | payment_type_svg_tag: class: 'icono-pago' }}HTML, assets y datos
Arman tags HTML seguros. Lo que devuelven no se vuelve a escapar; cualquier texto que reciben sí se escapa.
asset_urlMerge
'archivo' | asset_url
URL pública de un archivo de assets/ en la versión publicada del theme. Solo archivos sueltos (sin subcarpetas).
{{ 'theme.css' | asset_url }}stylesheet_tag
url | stylesheet_tag
Un <link rel="stylesheet">.
{{ 'theme.css' | asset_url | stylesheet_tag }}Resultado: <link rel="stylesheet" href="…/theme.css">
script_tagMerge
url | script_tag
Un <script src defer>.
{{ 'theme.js' | asset_url | script_tag }}Resultado: <script src="…/theme.js" defer></script>
metafield_tag
metacampo | metafield_tag
Renderiza un metacampo según su tipo: texto multilínea con <br>, link como <a>, lista de textos como <ul>, texto con formato tal cual. Sin valor no imprime nada.
{{ product.metafields.ficha.modo_de_uso | metafield_tag }}structured_data
producto_o_artículo | structured_data
JSON-LD de schema.org: Product con sus ofertas para un producto, BlogPosting para un artículo. Va dentro de un <script type="application/ld+json">.
<script type="application/ld+json">{{ product | structured_data }}</script>jsonMerge
valor | json
JSON del valor, seguro para incrustar en un <script type="application/json"> (no puede cerrar el tag).
<script type="application/json" id="producto">{{ product.variants | json }}</script>default_errors
form.errors | default_errors
Lista <ul> con los errores de un formulario. Sin errores no imprime nada.
{% form 'contact' %}{{ form.errors | default_errors }}…{% endform %}newline_to_br
texto | newline_to_br
Cambia los saltos de línea por <br />. El texto se escapa antes.
{{ block.settings.texto | newline_to_br }}escape
texto | escape
Escapa HTML. La salida de {{ }} ya se escapa sola: usalo dentro de atributos armados con capture o para ser explícito.
<meta content="{{ page_description | escape }}">escape_once
texto | escape_once
Escapa HTML sin volver a escapar las entidades que ya están escapadas.
{{ '1 < 2 & 3' | escape_once }}Resultado: 1 < 2 & 3
Traducciones y handles
Textos del theme desde locales/es.json, valores por defecto y handles.
tMerge
'clave.con.puntos' | t: variable: valor
Texto de locales/es.json. Interpola {{ variable }} y elige el plural con count (one / other). Una clave que falta muestra translation missing: es.<clave>.
{{ 'collections.products_count' | t: count: collection.products_count }}Resultado: 12 productos
default
valor | default: otro
El valor, o otro si es vacío, nil o false. Respeta el HTML capturado con capture.
{{ section.settings.titulo | default: 'Novedades' }}handleize
texto | handleize
Convierte un texto en handle: minúsculas, sin tildes y con guiones.
{{ 'Té & Hierbas Orgánicas' | handleize }}Resultado: te-hierbas-organicas
handle
texto | handle
Alias de handleize.
{{ product.vendor | handle }}url_for_vendor
marca | url_for_vendor
Link a la búsqueda de productos de esa marca.
<a href="{{ product.vendor | url_for_vendor }}">{{ product.vendor }}</a>Texto
Filtros estándar de Liquid para strings.
| Filtro | Uso | Qué hace |
|---|---|---|
append | texto | append: ' más' | Agrega un texto al final. |
prepend | texto | prepend: 'Desde ' | Agrega un texto al principio. |
capitalize | texto | capitalize | Primera letra en mayúscula. |
downcase | texto | downcase | Todo en minúsculas. |
upcase | texto | upcase | Todo en mayúsculas. |
strip | texto | strip | Saca los espacios de los dos extremos. |
lstrip | texto | lstrip | Saca los espacios del principio. |
rstrip | texto | rstrip | Saca los espacios del final. |
strip_html | html | strip_html | Saca las etiquetas HTML. |
strip_newlines | texto | strip_newlines | Saca los saltos de línea. |
remove | texto | remove: 'x' | Saca todas las apariciones. |
remove_first | texto | remove_first: 'x' | Saca la primera aparición. |
remove_last | texto | remove_last: 'x' | Saca la última aparición. |
replace | texto | replace: 'a', 'b' | Reemplaza todas las apariciones. |
replace_first | texto | replace_first: 'a', 'b' | Reemplaza la primera. |
replace_last | texto | replace_last: 'a', 'b' | Reemplaza la última. |
slice | texto | slice: inicio, largo | Parte de un texto o de un array. |
split | texto | split: ',' | Divide un texto en un array. |
truncate | texto | truncate: 80 | Corta a una cantidad de caracteres con .... |
truncatewords | texto | truncatewords: 20 | Corta a una cantidad de palabras. |
size | valor | size | Largo de un texto o cantidad de elementos de un array. |
Números
Aritmética estándar de Liquid.
divided_byMerge
n | divided_by: d
Divide. Como en Shopify, entre enteros el resultado es entero (redondea para abajo); con un divisor con decimales (100.0) el resultado tiene decimales.
{{ 2600 | divided_by: 1000 }} · {{ 2600 | divided_by: 1000.0 }}Resultado: 2 · 2.6
| Filtro | Uso | Qué hace |
|---|---|---|
abs | n | abs | Valor absoluto. |
at_least | n | at_least: 1 | Como mínimo ese valor. |
at_most | n | at_most: 10 | Como máximo ese valor. |
ceil | n | ceil | Redondea para arriba. |
floor | n | floor | Redondea para abajo. |
round | n | round: decimales | Redondea. |
plus | n | plus: 1 | Suma. |
minus | n | minus: 1 | Resta. |
times | n | times: 2 | Multiplica. |
modulo | n | modulo: 3 | Resto de la división. |
Arrays
Filtros estándar de Liquid para listas.
| Filtro | Uso | Qué hace |
|---|---|---|
first | lista | first | Primer elemento. |
last | lista | last | Último elemento. |
join | lista | join: ', ' | Une los elementos en un texto. |
map | lista | map: 'title' | Una propiedad de cada elemento. |
where | lista | where: 'available', true | Los elementos con esa propiedad. |
find | lista | find: 'handle', 'x' | El primer elemento con esa propiedad. |
find_index | lista | find_index: 'id', id | Índice del primero que coincide. |
has | lista | has: 'available', true | Si algún elemento coincide. |
reject | lista | reject: 'available', false | Los que no coinciden. |
sum | lista | sum: 'quantity' | Suma de los valores (o de una propiedad). |
compact | lista | compact | Saca los nil. |
concat | lista | concat: otra | Une dos arrays. |
reverse | lista | reverse | Invierte el orden. |
sort | lista | sort: 'title' | Ordena (distingue mayúsculas). |
sort_natural | lista | sort_natural: 'title' | Ordena sin distinguir mayúsculas. |
uniq | lista | uniq | Saca los repetidos. |
URL y codificación
Codificación de URLs, base64 y hashes.
| Filtro | Uso | Qué hace |
|---|---|---|
url_encode | texto | url_encode | Codifica para usar en una URL. |
url_decode | texto | url_decode | Decodifica un texto de una URL. |
base64_encode | texto | base64_encode | Codifica en base64. |
base64_decode | texto | base64_decode | Decodifica base64. |
sha256 | texto | sha256 | Hash SHA-256 en hexadecimal. |
hmac_sha256 | texto | hmac_sha256: 'clave' | HMAC-SHA256 en hexadecimal. |
Fechas
Formato de fechas.
date
fecha | date: '%d/%m/%Y'
Formatea una fecha con el formato de strftime. Las fechas de los objetos vienen en ISO 8601.
{{ article.published_at | date: '%d/%m/%Y' }}Resultado: 11/11/2026