Consultar produto
Retorna o cadastro completo de um produto pelo id, com preço, estoque, categorias e imagens.
Use esta operação quando você já sabe qual produto quer ver: depois de criar para conferir o resultado, antes de alterar para ler o valor atual, ou para abrir o detalhe de um item que apareceu na lista. A consulta de administração devolve o produto em qualquer status (ativo, oculto, desativado, aguardando aprovação ou rejeitado), diferente da API da vitrine, que só mostra os ativos.
As características, as opções, as variações, as faixas de preço e os anexos não vêm neste corpo: cada um tem a sua rota, nas seções Variações e opções, Preço e estoque e Conteúdo e características.
/api/v1.0/products/{id}AutenticadaConsultar um produto
Autenticação: HTTP Basic com e-mail:chave_de_api, ou Authorization: Bearer <JWT>; a leitura aceita qualquer usuário autenticado. A rota também responde em /api/products/{id}; nessa forma o {id} e todos os ids da resposta são decimais em string (por exemplo "77051560"), e o UUID continua aceito.
Parâmetros de caminho
idstringobrigatórioproduct_id, em UUID. Na rota /api/products/{id} também aceita o id decimal. Um valor que não é UUID na rota /api/v1.0 responde 500.Exemplo de requisição
curl -u "$EMAIL:$API_KEY" \
"$BASE_URL/api/v1.0/products/0497b6a8-c868-43be-ac21-2abddd24cd3c"Resposta
{
"product_id": "0497b6a8-c868-43be-ac21-2abddd24cd3c",
"product": "Caneca Esmaltada 350 ml",
"product_code": "CAN-350-AZ",
"product_type": "P",
"status": "A",
"company_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"price": "49.90",
"list_price": "59.90",
"amount": 12,
"tracking": "Y",
"weight": "0.350",
"length": "12.00",
"width": "9.00",
"height": "9.00",
"free_shipping": "N",
"min_qty": 0,
"max_qty": 0,
"qty_step": 1,
"full_description": "<p>Caneca esmaltada azul.</p>",
"short_description": "",
"main_category": "7ebc648d-6091-4511-8ea2-f86f7b3b4dd9",
"category_ids": ["7ebc648d-6091-4511-8ea2-f86f7b3b4dd9"],
"seo_name": "caneca-esmaltada-350-ml",
"page_title": "",
"meta_description": "",
"meta_keywords": "",
"search_words": "",
"promo_text": "",
"popularity": 0,
"position": 0,
"master_product_id": "",
"zero_price_action": "R",
"shipping_freight": 0,
"timestamp": 1791751867,
"updated_timestamp": 1791752114,
"main_pair": {
"pair_id": "acd51513-0264-46c7-a667-504e3ec77e19",
"image_id": "acd51513-0264-46c7-a667-504e3ec77e19",
"detailed": { "image_path": "/uploads/caneca-azul.png", "alt": "" },
"icons": { "image_path": "/uploads/caneca-azul.png?w=100", "alt": "" }
},
"image_pairs": {},
"product_features": [],
"product_options": [],
"prices": [],
"brand": "",
"tax_ids": [],
"category_names": [],
"variation_features": {}
}Campos da resposta
product_idstring/api/v1.0; decimal em string em /api/.productstringproduct_codestringproduct_typestringP (produto).statusstringADHA ativo, D desativado, H oculto. Produto aguardando aprovação (R) aparece como H e rejeitado (X) como D.company_idstring"0" quando o produto não tem seller.pricestring"49.90" = R$ 49,90).list_pricestring"0.00" quando não existe.amountintegertrackingstringYNY quando o produto controla estoque.weightstring"0.350").lengthstring"0.00" quando não informado.widthstringheightstringfree_shippingstringYNY quando o produto tem frete grátis.min_qtyinteger0 = sem mínimo.max_qtyinteger0 = sem máximo.qty_stepinteger1.full_descriptionstringshort_descriptionstringmain_categorystringcategory_idsarrayseo_namestringpage_titlestringtitle).meta_descriptionstringmeta_keywordsstringsearch_wordsstringpromo_textstringpopularityintegerpositioninteger0 (campo mantido por compatibilidade).master_product_idstringzero_price_actionstringPRAP vender por zero, R bloquear a compra online, A pedir orçamento.shipping_freightintegertimestampintegerupdated_timestampintegermain_pairobjectpair_id e image_id (iguais), detailed.image_path (imagem grande), icons.image_path (miniatura, a mesma URL com ?w=100) e alt. Ausente quando o produto não tem imagem.image_pairsobject"0", "1"...) e os valores têm o mesmo formato de main_pair. {} quando não há outras.product_featuresarray[{"feature_id","variant_id","value"}]. Vazio em produto comum. As demais características têm rota própria em Conteúdo e características.product_optionsarray[] aqui. As opções do produto saem em Variações e opções.pricesarray[] aqui. As faixas de preço por quantidade saem em Preço e estoque.brandstring"" (campo mantido por compatibilidade).tax_idsarray[].category_namesarray[].variation_featuresobject{}.Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem credenciais, chave de API inválida ou token expirado | {"message":"Authentication required. Use HTTP Basic with email:api_key or Bearer <jwt>.","status":401} |
| 404 | O produto não existe, foi excluído ou o {id} é um SKU ou display_id | {"message":"Product not found","status":404} |
| 400 | (rota /api/products) {id} que não é UUID nem decimal | {"message":"Invalid id","status":400} |
| 500 | (rota /api/v1.0) {id} que não é UUID, ou falha interna | {"message":"Failed to retrieve product","status":500} |