Pular para o conteúdo

Filtros Olist Ecommerce

Além dos filtros nativos do Liquid, a plataforma Olist Ecommerce disponibiliza filtros próprios para necessidades específicas de e-commerce: formatação de preços, parcelamento, redimensionamento de imagens e caminhos de assets.

Estes filtros são exclusivos da plataforma Olist Ecommerce. Não funcionam em implementações genéricas de Liquid.

Formata um valor inteiro (em centavos) para o formato monetário brasileiro (R$ X,XX).

{{ product.price | money_format }}
{{-- Resultado: R$ 129,90 --}}

Todos os valores de preço na plataforma são inteiros em centavos. Use sempre money_format ao exibir preços.


Retorna o valor de cada parcela com base no número máximo de parcelas do produto.

Sintaxe: {{ product.price | installments }}


Considera o preço promocional (sale_price) quando o produto está em promoção. Use em conjunto com installments para calcular parcelas sobre o preço correto.

Uso combinado — exibir parcelas com desconto:

{% if product.installments.size > 1 %}
<p class="parcelas">
{% if product.on_sale %}
ou {{ product.installments.size }}x de {{ product | apply_discount | installments | money_format }}
{% else %}
ou {{ product.installments.size }}x de {{ product.price | installments | money_format }}
{% endif %}
</p>
{% endif %}

Retornam o objeto de parcelamento com o maior número de parcelas, com e sem juros respectivamente, baseados nos métodos de pagamento configurados na loja.

O objeto retornado tem as propriedades:

  • .number — número de parcelas
  • .price — valor de cada parcela (em centavos)
{% assign sem_juros = product.installments | max_without_interest %}
{% assign com_juros = product.installments | max_with_interest %}
{{ sem_juros.number }}x de {{ sem_juros.price | money_format }} sem juros
ou {{ com_juros.number }}x de {{ com_juros.price | money_format }} com juros

Aplica o preço de cliente quando o comprador tem uma tag de cliente associada a uma promoção de preço especial.

{% assign preco_cliente = product | client_price %}
{% assign preco_normal = product.price %}
{% if preco_cliente != preco_normal %}
<span class="preco-especial">{{ product | client_price | money_format }}</span>
<span class="preco-original">De: {{ preco_normal | money_format }}</span>
{% else %}
{{ product | client_price | money_format }}
{% endif %}

Redimensiona uma imagem cadastrada no admin. Os parâmetros são "LARGURAxALTURA" — omitir um dos valores mantém a proporção.

{{-- Dimensões fixas --}}
<img src="{{ image.url | resize: "300x300" }}" />
{{-- Apenas largura (altura proporcional) --}}
<img src="{{ image.url | resize: "600x" }}" />
{{-- Apenas altura (largura proporcional) --}}
<img src="{{ image.url | resize: "x400" }}" />

Serializa um objeto Liquid para o formato JSON. Útil para passar dados ao JavaScript.

<script>
window.__product__ = {{ product.variants | to_json }};
window.__cart__ = {{ cart | to_json }};
</script>

Agrupa as imagens de um produto pela URL base, útil para agrupar variações de imagem da mesma cor ou ângulo.

{% assign imagens_agrupadas = product.images | group_images_by_url %}
{% for imagem in imagens_agrupadas %}
<img src="{{ imagem.url }}" />
{% endfor %}

Aplica singular ou plural a um texto com base em um número.

Sintaxe: {{ numero | plural: "singular", "plural" }}

{{ tag.products_count | plural: "produto", "produtos" }}
{{-- Resultado: "1 produto" ou "5 produtos" --}}
{{ cart.items.size | plural: "item", "itens" }}

Filtros para referenciar arquivos estáticos do template. Constroem o caminho correto considerando o versionamento de assets da plataforma.

Aponta para arquivos na pasta /images/ do template.

<img src="{{ 'logo.png' | image_path }}" alt="Logo" />

Aponta para o favicon na raiz do template.

<link rel="shortcut icon" href="{{ 'favicon.ico' | favicon_path }}" />

Aponta para arquivos na pasta /stylesheets/ do template.

<link rel="stylesheet" href="{{ 'style.css' | stylesheet_path }}" />

Aponta para arquivos na pasta /javascripts/ do template.

<script src="{{ 'app.js' | javascript_path }}"></script>

FiltroCategoriaEntradaSaída
money_formatPreçointeger (centavos)string formatada (R$ X,XX)
installmentsParcelamentointegervalor da parcela
apply_discountParcelamentoobjeto productpreço com desconto aplicado
max_without_interestParcelamentoarray installmentsobjeto {number, price}
max_with_interestParcelamentoarray installmentsobjeto {number, price}
client_pricePreçoobjeto productpreço de cliente
resizeImagemstring (URL)string (URL redimensionada)
to_jsonDadosobjeto Liquidstring JSON
group_images_by_urlImagemarray de imagensarray agrupado
pluralTextointegerstring no singular ou plural
image_pathAssetstring (nome do arquivo)string (path completo)
favicon_pathAssetstring (nome do arquivo)string (path completo)
stylesheet_pathAssetstring (nome do arquivo)string (path completo)
javascript_pathAssetstring (nome do arquivo)string (path completo)