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:

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

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.

  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:

{% 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 %}

Na página de product.html realizamos a chamada:

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

Essa funcionalidade está disponível para todas as lojas da Tray.

Last updated