zankh

Catálogo

Produtos

Criar, atualizar, listar e desativar produtos — o caminho para subir um catálogo inteiro.

Todas as páginas

O catálogo é a razão de existir desta API. São cinco rotas, e a listagem é a que evita o erro mais caro de uma importação: duplicar o que já está lá.

  • GET/v1/productsLista produtos. Filtros: query (nome ou SKU), active=true|false, page, pageSize.
  • POST/v1/productsCria um produto. 201 no sucesso.
  • GET/v1/products/{id}Um produto, com imagens e estoque por depósito.
  • PATCH/v1/products/{id}Atualização parcial — só os campos enviados mudam.
  • DELETE/v1/products/{id}Desativa o produto (exclusão lógica).
  • PUT/v1/products/{id}/stockDefine o estoque absoluto de um depósito.

Criar um produto

Requisição
curl -X POST https://api.zankhapi.com.br/v1/products \
  -H "Authorization: Bearer zk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Placa de vídeo RTX 4070",
    "sku": "GPU-4070",
    "regularPriceCents": 349990,
    "compareAtPriceCents": 399990,
    "shortDescription": "12GB GDDR6X",
    "imageUrl": "https://exemplo.com/rtx4070.jpg",
    "stockQuantity": 5
  }'

Campos do produto

CampoTipoDescrição
nameobrigatóriostringO nome do produto.
regularPriceCentsobrigatóriointegerPreço de venda em centavos.
slugstringO endereço do produto na vitrine. Gerado a partir do nome quando omitido.
skustringO seu código interno. É por ele que a sua próxima importação reencontra o item.
shortDescriptionstringUma linha, mostrada nas listagens.
longDescriptionHtmlstringA descrição completa da página do produto.
compareAtPriceCentsintegerO preço “de”, riscado. Envie null num PATCH para encerrar a promoção.
storeInstallmentPriceCentsintegerPreço parcelado exibido. Não altera o que é cobrado no checkout.
imageUrlstringURL pública da foto principal. A zankh copia a imagem para o armazenamento dela.
stockQuantityintegerEstoque inicial. Depois disso use PUT /stock.
stockLocationNamestringO depósito do estoque. Omitido, usa o padrão da loja.
isActivebooleanSe o produto aparece na vitrine. Padrão true.
isPurchasablebooleanSe aceita compra. Um produto ativo e não comprável fica visível como vitrine.

Atualizar

PATCH é parcial: o que você não enviar fica como está. É o que permite um script de preço mexer só em preço, sem arrastar a descrição junto.

 
curl -X PATCH https://api.zankhapi.com.br/v1/products/PRODUTO_ID \
  -H "Authorization: Bearer zk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "regularPriceCents": 329990, "compareAtPriceCents": null }'

Desativar, não apagar

DELETE é exclusão lógica: o produto sai da vitrine e continua existindo para os pedidos que já o referenciam. Um pedido do mês passado não pode ficar sem saber o que foi vendido — por isso não existe exclusão física nesta API.

Subir um catálogo inteiro

  1. Liste o que já existe (GET /v1/products?pageSize=200) e case pelo seu sku.
  2. Crie o que falta, um `POST` por produto — não existe rota em lote no v1.
  3. Para o que já existe, mande PATCH só com o que mudou.
  4. Trate 409 slug_taken: já há um produto com esse endereço na sua loja. Envie um slug explícito ou reaproveite o produto existente.