# Informação de preço com tempo de cache menor

Por padrão a informação de preço (info-preço) é atualizado a cada 2 horas, sendo o tempo do cache da view da página. Ou seja, caso você altere o preço de um de seus produtos, o mesmo será apresentado no layout de sua loja em no máximo 2 horas.

Para diminuir esse tempo, nossa equipe de tecnologia desenvolveu uma nova forma de apresentação do info-preço, fazendo com que a atualização do preço ocorra em no máximo 10 minutos.

Esse tempo poderá diminuir em datas comemorativas, exemplo: BlackFriday.   \
**Observação**: O tempo de cache da página continua sendo 2 horas para as outras alterações, o que foi alterado para este componente foi somente o cache do info-preço

### **Como é o funcionamento**

Na home da loja e nas páginas de catalogo, busca e produto temos um Ajax que realiza o "replace" de uma div pré definida e assim atualiza o preço e as informações de parcelamento mesmo que a página esteja cacheada.

### **Como implementar**

Em seu layout no bloco de preço e info preço, deverá ser chamado uma DIV da seguinte forma:

```html
<div data-module="pricing" data-snippet="snippets/nocacheprice" data-product-id="{{ product.id }}">       
    carregando... 
</div>
```

&#x20; Veja que contém 4 campos na div acima:

1. **`data-module="pricing"`** : Este campo deverá ser assim, onde será utilizado pelo Ajax.
2. **`data-product-id="{{ product.id}}` :** Este campo deverá ser assim, onde será utilizado pelo Ajax.&#x20;
3. **`data-snippet="snippets/nocacheprice`:** Este campo deverá ser preenchido com o nome do seu snippet que contém o bloco de info\_preço e preço. Poderá ser qualquer nome neste parâmetro. Tudo que estiver dentro do snippet será recarregado via Ajax.
4. **Palavra Carregando:** Poderá ser uma palavra, uma imagem ou qualquer outro elemento. Sendo apresentado até o momento que o Ajax acabe de carregar.

Na prática, crie em seu layout uma snippet "preco\_tempo\_menor" e insira as informações de preço, exemplo:&#x20;

```html
{% if settings.store_main_price_boleto %}                    
<div id="preco">                        
    <div id="produto_preco">                            
    {% if product.price_offer > 0 %}                                
        <div class="precode" id="precoDe">                                   
            {{ settings.currency }} {{ product.price|currency }}                                
        </div>                            
    {% endif %}                            
        <span class="PrecoPrincipal price-payment">{{ product.payment }}</span>                            
        <div id="info_preco">{{ product.payment }}</div>                        
    </div>                    
</div>                
{% else %}                   
    {{ productHelper.pricing() }}                
{% endif %}
```

&#x20;Na página de product.html realizamos a chamada:&#x20;

```html
<div data-module="pricing" data-snippet="snippets/preco_tempo_menor" data-product-id="{{ product.id }}">        
    aguarde, carregando preço...    
</div>
```

&#x20;Essa funcionalidade está disponível para todas as lojas da Tray.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://partners.tray.com.br/themes/construindo-seu-template/desenvolver/informacao-de-preco-com-tempo-de-cache-menor.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
