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

Busca Meilisearch

Busca de produtos direto no índice Meilisearch da loja, para lojas que o usam, com o mesmo propósito da busca principal e outro formato de resposta.

Algumas lojas mantêm, além do catálogo, um índice no mecanismo de busca Meilisearch. Esta rota consulta esse índice. Ela existe para vitrines que já foram escritas contra ele; para uma integração nova, use Buscar produtos, que funciona em todas as lojas e é a única que devolve as facetas de características.

Se a loja não usa Meilisearch, a rota responde 503 e a vitrine deve cair para /search. Antes de chamar, você pode ler GET /api/v1/storefront/settings/search: o campo semantic_search_enabled indica qual rota a loja espera que a página de resultados use.

Diferenças em relação a /search: os filtros se chamam category e vendor (não category_id e vendor_id), o formato do produto é o do índice (com vendor_name, category_name, brand), as facetas vêm em facets com value/label/count e não há did_you_mean, redirect_url nem registro de busca. Fixar e rebaixar produtos (vitrine regrada) valem nas duas rotas. Preço, avaliação e estoque seguem as mesmas regras de visibilidade: sem estoque, a rota esconde também produtos sem controle de estoque que tenham quantidade zero, o que /search não faz.

GET/api/v1/storefront/search/meiliPública

Buscar produtos no índice Meilisearch

Parâmetros de consulta

qstring
Texto buscado.
categoryuuid
Filtra por categoria.
vendoruuid
Filtra por seller (lojista).
brandstring
Filtra por nome de marca.
min_priceinteger
Preço mínimo em centavos.
max_priceinteger
Preço máximo em centavos.
min_ratingnumber
Nota mínima, de 0 a 5.
in_stockboolean
true1
Só produtos com estoque. A loja pode forçar este filtro quando esconde produtos sem estoque.
sortstring
price_ascprice_descnewestratingsalesname_ascname_desc
Ordenação. Sem ela, vale a relevância do mecanismo.
pageintegerpadrão: 1
Página, a partir de 1.
per_pageintegerpadrão: 20
Itens por página.

Exemplo de requisição

bash
curl "$BASE_URL/api/v1/storefront/search/meili?q=camiseta&sort=price_asc&per_page=12"

Resposta

200Resultados
json
{
  "products": [
    {
      "id": "db033935-75ea-4b6f-abbb-13d0fcd6386d",
      "name": "Camiseta Lite Verde 00146",
      "slug": "camiseta-lite-verde-00146-146",
      "sku": "CAM-00146",
      "price": 39990,
      "list_price": 0,
      "category_id": "8fcaf422-1631-4282-b503-85cc57380649",
      "category_name": "Camisetas",
      "vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
      "vendor_name": "Loja Seller Teste",
      "brand": "Eco",
      "image_url": "/uploads/dfe2555e-bfd0-41a8-9fa1-9586999f3798/product/db033935-75ea-4b6f-abbb-13d0fcd6386d/foto.png",
      "status": "A",
      "in_stock": true,
      "rating": 4.9,
      "sales_count": 12,
      "tags": [],
      "created_at": 1791687385
    }
  ],
  "total": 158,
  "page": 1,
  "per_page": 12,
  "total_pages": 14,
  "query": "camiseta",
  "processing_time_ms": 3,
  "facets": {
    "categories": [{ "value": "8fcaf422-1631-4282-b503-85cc57380649", "label": "Camisetas", "count": 158 }],
    "vendors": [{ "value": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36", "label": "Loja Seller Teste", "count": 158 }],
    "brands": [{ "value": "Eco", "label": "Eco", "count": 1 }]
  }
}

Este exemplo mostra a forma da resposta; a loja de teste usada na documentação não tem Meilisearch, então os valores são ilustrativos.

Campos da resposta

productsarray
Documentos do índice. Campos principais abaixo; o documento também traz name_pt_br, description, category_ids, approval_status e vendor_active.
products[].iduuid
Id do produto.
products[].namestring
Nome.
products[].slugstring
Trecho do endereço da página do produto.
products[].skustring
SKU 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. 0 quando não existe (aqui o campo é sempre numérico).
products[].category_iduuid
Categoria principal.
products[].category_namestring
Nome da categoria.
products[].vendor_iduuid
Seller dono da oferta.
products[].vendor_namestring
Nome do seller.
products[].brandstring
Marca.
products[].image_urlstring
Caminho da imagem principal.
products[].statusstring
A (ativo).
products[].in_stockboolean
true quando a quantidade em estoque é maior que zero.
products[].ratingnumber
Nota média.
products[].sales_countinteger
Total vendido, usado na ordenação sales.
products[].tagsarray
Etiquetas do produto.
products[].created_atinteger
Data de criação em Unix timestamp (segundos).
totalinteger
Total de produtos que casam.
pageinteger
Página devolvida.
per_pageinteger
Itens por página.
total_pagesinteger
Total de páginas.
querystring
Texto buscado.
processing_time_msinteger
Tempo gasto pelo mecanismo, em milissegundos.
facetsobject
Contagens {value, label, count} em categories, vendors e brands. label é o nome para exibir.

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"}
500O mecanismo recusou a consulta{"error":"meilisearch query failed","detail":"..."}
503A loja não usa Meilisearch{"error":"search service unavailable","detail":"meilisearch not configured"}
O 503 é esperado em muitas lojas

Trate 503 como "recurso não disponível nesta loja" e use Buscar produtos. Não tente a rota de novo.

Veja também

  • Buscar produtos
  • Sugestões
Anterior
Busca por imagem
Próxima
Sugestões
Nesta página
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também