parent_id apontando para o combo. Criar, editar estoque, preço, imagens, categoria, visibilidade e o restante usa as mesmas rotas.
Base: https://api.selltrust.com.br/api/v1 — header Authorization: Bearer <token>.
Tipos
GET /api/v1/product lista só a raiz (parent_id = null). Variações não aparecem soltas nessa lista. Use GET /api/v1/product/{id}/variants ou GET /api/v1/product/{id} na própria variação.
Imagens
Cada produto aceita até 5 imagens. Cada item do arrayimages pode ser:
- Arquivo da plataforma no formato
uuid.extensão(o mesmo que o painel grava depois do upload). - URL absoluta
http://ouhttps://(CDN próprio, Imgur, S3, etc.), até 2048 caracteres.
A primeira posição do array é a capa. Para trocar a capa, reenvie o array completo com a URL (ou arquivo) desejada no índice
0. images no PATCH substitui a lista atual — não é um merge.https://cdn…/store/{loja}/product/{arquivo}. URLs externas passam direto.
Estoque e licenças (produto simples e variação)
Dois jeitos de controlar estoque. Os dois valem na criação e no PATCH (incluindo variação). Estoque numérico — envieinventory_amount (inteiro ≥ 0). Use null se o produto não deve controlar quantidade.
Chaves / contas (entrega automática) — envie license_keys (array de strings, até 5.000 por request, cada uma até 255 caracteres).
- Se
license_keystiver itens, o estoque passa a ser o tamanho do array (inventory_amounté ignorado nesse request). - No PATCH, enviar
license_keyssubstitui todas as chaves atuais. Envie a lista completa, não um diff. license_keys: []apaga as chaves. O estoque só muda se você mandarinventory_amountno mesmo request.- Se você não enviar
inventory_amountnemlicense_keys, o estoque permanece como está.
GET /api/v1/product/{id}. A listagem de variações traz só _count.license_keys (quantidade), para não devolver milhares de keys de uma vez.
Como editar uma variação
É o mesmoPATCH /api/v1/product/{id} do produto simples. Use o UUID da variação (não o do combo).
O body precisa de is_bundle: false (o valor tem que bater com o tipo atual). O restante é parcial: mande só o que mudou.
Fluxo típico:
- Crie o combo:
POST /api/v1/productcomis_bundle: true. - Crie cada variação:
POST /api/v1/productcomis_bundle: falseeparent_id= id do combo. - Liste:
GET /api/v1/product/{idDoCombo}/variants. - Edite estoque, preço ou imagem:
PATCH /api/v1/product/{idDaVariacao}. - Remova:
DELETE /api/v1/product/{idDaVariacao}. Excluir o combo apaga as variações em cascata.
Combo (is_bundle: true)
O PATCH do combo também exige is_bundle: true. Dá para mudar título, descrição, imagens (URL ou arquivo), categoria, visibilidade e chat. Não envie pricing, inventory_amount, license_keys, parent_id, min_quantity nem instructions — esses campos não existem no combo.
Categoria
category_id é obrigatório na criação e, no PATCH, precisa ser uma categoria folha da mesma loja (sem subcategorias). Caso contrário a API responde 400/404.
Slug e posição
slugé gerado a partir dotitle. No PATCH, se o título mudar, um slug novo é gerado (com sufixo se já existir na loja). Não há camposlugno body de produto.positionentra nas respostas. Reordenar produtos é só pelo painel, não pela API pública.
Limites
- Até 1000 produtos raiz por loja (variações não entram nesse teto).
title2–255 caracteres.descriptionaté 50.000;instructionsaté 30.000;chat_welcome_messageaté 1.000.price/comparisonentre 0 e 100.000. O preço comparativo, se enviado, não pode ser menor que o preço.
