Problemas ao atualizar os attachments do produto

Opa, fala ae pessoal. Td bom?
Estou tentando adicionar items no orderForm, já com um attachment selecionado.
Primeiro eu tentei usar o hook addItems do “VTEX.order-items/OrderItems”

const items = selectedProducts.map(product => {
      return {
        id: product.skuId, 
        quantity: product.selectedQuantity, 
        seller: product.sellerId,  
        attachments: [
          {
            content: {"vtex.subscription.key.frequency": "1 month"},
            name:  "vtex.subscription.teste" 
          }
        ]
      }
    })

await addItems([...items]);

Ele adiciona no carrinho, mas vai sem o attachment que passei selecionado.

Outra alternativa foi tentar usar o graphql do checkout:
Montei a mutation no admin, porém ele retorna 400 “BAD_USER_INPUT”, acredito que estou passando o “attachmentContent” de forma errada, porém na doc do graphql ele não tem um type definido, então não sei exatamente como passar, já tentei de todas as formas.

Existe alguma outra forma de passar já um attachment para quando o produto chegar no checkout já ir selecionado??

Eu já tentei usar a API graphql para isso, mas infelizmente a VTEX ainda não documentou os tipos de algumas mutations, por conta disso tambem nao consegui usar uma mudation/query para isso, mas eu consegui fazer isso usando uma API rest do checkout, segue o exemplo

fetch(
/api/checkout/pub/orderForm/${ID DO ORDERFORM}/items/${POSICAO DO SKU NO CARRINHO}/attachments/${NOME DO ANEXO CADASTRADO NO ADMIN},
{
headers: {
},
body: JSON.stringify({
content: {
‘NOME DO ITEM DO ANEXO’: ‘VALOR DO ANEXO’
},
expectedOrderFormSections: [
‘items’,
‘totalizers’,
‘clientProfileData’,
‘shippingData’,
‘paymentData’,
‘sellers’,
‘messages’,
‘marketingData’,
‘clientPreferencesData’,
‘storePreferencesData’,
‘giftRegistryData’,
‘ratesAndBenefitsData’,
‘openTextField’,
‘commercialConditionData’,
‘customData’,
],
noSplitItem: true,
}),
method: ‘POST’,
mode: ‘cors’,
credentials: ‘include’,
}
)

tenta isso e me avise se funcionar para voce!

1 Like

Opa, @Erislandio . Desculpa a demora pra responder.
Cara a solução que eu achei aqui foi setar um localStorage e no checkout utilizar o addItemsAttachments do vtexjs pra adicionar eles.

A VTEX respondeu tbm sobre o checkout-graphql, disse que não recomenda ser utilizado pq é um código experimental.

Eu cheguei a utilizar sua opção, mas como eu tenho que enviar muitos items, acaba que demora muito pra adicionar todos eles. Mas obrigadão pela resposta, tmj!