Imagens do produto
Adiciona, reordena, define a principal e monta a sequência 360 graus das imagens de um produto do seller.
A galeria de um produto é uma lista ordenada de imagens; uma delas é a principal. As imagens também aparecem no campo images de Consultar produto. Para enviar um arquivo de imagem à loja, use o upload de mídia da plataforma e depois registre aqui o caminho /uploads/... devolvido.
Adicionar imagem
Registra uma imagem na galeria do produto a partir de uma URL. A plataforma não baixa o arquivo nesta chamada: ela guarda e serve a URL. A primeira imagem de um produto vira a principal sozinha.
/api/v1/vendor/products/{id}/imagesSellerAdicionar uma imagem
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioCorpo da requisição
urlstringobrigatóriohttp(s), caminho /uploads/... de um arquivo já enviado à loja, ou data: de imagem (até 5 MB). Outros esquemas são recusados.alt_textstringpositioninteger0 coloca no início.is_primarybooleantrue torna esta a imagem principal e desmarca a anterior.Exemplo de requisição (adicionar)
curl -X POST "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/images" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"url": "https://cdn.minhaloja.com.br/camiseta-frente.png",
"alt_text": "Camiseta preta, frente",
"is_primary": true
}'Resposta (adicionar)
{
"id": "b0b5a3d6-3d1d-4c9e-8b0d-6f1f0a2c7e11",
"image_url": "/uploads/dfe2555e-bfd0-41a8-9fa1-9586999f3798/product/7bc1d5e9/frente.png",
"alt_text": "Camiseta preta, frente",
"position": 0,
"is_primary": true
}Campos da resposta
idstring (uuid)image_urlstringalt_textstringpositionintegeris_primarybooleanErros (adicionar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_catalog"]} |
| 400 | url ausente, ou URL recusada (esquema, caminho com .., tipo de imagem fora da lista). | {"error":"invalid image url","detail":"..."} |
| 403 | O produto existe mas é de outro seller (ou da loja). | {"error":"you do not have access to this product"} |
| 404 | Produto não existe. | {"error":"product not found"} |
Reordenar imagens
Define a ordem de exibição. Envie os ids na ordem desejada; o primeiro fica na posição 0.
/api/v1/vendor/products/{id}/images/reorderSellerReordenar as imagens
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioCorpo da requisição
image_idsarray of stringobrigatórioExemplo de requisição (reordenar)
curl -X PUT "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/images/reorder" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"image_ids": [
"b0b5a3d6-3d1d-4c9e-8b0d-6f1f0a2c7e11",
"e2a4c7d1-61a8-4b53-9a5e-0c8b7f3d2a90"
]
}'Resposta (reordenar)
{
"images": [
{
"id": "b0b5a3d6-3d1d-4c9e-8b0d-6f1f0a2c7e11",
"image_url": "/uploads/dfe2555e-bfd0-41a8-9fa1-9586999f3798/product/7bc1d5e9/frente.png",
"alt_text": "Camiseta preta, frente",
"position": 0,
"is_primary": true
}
],
"total": 1
}Campos da resposta
imagesarraytotalintegerErros (reordenar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_catalog"]} |
| 400 | image_ids ausente ou vazio. | {"error":"image_ids is required"} |
| 403 | O produto existe mas é de outro seller (ou da loja). | {"error":"you do not have access to this product"} |
| 404 | Produto não existe. | {"error":"product not found"} |
| 500 | Id de imagem de outro produto ou inexistente. | {"error":"failed to reorder images","detail":"..."} |
Imagem principal
Marca uma imagem como principal: é a que aparece na lista e na página do produto. As outras perdem a marca.
/api/v1/vendor/products/{id}/images/{imageId}/primarySellerDefinir a imagem principal
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioimageIdstring (uuid)obrigatórioExemplo de requisição (principal)
curl -X PUT "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/images/$IMAGE_ID/primary" \
-H "Authorization: Bearer $TOKEN"Resposta (principal)
{
"message": "primary image updated"
}Campos da resposta
messagestringErros (principal)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_catalog"]} |
| 403 | O produto existe mas é de outro seller (ou da loja). | {"error":"you do not have access to this product"} |
| 404 | Produto não existe. | {"error":"product not found"} |
| 500 | Imagem não existe. | {"error":"failed to set primary image","detail":"image not found"} |
Sequência 360 graus
Escolhe quais imagens já enviadas formam a visualização giratória (360 graus) do produto, e em que ordem. A sequência anterior é totalmente substituída; envie lista vazia para remover o giro.
/api/v1/vendor/products/{id}/images/spin-groupSellerMontar a sequência 360 graus
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioCorpo da requisição
image_idsarray of stringobrigatórioExemplo de requisição (360)
curl -X PUT "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/images/spin-group" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"image_ids": [
"b0b5a3d6-3d1d-4c9e-8b0d-6f1f0a2c7e11",
"e2a4c7d1-61a8-4b53-9a5e-0c8b7f3d2a90"
]
}'Resposta (360)
{
"ok": true
}Campos da resposta
okbooleantrue em caso de sucesso.Erros (360)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller. | {"error":"insufficient permissions"} |
| 403 | Produto não é do seu seller. | {"error":"not your product"} |
| 400 | Corpo inválido. | {"error":"invalid request body","detail":"..."} |