Skip to main content

Gerenciar Produtos

Este guia cobre todas as operações para consultar, criar, atualizar e excluir produtos e suas sub-entidades.
Para ver todos os campos disponíveis, tipos e validações de cada endpoint, consulte o API Reference.

Regras Importantes

Antes de começar, tenha em mente estas regras que se aplicam a toda a gestão de produtos:
Ordem de criação obrigatória: Produto → Opções → Variantes → Media / Categorias. Você não pode criar variantes sem opções primeiro.
  • Status do produto: Atualmente o único valor suportado é "published". O status é retornado igual nas respostas.
  • option_values é imutável: Uma vez criada a variante, você não pode alterar seus option_values via PATCH. Se precisar corrigi-los, exclua a variante e crie-a novamente.
  • Moedas suportadas: MXN, PEN, COP, CLP, ARS, BRL, VES, BOB, USD, PYG, UYU, CRC, EUR.
  • A moeda deve coincidir com a do catálogo: Todas as variantes de um produto devem usar a mesma moeda configurada no catálogo. Usar uma moeda diferente pode causar inconsistências internas.
  • Respostas: PATCH retorna 200 com o recurso atualizado. DELETE retorna 204 sem body.
  • Todo produto requer pelo menos uma variante: Mesmo produtos simples (sem tamanhos ou cores) precisam de no mínimo uma opção e uma variante. Use um nome genérico como “Apresentação” ou “Unidade”.
  • Não existem endpoints batch: Cada entidade deve ser criada individualmente.

Consultar Produtos

Listar produtos

Retorna uma lista paginada de produtos com todas as suas sub-entidades.
A resposta inclui paginação:
limit aceita um máximo de 100. Consulte Paginação para mais detalhes.

Obter um produto

Retorna um produto com todas as suas opções, variantes (com media) e categorias.
Exemplo de resposta:

Criar um Produto Completo

1. Criar o produto

2. Adicionar opções

A resposta inclui os IDs dos valores criados. Guarde esses IDs para usá-los ao criar variantes.
Precisa adicionar mais valores a uma opção? Use POST /v1/products/{product_id}/options/{option_id}/values com o nome do novo valor (ex. {"name": "XL"}).

3. Criar variantes

Cada variante deve incluir option_values com pelo menos um ID de valor de opção.

4. Adicionar media à variante

As URLs de media devem ser públicas e acessíveis. O sistema não pode acessar URLs privadas ou protegidas por autenticação.
Tipos de arquivo permitidos:

5. Atribuir categorias

Este endpoint é idempotente: se um tag já está atribuído, ele é ignorado e a resposta é 200. Só retorna 201 quando novos tags são atribuídos.

Atualizar Entidades

Excluir Entidades

Isso desvincula a categoria do produto, mas não exclui a categoria global.
Excluir uma variante também exclui toda a sua media associada.
Você não pode excluir um valor de opção se ele estiver associado a uma variante ativa.
Excluir uma opção também exclui todos os seus valores. As variantes associadas a esses valores podem ficar em estado inconsistente.
Excluir um produto exclui todas as suas variantes, opções, valores de opção e media. Essa ação não pode ser desfeita.

Produto Simples (sem variações)

Nem todos os produtos têm tamanhos ou cores. Mesmo assim, todo produto requer pelo menos uma opção e uma variante. Use um nome genérico para a opção.
O nome da opção é livre: "Apresentação", "Tipo", "Unidade", etc.

Erros Comuns

Erros de validação (422) retornam um body com detalhes do campo que falhou:
Você está criando uma variante sem option_values ou com uma lista vazia. Você deve criar opções primeiro com POST /v1/products/{product_id}/options e usar os IDs dos valores retornados.
Se tentar criar uma variante antes de ter criado opções, não terá IDs de valores disponíveis para o campo option_values. Sempre crie opções primeiro.
O endpoint POST /v1/products/{product_id}/categories requer tag_ids (lista de IDs numéricos), não nomes de categoria. Primeiro crie a categoria com POST /v1/categories e use o id retornado.
O campo catalog_id é obrigatório ao criar um produto. Obtenha seu catálogo com GET /v1/catalogs.
Os IDs de option_values devem corresponder a valores do mesmo produto. Usar IDs de outro produto ou IDs inexistentes resultará em erro.
PATCH /v1/products/{product_id}/variants/{variant_id} não aceita option_values. Os valores de opção de uma variante são atribuídos apenas na criação. Se precisar corrigi-los, exclua a variante e crie-a novamente com os valores corretos.