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
Was this helpful?
