Busca por termo

Este endpoint necessita da correta implementação do tracking de cliques de usuário. Caso ainda não tenha implementado o tracking corretamente, acesse /clicks

A busca é utilizada para encontrar produtos através de uma consulta por termo ou id de produto. A busca personalizada utiliza diversas informações de sua loja, como dados de navegação e consumo para encontrar os produtos mais adequados à consulta de cada usuário. Esta request realiza uma consulta por um termo, id de produto ou conjunto de ids de produtos, retornando os produtos e features complementares resultantes.

Como fazer a consulta?

Para realizar uma consulta, você pode prover um termo para a consulta ou mesmo prover um ou vários IDs de produto:

By Term
curl -v -G "https://api.linximpulse.com/engage/search/v3/search" \
  -d apiKey="<my-apikey>" \
  -d secretKey="<my-secret-key>" \
  -d terms="celular+samsung"
By IDs
curl -v -G "https://api.linximpulse.com/engage/search/v3/search" \
  -d apiKey="<my-apikey>" \
  -d secretKey="<my-secret-key>" \
  -d pids="123458" \
  -d pids="987753"

Para filtrar as consultas, realizar ações de paginação ou outras interações com a API, fornecemos links prontos, basta utilizá-los, incluindo sua secretKey.

Padrão de Resposta

Os produtos retornados estarão no campo products. O formato/conteúdo de cada produto no products está listado abaixo na seção Parameters na explicação do campo productFormat. É importante notar que alguns valores retornados no products são opcionais, ou seja, nem sempre serão retornados, por exemplo o campo customBusiness.

Query Params

terms
stringrequired

Termos da consulta que deseja-se realizar.


apiKey
stringrequired

ID interno de identificação da sua loja.

Não sabe qual a apiKey da sua loja? Solicite ao responsável técnico de integração enviando um email para suporteimpulse@linx.com.br


secretKey
stringrequired

Chave de acesso para autenticar a requisição. Pode ser substituída pelo parâmetro origin quando a requisição é feita via frontend para não expor a chave.

Não sabe qual a secretKey da sua loja? Solicite ao responsável técnico de integração enviando um email para suporteimpulse@linx.com.br


deviceId
stringrequired

Identificador único do dispositivo. Todas as requisições feitas a partir do mesmo dispositivo devem possuir o mesmo deviceId.


source
stringrequired

Origem do dispositivo utilizado. Os tipos padrões são:
  • desktop
  • mobile
  • app
Novos canais podem ser criados no Dashboard da Busca, caso os canais padrões não atendam a necessidade.
Caso um valor inválido seja informado, irá impactar o registro de métricas de desempenho e KPIs da solução de busca.


origin
string

Define a URL de origem da requisição. Pode ser usada no lugar da secretKey para autenticar a requisição.


salesChannel
string

ID de canais de vendas. Para consultar mais de um canal, insira um campo adicional.


hide
string

Desativa retorno de campos na resposta. Por padrão todos os campos são ativos. Para incluir mais de uma opção, insira um campo adicional.Valores permitidos:
  • products
  • quickFilters
  • banners
  • adSearches
  • suggestions
  • filters


productFormat
string default: relevance

Define o formato de resposta dos produtos. Por padrão todos os campos são ativos.Valores permitidos:
  • onlyIds
  • complete
  • compact


userId
string

Id do usuário. Deve ser o mesmo identificador utilizado no site. (Quando o usuário estiver logado)


pids
string[]

IDs de produtos a serem consultados, devem ser IDs válidos da loja. Para consultar mais de um ID, insira um campo adicional.


page
number default: 1

Número da página. Em casos onde o resultado possui muitos produtos, estes são segmentados por páginas. Caso esse parâmetro não seja enviado, os produtos retornados serão referentes à primeira página.


resultsPerPage
number default: 20

Número de produtos retornados por página.


sortBy
string default: relevance

Método de ordenação. Os métodos de ordenação suportados são:
  • relevance: Relevância;
  • pid: Id de produto
  • ascPrice: Menor preço;
  • descPrice: Maior preço;
  • descDate: Novidades;
  • ascSold: Menor venda;
  • descSold: Maior venda;
  • ascReview: Menor avaliação;
  • descReview: Maior avaliação;
  • descDiscount: Maiores descontos.


showOnlyAvailable
boolean default: false

Define se o resultado de busca vai ser composto apenas por produtos com status disponível.


p
string default: false

Define o termo digitado pelo usuário no autocomplete. Esse parâmetro já vem no retorno da api de autocompletes e deve ser mantido quando a requisição de search tem a sua origem no autocomplete.


allowRedirect
boolean default: true

Permite ou bloqueia o redirecionamento de consultas. Caso seja passado "false", a API retornará resultados para o termo buscado mesmo se há cadastro de redirecionamentos no Dashboard para este termo.


filter
string[]

Define qual filtro será aplicado. Pode ser aplicado filtro discreto ou contínuo.
  • d:::: filtro discreto que retorna os produtos que possuem atributo com valor
  • c:::::: filtro contínuo que retorna os produtos que possuem atributo do tipo com valor entre e e que a unidade de medida do valor seja


Typescript
const fetch = require('node-fetch');

const url = 'https://api.linximpulse.com/engage/search/v3/search?page=1&resultsPerPage=20&sortBy=relevance&productFormat=complete&showOnlyAvailable=false&allowRedirect=true';
const options = {method: 'GET', headers: {accept: 'application/json'}};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error('error:' + err));
curl
curl -v -G "https://api.linximpulse.com/engage/search/v3/search" \
  -d apiKey="<my-apikey>" \
  -d secretKey="<my-secret-key>" \
  -d terms="celular+samsung"

Full Response
{
  "requestId": "35f5794c-be0e-48fd-bb56-3469895491b1",
  "searchId": "35f5794c-be0e-48fd-bb56-3469895491b1",
  "size": 10,
  "queries": {
    "original": "calca jeans",
    "normalized": "calca jeans",
    "processed": "calca",
    "queryType": "aproximated"
  },
  "pagination": {
    "first": "/engage/search/v3/search?apikey=<my-store>&terms=calca+jeans&page=1",
    "last": "/engage/search/v3/search?apikey=<my-store>&terms=calca+jeans&page=1"
  },
  "filters": [
    {
      "id": 2,
      "attribute": "Preço",
      "type": "continuous",
      "fType": 2,
      "values": [
        {
          "size": 1,
          "unityId": 3,
          "unN": "rs",
          "min": {
            "value": 119.92,
            "unity": "rs",
            "minN": 119.92
          },
          "max": {
            "value": 119.92,
            "unity": "rs",
            "maxN": 119.92
          },
          "applyLink": "/engage/search/v3/search?apikey=<my-store>&terms=calca+jeans&filter=c:2:3:119.92:119.92"
        }
      ]
    },
    {
      "id": 27871,
      "attribute": "Marca",
      "type": "discrete",
      "values": [
        {
          "label": "MyBrand",
          "size": 4,
          "id": 28012,
          "applyLink": "/engage/search/v3/search?apikey=<my-store>&terms=calca+jeans&filter=d:27871:28012"
        }
      ]
    }
  ],
  "products": [
    {
      "id": "2674",
      "collectInfo": {
        "productId": "2674",
        "skuList": []
      },
      "clickUrl": "/engage/search/v3/clicks?apikey=<my-store>&trackingId=<tracking-id>",
      "name": "Meia Kendall 18-21 - Calça Gg Mel Sem Ponteira",
      "price": 119.93,
      "oldPrice": 139,
      "url": "https://www.<my-store>.com.br/meia-kendall-18-21---calca-gg-mel-sem-ponteira/p",
      "images": {
        "default": "//<my-store>.com.br/files/ids/705624.jpg"
      },
      "installment": {
        "count": 3,
        "price": 39.97
      },
      "status": "AVAILABLE",
      "categories": [
        {
          "id": "Saúde e Bem Estar",
          "name": "Saúde e Bem Estar",
          "parents": [],
          "used": true
        }
      ],
      "tags": [
        {
          "id": "saude_e_bem_estar",
          "name": "Saúde e Bem Estar",
          "parents": []
        }
      ],
      "specs": {},
      "created": "2022-08-09 16:39:03",
      "brand": null,
      "skus": [
        {
          "sku": "2810",
          "specs": {},
          "properties": {
            "name": "Meia 18-21",
            "url": "https://www.<my-store>.com.br/meia-18-21?idsku=2810",
            "images": {
              "default": "//<my-store>.com.br/files/ids/705624.jpg"
            },
            "status": "available",
            "price": 119.93,
            "installment": {
              "count": 3,
              "price": 39.97
            },
            "oldPrice": 139,
            "stock": 3,
            "eanCode": "7896191227646",
            "details": {
              "ratingCount": 0,
              "ratingValue": 0
            }
          }
        }
      ],
      "details": {
        "ratingCount": [0],
        "ratingValue": [0]
      },
      "description": "Product Description"
    }
  ],
  "sort": [
    {
      "label": "Relevância",
      "name": "relevance",
      "type": "default",
      "applyLink": "/engage/search/v3/search?apikey=<my-store>&terms=calca+jeans&sortby=relevance"
    },
    {
      "label": "Melhores avaliações",
      "name": "descreview",
      "type": "default",
      "applyLink": "/engage/search/v3/search?apikey=<my-store>&terms=calca+jeans&sortby=descreview"
    },
    {
      "label": "Menor preço",
      "name": "ascprice",
      "type": "default",
      "applyLink": "/engage/search/v3/search?apikey=<my-store>&terms=calca+jeans&sortby=ascprice"
    }
  ]
}