For the complete documentation index, see llms.txt. This page is also available as Markdown.

Adicionar ao carrinho sem sair da página

Snippet para adicionar o produto ao carrinho sem sair da página. O artigo tem por objetivo mostrar a utilização da API do carrinho para adição do produto.

Modelo 1 - Simples

Caso o produto possua variação, ao clicar em comprar é redirecionado para a página interna do produto.

{#
 # Snippets com botão de Comprar
 # elements/snippets/add-cart.html
#}

{% if product.available %}
  {% if product.stock > 0 %}
    <div class="addcart" id="variants">
      {% if product.has_variation %}
        <a href="{{ product.link }}"><input type="button" class="addCart" value="Comprar"/></a>
      {% else %}
        <input type="button" class="addCart" value="Comprar" onclick="addCart({{ product.id }})" />
      {% endif %}
    </div>
  {% else %}
    <span> Produto não Disponivel</span>
  {% endif %}
{% else %}
  <span> Produto não Disponivel</span>
{% endif %}
function addCart(dataProductId){
    var dataSession = $("html").attr("data-session");
  $.ajax({
    method: "POST",
    url: "/web_api/cart/",
    contentType: "application/json; charset=utf-8",
    data: '{"Cart":{"session_id":"'+dataSession+'","product_id":"'+dataProductId+'","quantity":"1"}}'
  }).done(function( response, textStatus, jqXHR ) {
    console.log(response);
    var qtdCart = parseInt($("span[data-cart=amount]").html());
    $("span[data-cart=amount]").html(qtdCart + 1);
  }).fail(function( jqXHR, status, errorThrown ){
    var response = $.parseJSON( jqXHR.responseText );
    console.log(response);
  });
}

Modelo 2 - Completo

Essas funções não suportam campos adicionais. Produtos com campos adicionais serão adicionados sem os devidos valores desses respectivos campos.

Também não é recomendado utilizar esse modelo quando o cliente tem a opção de B2B ativa na loja.

Como usar

Copie o código HTML e crie um arquivo separado, exemplo: elements/snippets/add-cart.html

Faça a chamada desse arquivo onde desejar:

Insira o bloco de código Javascript em seu arquivo JS.

Last updated