Produtos
Lista, busca e filtra produtos, lista promoções e produtos de uma categoria e lê a ficha de um produto, no formato do app móvel.
Estas quatro rotas alimentam as telas de lista, busca, promoção e detalhe do app. Todas são anônimas (a ekey é opcional) e só devolvem produtos ativos que a vitrine mostra. Com a ekey, o preço e a visibilidade seguem o grupo do cliente logado.
Todas as listas devolvem o mesmo cartão de produto (veja os campos abaixo) dentro de products, mais params com a paginação. A ficha de um produto devolve o cartão direto.
/api/4.0/sra_productsPúblicaListar e buscar produtos
Os resultados vêm na ordem do catálogo, a menos que você peça sort_by.
Parâmetros de consulta
pageintegerpadrão: 1items_per_pageintegerpadrão: 20per_page e limit são sinônimos.)searchstringq é um sinônimo.category_idstringsubcatsstringYyestrue1include_subcategories=true faz o mesmo.)company_idstringvendor_id é um sinônimo; seller desconhecido devolve lista vazia.sort_bystringproductpriceamountpopularityratingtimestampname, list_price, quantity, rating_avg, created_at, position e code.sort_dirstringascdescsort_order é um sinônimo. Outro valor usa a direção padrão do campo.on_salebooleantruefalsein_stockbooleantrueexclude_variationsbooleanpadrão: truetruefalsefalse, 0, n ou no incluem as variações como produtos.variation_group_idstringfeatures[ID]stringfeatures[12]=34,35 traz produtos com a variante 34 ou 35 da característica 12. Pode repetir para várias características.features_hashstring/api/4.0/sra_products/{id}PúblicaFicha de um produto
Devolve o cartão do produto, incluindo variation_features_variants quando o produto tem variações. Produto inexistente ou que não está ativo responde 404.
Parâmetros de caminho
idstringobrigatório/api/4.0/sra_products_discountedPúblicaProdutos em promoção
Igual a GET /api/4.0/sra_products com on_sale ligado. Aceita todos os mesmos parâmetros.
/api/4.0/categories/{id}/sra_productsPúblicaProdutos de uma categoria
Igual a GET /api/4.0/sra_products com a categoria vinda do caminho. Aceita os mesmos parâmetros e mais um.
Parâmetros de caminho
idstringobrigatórioParâmetros de consulta
get_filtersbooleantrue1yyesfilters as características e variantes disponíveis na categoria, para montar a tela de filtros.Exemplo de requisição
curl "$BASE_URL/api/4.0/sra_products?search=caneca&sort_by=price&sort_dir=asc&items_per_page=20"Com a ekey do cliente (preços do grupo dele):
curl "$BASE_URL/api/4.0/categories/878363454/sra_products?get_filters=true&items_per_page=20" \
-H "Authorization: Basic $(printf '%s' "$CUSTOMER_TOKEN" | base64 -w0):"Resposta
{
"products": [
{
"product_id": "1585658495",
"product": "Caneca Esmaltada 350ml",
"product_code": "CAN-350",
"price": 52.9,
"price_formatted": { "price": "52.90" },
"list_price": 52.9,
"list_price_formatted": { "price": "52.90" },
"min_qty": 0,
"qty_step": 1,
"amount": 5,
"in_stock": 1,
"company_id": "347963034",
"company_name": "Loja Exemplo",
"category_ids": ["878363454", "2126275725"],
"discounts": { "A": 0, "P": 0 },
"free_shipping": "N",
"full_description": "Caneca de aço esmaltado, 350 ml.",
"product_options": {},
"product_features": {},
"variation_features": {},
"variation_feature_ids": {},
"variation_features_variants": {},
"main_pair": {
"icon": {
"image_path": "https://minhaloja.io.venddor.com.br/uploads/p/caneca.png?w=400",
"http_image_path": "https://minhaloja.io.venddor.com.br/uploads/p/caneca.png?w=400",
"https_image_path": "https://minhaloja.io.venddor.com.br/uploads/p/caneca.png?w=400"
},
"detailed": {
"image_path": "https://minhaloja.io.venddor.com.br/uploads/p/caneca.png",
"http_image_path": "https://minhaloja.io.venddor.com.br/uploads/p/caneca.png",
"https_image_path": "https://minhaloja.io.venddor.com.br/uploads/p/caneca.png"
},
"icons": {
"500x500": {
"image_path": "https://minhaloja.io.venddor.com.br/uploads/p/caneca.png?w=400",
"http_image_path": "https://minhaloja.io.venddor.com.br/uploads/p/caneca.png?w=400",
"https_image_path": "https://minhaloja.io.venddor.com.br/uploads/p/caneca.png?w=400"
}
}
}
}
],
"params": { "page": 1, "items_per_page": 20, "total_items": 4981 }
}Campos da resposta
products[].product_idstringproducts[].productstringproducts[].product_codestringproducts[].pricenumberproducts[].price_formatted.pricestringproducts[].list_pricenumberprice quando não há desconto.products[].min_qtynumber0 é sem mínimo.products[].qty_stepnumberproducts[].amountnumberproducts[].in_stockinteger011 quando há estoque ou a loja não controla estoque do produto.products[].company_idstring"0" é a própria loja.products[].company_namestringproducts[].category_idsarrayproducts[].discountsobject{"A":0,"P":0}. Mantido por compatibilidade: o desconto já está em price.products[].free_shippingstringYNproducts[].full_descriptionstringproducts[].product_optionsobject{}.products[].product_featuresobjectfeature_id, variant_id, variant, value e description.products[].variation_featuresobjectproducts[].variation_features_variantsobjectproducts[].variation_group_idstringproducts[].main_pairobjecticon (miniatura de 400 px), detailed (original) e icons.500x500. Ausente quando o produto não tem imagem.paramsobjectpage, items_per_page e total_items (todos os produtos que atendem aos filtros).filtersarrayget_filters. Cada item: filter_id, filter (nome), filter_style (checkbox, color ou slider) e variants (mapa de variant_id para {variant_id, variant, color}).Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Authorization presente mas não é uma ekey válida | {"error":"unauthorized"} |
| 404 | Produto inexistente ou inativo (ficha) | {"error":"product not found"} |
| 404 | Categoria inexistente (/categories/{id}/sra_products) | {"error":"category not found"} |
| 500 | Falha ao listar | {"error":"failed to list products","detail":"..."} |