vtex/vtex.js

a função "addToCart" não esta funcionando.

zeluizr opened this issue · 11 comments

Estou tentando usar a função descrita no DOC, e não esta funcionando.

item = {
    id: 2000017893,
    quantity: 1,
    seller: 1
};
vtexjs.checkout.addToCart([item]).done(function(orderForm){
    alert('Item adicionado!');
    console.log(orderForm);
});

screenshot at jul 24 11-45-17

Verificando o vtex.js ativo no front que é o: http://io.vtex.com.br/vtex.js/1.0.0/vtex.min.js não tem a função addToCart.

Fala ai @BrenoC,

Sabe porque essa função não esta mais funcionando?

Obrigado.

Ze Luiz Rodrigues
eCommerce | User Experience Manager
Av. Pueyrredon 468 Piso 10 - C.A.B.A.
1191AAA - Bs. As. - Argentina
+54 11 4959 6967
+54 9 11 3637 6670
www.fravega.com

klzns commented

Exatamente pelo motivo que você falou:

Verificando o vtex.js ativo no front que é o: http://io.vtex.com.br/vtex.js/1.0.0/vtex.min.js não tem a função addToCart.

Nós fizemos uma breaking change no comportamento do vtex.js e não estamos seguros se devemos migrar todas as lojas para a versão 2, por isso a versão 1 está sendo inserida nas páginas.

Acredito que o melhor seja criamos uma versão 3 tirando essa breaking change, mantendo compatibilidade com a versão 1.

@BrenoC, a versão ainda não foi atualizada, e continua o erro. Como faço para voltar a usar essa funcionalidade?

klzns commented

Oi, @zeluizr, verifiquei em algumas lojas e o script vtex.js está sendo inserido na versão 2.0. Qual loja que você está tendo problemas?

Oi @BrenoC, cara acredito que em algumas das lojas aqui na Argentina.
http://electrastore.vtexcommercestable.com.br
http://stylewatch.vtexcommercestable.com.br
Faço teste pelo Speed, e em Stable e não funciona, segue trazendo o mesmo error.

klzns commented

@zeluizr eu testei nas duas lojas e em ambas estão sendo entregues os scripts na versão 2 com a função addToCart definida.

screen shot 2016-10-03 at 1 34 27 pm

Qual o erro que está acontecendo? Tem certeza de que está usando a função depois do script do vtexjs ser inserido? Pode ser que seu script esteja sendo inserido antes dele.

@BrenoC fala ai blz?

Aparentemente foi adicionado, porém não consigo adicionar nada ao carrinho com a função, ela me retorna um erro: vtex.js:758 Uncaught Error: This method requires an OrderForm. Use getOrderForm beforehand. e estou copiando e colando da documentação.

order-form

order-form-b

@zeluizr Aqui eu executei e funcionou. http://prntscr.com/csxhpc
Mas você está passando outros parametros na addToCart (null, 1)
pq ?
Comandos que executei:
vtexjs.checkout.getOrderForm().done(function(e){ console.log(e) });
var item = { id: 14, quantity: 1, seller: 1 };
vtexjs.checkout.addToCart([item]).done(function(e){ console.log(e) });

Consegue testar passando só o item no addToCart ?

Abs.

@felipebremer, cara eu estava enviando os outros parametros, porque assim informa na DOC do vtex.js

Fiz o teste, e funcionou perfeito. Muito obrigado!

Obrigado @BrenoC ;)

klzns commented

So esclarecendo que o problema foi: não esperar a resposta a chamada a função getOrderForm. Como ela é uma operação assincrona, deve se esperar o seu retorno para fazer qualquer operacao no carrinho.

A documentação nao está informando isso de forma clara.

A issue #19 é um caminho para resolver esse problema de usabilidade da API do vtex.js

Os paramêtros a mais que estão na documentação estão corretos e não são a causa do erro.