-
Notifications
You must be signed in to change notification settings - Fork 1
/
fastBuy.js
63 lines (55 loc) · 2.02 KB
/
fastBuy.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/**
* author: Taynara Sene
* github: taahsene
* Compra Rapida (Home)- para loja Tray Commerce- Opencode
* **Utilização**
*
* Faça a chamada do snippet de quantidade no snippet de Produtos
* {% element 'snippets/qtd_home'{"product": product} %}
*
* Adicione o Botão comprar
* <button type="submit" class="comprar"data-app="product.buy-button" data-product ="{{ product.id }}" > </button>
*/
// Quantidade
jQuery('[data-app="product.qty"]').on('click', function() {
var $input = jQuery(this).parent().find('input')[0];
var value = parseInt(jQuery($input).attr('value'));
var option = jQuery(this).attr('data-action')== 'minus' ? -1 : 1
value += option;
if(value > 0)
jQuery($input).attr('value',value);
})
//Comprar
jQuery('[data-app="product.buy-button"]').on('click', function() {
var $input = jQuery(this).parent().parent().find('input')[0];
var $productId = jQuery(this).attr('data-product');
var $dataSession = jQuery("html").attr("data-session");
var $productQtd = parseInt(jQuery($input).attr('value'));
var self = this;
jQuery.ajax({
method: "POST",
url: "/web_api/cart/",
contentType: "application/json; charset=utf-8",
data: '{"Cart":{"session_id":"'+$dataSession+'","product_id":"'+$productId+'","quantity":'+$productQtd+'}}'
}).done(function( response, textStatus, jqXHR ) {
jQuery(self).text("Adicionado!")
// alert("Produto Adicionado ao Carrinho!");
//Função para exibir a modal
reloaderPreview(showModal);
}).fail(function( jqXHR, status, errorThrown ){
var response = jQuery.parseJSON( jqXHR.responseText );
// Exibe a mensagem de erro (estoque insuficiente, etc)
alert(response.causes[0])
});
})
function reloaderPreview(callback) {
//Renderiza novamente o componente de cart-preview
store.render.init();
setTimeout(function() {
callback();
}, 800);
}
// Dispara a modal
function showModal() {
jQuery('.cart-preview').modal('show');
}