vtex / vtex.js

VTEX SDK for JavaScript
MIT License
120 stars 52 forks source link

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

Closed zeluizr closed 8 years ago

zeluizr commented 9 years ago

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

zeluizr commented 9 years ago

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.

zeluizr commented 9 years ago

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 9 years ago

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.

zeluizr commented 8 years ago

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

klzns commented 8 years ago

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?

zeluizr commented 8 years ago

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 8 years ago

@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.

zeluizr commented 8 years ago

@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

felipebremer commented 8 years ago

@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.

zeluizr commented 8 years ago

@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 8 years ago

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.