merks
1
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!
nathan
2
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
merks
3
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 :(
nathan
4
Como é um cenário de algo externo, acredito que vale a abertura de ticket na plataforma
merks
5
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!
merks
6
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!
nathan
7
Não precisa adicionar toda a url... só o que vem depois do .com.br que vai resolver.