vtex/vtex.js

Adicionar o mesmo attachment a mais de uma unidade de um item

klzns opened this issue · 6 comments

klzns commented

Tornar possível adicionar o mesmo attachment para um item com mais de uma unidade.

Ex:
Adicionar 10 canecas ao carrinho
Adicionar customização com texto "Minha Empresa" aos 10 itens

@BrenoC isso é uma funcionalidade para as próximas 2 semanas ou levará mais tempo?

klzns commented

@caljp13 Provavelmente mais tempo.

alvim commented

Alguma novidade sobre isso?

Preciso adicionar o mesmo anexo a vários produtos ao mesmo tempo. Já tentei fazer várias instâncias do checkout para fazerem todas as requisições paralelamente, porém, no fim, só um produto fica com anexo, embora todas as requisições retornem 200.

klzns commented

oi, @Alvimm, sim, já é possivel fazer isso, acredito que podemos melhorar a documentação:
https://github.com/vtex/vtex.js/tree/master/docs/checkout#additemattachmentitemindex-attachmentname-content-expectedorderformsections-splititem

Existe uma novo parametro na funcao chamado splitItems, caso vc passe como false, ele irá aplicar o attachment a todos os items ao inves de apenas um.

Poderia tentar usar essa opção com false e ve se consegue fazer o que precisa?

Pull requests com melhorias a documentação tambem são bem vindos

klzns commented

Importante lembrar que o updateItems também recebeu esse parametro:
https://github.com/vtex/vtex.js/tree/master/docs/checkout#updateitemsitems-expectedorderformsections

Então caso atualize a quantidade do item após adicionar o attachment, lembrar de passar esse parametro como false.

alvim commented

O exemplo da doc é o seguinte:
vtexjs.checkout.addItemAttachment(itemIndex, attachmentName, content, null, false)

Não entendi bem o que seria o splitItem, pq a doc diz uma coisa e vc disse que "caso vc passe como false, ele irá aplicar o attachment a todos os items ao inves de apenas um."

Da forma que eu entendi, são duas informações diferentes. Também não entendi o sentido de aplicar a todos os items, sendo que na chamada da função eu tenho que me referir a um itemIndex em específico.

Executei a função com o splitItems = false, passando o itemIndex = 0 (já que tinha que passar um) e aconteceu o esperado: aplicou-se somente ao 0.