VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Busca

Busca ao vivo

Devolve, em uma única chamada, produtos, categorias, marcas e sellers que casam com o texto que o cliente está digitando.

Use esta rota para o menu suspenso que abre sob o campo de busca enquanto o cliente digita. Uma chamada devolve quatro grupos (produtos, categorias, marcas e sellers) mais os produtos agrupados por categoria, tudo compacto, sem paginação e sem facetas. Para a página completa de resultados use Buscar produtos.

O lojista decide, no painel, quais grupos aparecem, quantos itens cada um tem (padrão: 8 produtos e 5 de cada outro grupo), o mínimo de caracteres (padrão 2) e se preço e imagem são mostrados. Se o lojista desligou a busca ao vivo, a rota responde 200 com tudo vazio. A vitrine pode ler essas escolhas em GET /api/v1/storefront/settings/search e pular a chamada quando a busca ao vivo está desligada.

GET/api/v1/storefront/live-searchPública

Busca ao vivo (typeahead)

Cabeçalhos

Authorizationstring
Opcional. Com um cliente logado, price mostra o preço da faixa do grupo dele (quando menor que o preço base) e sellers restritos a um grupo aparecem só para quem pertence a ele.
Cookiestring
Opcional. O cookie venddor_language (por exemplo en) escolhe o idioma dos nomes de produtos e categorias, quando a loja tem mais de um idioma habilitado.

Parâmetros de consulta

qstring
Texto digitado. Abaixo do mínimo de caracteres da loja (padrão 2) a resposta vem vazia.

Exemplo de requisição

bash
curl "$BASE_URL/api/v1/storefront/live-search?q=camiseta"

Resposta

200Resultados
json
{
  "query": "camiseta",
  "products": [
    {
      "id": "db033935-75ea-4b6f-abbb-13d0fcd6386d",
      "name": "Camiseta Lite Verde 00146",
      "slug": "camiseta-lite-verde-00146-146",
      "price": 39990,
      "image_url": "/uploads/dfe2555e-bfd0-41a8-9fa1-9586999f3798/product/db033935-75ea-4b6f-abbb-13d0fcd6386d/foto.png",
      "category_id": "8fcaf422-1631-4282-b503-85cc57380649",
      "category_name": "Camisetas",
      "out_of_stock_action": "N",
      "zero_price_action": "P",
      "quantity_step": 1
    }
  ],
  "categories": [
    {
      "id": "8fcaf422-1631-4282-b503-85cc57380649",
      "name": "Camisetas",
      "slug": "camisetas",
      "product_count": 159,
      "parent_name": "Roupas"
    }
  ],
  "brands": [],
  "vendors": [],
  "products_by_category": [],
  "products_total": 158,
  "search_event_id": "a74eabe4-b08f-4b67-8145-254b1f7fe174"
}

Campos da resposta

querystring
O texto recebido.
productsarray
Produtos que casam, limitados ao máximo da loja.
products[].iduuid
Id do produto.
products[].namestring
Nome, no idioma pedido.
products[].slugstring
Trecho do endereço da página do produto.
products[].priceinteger
Preço em centavos. 0 com price_redacted: true para visitante em loja que esconde preço.
products[].list_priceinteger
Preço "de" em centavos, quando existe.
products[].price_redactedboolean
true quando o preço foi escondido do visitante.
products[].image_urlstring
Caminho da imagem. Ausente quando a loja desligou imagens na busca ao vivo.
products[].category_iduuid
Categoria do produto.
products[].category_namestring
Nome da categoria.
products[].is_out_of_stockboolean
true quando está sem estoque. Ausente quando há estoque.
products[].out_of_stock_actionstring
Regra da loja para produto sem estoque.
products[].zero_price_actionstring
Regra da loja para produto sem preço.
products[].quantity_stepnumber
Múltiplo de compra (atacado).
products[].min_quantitynumber
Quantidade mínima de compra (atacado).
products[].sell_unitstring
Unidade de venda (atacado).
categoriesarray
Categorias que casam: id, name, slug, product_count e parent_name (categoria pai, quando há).
brandsarray
Marcas que casam, cada uma com id, name e product_count.
vendorsarray
Sellers que casam: id, name, slug e logo_url.
products_by_categoryarray
Quando a loja ativa "produtos sob as categorias": grupos {category_id, category_name, products[]} com alguns produtos de cada categoria encontrada.
products_totalinteger
Quantos produtos casam no total, o mesmo número que Buscar produtos dá em total para o mesmo texto. Use para o link "ver todos os N resultados".
search_event_iduuid
Id do evento da busca. Reenvie em Registrar cliques quando o cliente clicar em um item.
redirect_urlstring
Endereço configurado pelo lojista para este termo exato. Mostre como primeiro item do menu.
semantic_fallbackboolean
true quando nada casou com o texto e products são sugestões por semelhança de sentido (por exemplo "chapéu" sugerindo "boné"). Rotule como "talvez você goste". Nesse caso products_total é 0.

Os grupos sem resultado podem vir como [] ou como null (por exemplo quando o texto é curto demais). Trate os dois como vazio.

Erros

StatusQuandoCorpo
401A loja exige login para navegar e a chamada não tem token{"error":"shopping_requires_login","message":"this storefront requires login to browse"}
500Falha ao consultar o catálogo{"error":"live search failed","detail":"..."}
Espere o cliente parar de digitar

Dispare a chamada 200 a 300 ms depois da última tecla e cancele a anterior se ela ainda não voltou. A resposta é guardada em cache por 5 minutos (Cache-Control), então repetir o mesmo texto é barato.

Cada chamada vira uma busca no relatório

A plataforma grava um evento por chamada (mesmo as abaixo do mínimo de caracteres). Por isso o search_event_id existe. Para o relatório não inflar, só chame com o texto que o cliente parou de digitar.

Veja também

  • Sugestões
  • Buscar produtos
  • Registrar cliques
Anterior
Sugestões
Próxima
Termos em alta
Nesta página
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também