Filtros Olist Ecommerce
Filtros Olist Ecommerce
Seção intitulada “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.
Filtros de preço e parcelamento
Seção intitulada “Filtros de preço e parcelamento”money_format
Seção intitulada “money_format”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_formatao exibir preços.
installments
Seção intitulada “installments”Retorna o valor de cada parcela com base no número máximo de parcelas do produto.
Sintaxe: {{ product.price | installments }}
apply_discount
Seção intitulada “apply_discount”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 %}max_with_interest e max_without_interest
Seção intitulada “max_with_interest e max_without_interest”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 jurosou {{ com_juros.number }}x de {{ com_juros.price | money_format }} com jurosclient_price
Seção intitulada “client_price”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 %}Filtros de imagem e mídia
Seção intitulada “Filtros de imagem e mídia”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" }}" />Filtros de dados
Seção intitulada “Filtros de dados”to_json
Seção intitulada “to_json”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>group_images_by_url
Seção intitulada “group_images_by_url”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 de assets
Seção intitulada “Filtros de assets”Filtros para referenciar arquivos estáticos do template. Constroem o caminho correto considerando o versionamento de assets da plataforma.
image_path
Seção intitulada “image_path”Aponta para arquivos na pasta /images/ do template.
<img src="{{ 'logo.png' | image_path }}" alt="Logo" />favicon_path
Seção intitulada “favicon_path”Aponta para o favicon na raiz do template.
<link rel="shortcut icon" href="{{ 'favicon.ico' | favicon_path }}" />stylesheet_path
Seção intitulada “stylesheet_path”Aponta para arquivos na pasta /stylesheets/ do template.
<link rel="stylesheet" href="{{ 'style.css' | stylesheet_path }}" />javascript_path
Seção intitulada “javascript_path”Aponta para arquivos na pasta /javascripts/ do template.
<script src="{{ 'app.js' | javascript_path }}"></script>Resumo dos filtros
Seção intitulada “Resumo dos filtros”| Filtro | Categoria | Entrada | Saída |
|---|---|---|---|
money_format | Preço | integer (centavos) | string formatada (R$ X,XX) |
installments | Parcelamento | integer | valor da parcela |
apply_discount | Parcelamento | objeto product | preço com desconto aplicado |
max_without_interest | Parcelamento | array installments | objeto {number, price} |
max_with_interest | Parcelamento | array installments | objeto {number, price} |
client_price | Preço | objeto product | preço de cliente |
resize | Imagem | string (URL) | string (URL redimensionada) |
to_json | Dados | objeto Liquid | string JSON |
group_images_by_url | Imagem | array de imagens | array agrupado |
plural | Texto | integer | string no singular ou plural |
image_path | Asset | string (nome do arquivo) | string (path completo) |
favicon_path | Asset | string (nome do arquivo) | string (path completo) |
stylesheet_path | Asset | string (nome do arquivo) | string (path completo) |
javascript_path | Asset | string (nome do arquivo) | string (path completo) |