Adicionar attachment a um item do orderform

Bom dia,

Estou tentando adicionar um attachment a um item de um orderform utilizando a seguinte requisição:

POST

https://minhaloja.vtexcommercestable.com.br/api/checkout/pub/orderForm/3658e59254774b4f81ff213d23ef68f9/items/0/attachments/arquivo

Com o seguinte body:

{

"arquivo":"exemplo.png"

}

Porém a resposta que recebo é a seguinte:

{

"Fields": {},

"operationId": "ad05f6ab-7875-43f2-a1fd-bf8483a54577",

"error": {

"code": "1",

"message": "A requisição é inválida",

"exception": null

}

}

No orderform, o attachment "arquivo" consta como um offering válido:

"attachmentOfferings": [

{

"name": "arquivo",

"required": false,

"schema": {

"arquivo": {

"maximumNumberOfCharacters": 10000,

"domain": []

}

}

}

]​

Alguém pode me dar uma dica?

Obrigado!

O attachment apesar do nome, nada mais é do que uma informação extra no orderForm, não um anexo(upload) de arquivo.

Você pode enviar uma string com o nome do arquivo, claro, porém pense sempre como uma string adicional, ok?

Segue o link: https://github.com/vtex/vtex.js/tree/master/docs/checkout#sendattachmentattachmentid-attachment-expectedorderformsections

Sim sim

Estou ciente da questão da string

A ideia é que eu subo uma imagem para um serviço terceiro e anexo apenas o link da imagem no item do orderform

O "arquivo" nada mais é do que o link da imagem

Tentei usar o módulo javascript da VTEX mas não obtive sucesso, pois estou desenvolvendo um site fora da VTEX e isso implica em erros de CORS

Para contornar isso, estou montando uma API na AWS em node, e não estou conseguindo utilizar o js da VTEX

Então estou montando as requisições manualmente, seguindo o modelo gerado pelo javascript, mas não estou obtendo sucesso...

Requisições do tipo GET funcionam normalmente, mas quando tento realizar um POST, sempre me retorna o erro de requisição inválida :(

Como é um cenário de algo externo, acredito que vale a abertura de ticket na plataforma

Consegui encontrar o problema...

Acontece que eu esteva enviando o seguinte body:

{

"arquivo":"exemplo.png"

}

Quando na verdade o correto seria:

{

"content":{

"arquivo":"exemplo.png"

}

}

Agora a requisição funciona e não retorna mais erro...

Obrigado pela ajuda!

Em contrapartida, tenho outra dúvida...

Focando sempre em contornar a questão do CORS, estou usando a seguinte URL para adicionar um produto ao carrinho:

https://www.minhaloja.com.br/checkout/cart/add?sku=414&qty=1&seller=1&redirect=false&sc=1

Porém, não consigo fazer uma requisição AJAX pois isso cai no problema do CORS...

Então tenho que direcionar a navegação para o link acima, resultando numa tela branca...

Existe uma forma de realizar um redirecionamento customizado após a chamada da URL? Para que eu possa voltar para o meu site?

Obrigado!

Não precisa adicionar toda a url... só o que vem depois do .com.br que vai resolver.