Vitrine de descobertas

Feed de produtos com scroll infinito de recomendações. Utiliza um algoritmo especial que combina estratégias para promover descoberta por meio de produtos tendência, novidades, populares e outros, somado a produtos relacionados aos interesses do consumidor com base no histórico de visitas. A personalização do feed acontece em tempo real, conforme o consumidor interage com as recomendações, assim como é visto nas redes sociais.

É recomendado adicionar a vitrine Discover em qualquer página que não exija contexto (home, other e landing_page).

Parte do conteúdo pode conter personalizações relacionadas à interações do usuário no site (visualizações, compras, produtos deixados no carrinho, etc). Porém, é necessário que um identificador de usuário seja fornecido na requisição (deviceId caso o usuário esteja deslogado e deviceId+userId caso o usuário esteja logado).

Query Params

apiKey
stringrequired

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


secretKey
stringrequired

Utilizado para validar autenticação, caso o modelo utilizado seja apiKey+secretKey. Neste caso, será um parâmetro obrigatório. Não sabe qual a secretKey da sua loja? Solicite ao responsável técnico de integração enviando um email para atendimento@linximpulse.com.br


page
stringrequired

Tipo da página (home, product, category, subcategory, cart, search, emptysearch, checkout, transaction, userprofile e not_found).


source
stringrequired

Origem do dispositivo utilizado. Os tipos suportados são:
  • desktop
  • mobile
  • app


deviceId
stringrequired

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


userId
string

Identificador do usuário. Deve ser o mesmo identificador utilizado no site ou um e-mail, caso userIdType esteja configurado como "email".


userIdType
string default: userId

Tipo de identificador de usuário. Pode ser "userId" ou "email".


productFormat
string default: compact

Define o formato de resposta dos produtos.Valores permitidos:
  • onlyIds
  • complete
  • compact


Atenção: Caso a coleta de eventos seja realizada pelos nossos scripts, através do meta. É necessário que seja utilizado o campo correspondente de deviceId usado pela api de vitrines para identificação de usuários anônimos. Este campo é disponibilizado pelos scripts de coleta no domínio do lojista, no cookie chaordic_browserId.

Headers

Accept-Encoding
string default: gzip,deflate

Permite que o servidor envie a resposta em formato comprimido. Melhorando o tempo de download e reduzindo o volume de dados trafegados.


Tracking de eventos

Eventos de interação com o Discover

Cada produto recomendado pelo Discover contém um campo chamado clickUrl.

Este campo fornece uma url que deverá ser usada para registrar todos os eventos de interações dos usuários da aplicação com os produtos recomendados. É por meio destes registros que geramos métricas de performance do Discover, além de melhorar as estratégias para acertar em cheio cada recomendação ;)

É recomendado que este evento seja disparado somente depois que o usuário acessar a página do produto, evitando assim que o browser cancele a requisição caso a página de produto seja carregada antes que o disparo tenha sido concluído.

É necessário concatenar "https:" na url do clickUrl.

JSON
  {
    "id": "12345",
    "status": "available",
    "name": "sample-product-A",
    "price": 99.9,
    "oldPrice": 109.9,
    "installment": {
      "count": 2,
      "price": 29.50
    },
    "clickUrl": "//recs.chaordicsystems.com/v0/discover/click?clickId=CgpjYXNhc2JhaGlhIiRkYzVjMDBlOC0zODUzLTQyYzgtOTcyNS0wZW",
    "images": {
        "default": "sample-v5.com.br/img/sample-product-a.img"
      }
  }

Eventos de visualização do Discover

Cada lista de produtos recomendados pelo Discover contém um campo chamado viewUrl

O viewUrl fornece uma url que pode ser usada para registrar o evento de visualização dos produtos do Discover. Esse evento deve ser disparado sempre que exibir mais produtos do Discover(scroll).

Com este evento implementado, temos um feedback sobre quais produtos fornecidos pelo Discover foram realmente visualizadas pelos usuários. Isso ajuda nosso sistema a melhorar a qualidade das recomendações feitas ao longo do tempo.

É necessário concatenar "https:" na url do viewUrl.

JSON
  {
    "next": "//recs.chaordicsystems.com/v0/discover?h=CgpjYXNhc2JhaGlhIiRkYzVjMDBlOC0zODUzLTQyYzgtOTcyNS0wZW",
    "products": [
      {
        "id": "product-A",
        "name": "sample-product-A",
        // ...
      },
      // ...
    ],
    "viewUrl": "//recs.chaordicsystems.com/v0/discover/view?viewId=CgpjYXNhc2JhaGlhIiRkYzVjMDBlOC0zODUzLTQyYzgtOTcyNS0wZW"
  }

Request

CURL
curl -v -G "https://recs.chaordicsystems.com/v0/discover" \
  -d apiKey="<my-api-key>" \
  -d secretKey="<my-secret-key>" \
  -d source="<source>" \
  -d page="<page>" \
  -d deviceId="<device-id>"

Product Formats

compact
  {
  "id": "12345",
  "status": "available",
  "name": "sample-product-A",
  "price": 99.9,
  "oldPrice": 109.9,
  "installment": {
    "count": 2,
    "price": 50.00
  },
  "clickUrl": "//recs.chaordicsystems.com/v0/discover/click?clickId=<click-id>",
  "url": "sample.com.br/sample-product-a.html",
  "images": {
    "default": "sample.com.br/img/sample-product-a.img"
  }
}
complete
{
  "id": "12345",
  "status": "available",
  "name": "sample-product-A",
  "price": 99.9,
  "oldPrice": 109.9,
  "installment": {
    "count": 2,
    "price": 50.00
  },
  "description": "A description about sample-product-A.",
  "url": "sample.com.br/sample-product-a.html",
  "categories": [
    {
      "id": "sample_category_0003",
      "name": "sample_category_0003",
      "parents": [
        "sample_category_0002"
      ]
    },
    {
      "id": "sample_category_0002",
      "name": "sample_category_0002",
      "parents": [
        "sample_category_0001"
      ]
    },
    {
      "id": "sample_category_0001",
      "name": "sample_category_0001",
      "parents": null
    }
  ],
  "tags": [
    {
      "id": "sample_tag_0001",
      "name": "sample_tag_0001",
      "parents": null
    },
    {
      "id": "sample_tag_0002",
      "name": "sample_tag_0002",
      "parents": null
    },
    {
      "id": "sample_tag_0003",
      "name": "sample_tag_0003",
      "parents": null
    }
  ],
  "images": {
    "default": "sample.com.br/img/sample-product-a.img"
  },
  "details": {
    "altura": "95 cm",
    "largura": "221 cm",
    "profundidade": "101 cm",
    "peso": "55,000 kg"
  },
  "skus": [
    {
      "images": {
        "default": "sample.com.br/product-sku-image"
      },
      "price": 74,
      "oldPrice": 74,
      "installment": {
        "count": 3,
        "price": 24.66
      },
      "url": "sample.com.br/product-sku-link",
      "status": "unavailable",
      "sku": "0014542",
      "specs": {
        "color": "branco"
      }
    },
    {
      "images": {
        "default": "sample.com.br/product-sku-image"
      },
      "price": 74,
      "oldPrice": 74,
      "installment": {
        "count": 3,
        "price": 24.66
      },
      "url": "sample.com.br/product-sku-link",
      "status": "unavailable",
      "sku": "0014542",
      "specs": {
        "color": "preto"
      }
    }
  ],
  "clickUrl": "//recs.chaordicsystems.com/v0/discover/click?clickId=<click-id>"
}
onlyIds
{
  "id": "12345",
  "clickUrl": "//recs.chaordicsystems.com/v0/discover/click?clickId=<click-id>"
}

Responses

JSON
  {
    "next": "//recs.chaordicsystems.com/v0/discover?h=<next-page-hash>",
    "hasMoreProducts": true,
    "products": [
      {
        "id": "product-A",
        "name": "sample-product-A",
        //...
      },
      {
        "id": "product-B",
        "name": "sample-product-B",
        //...
      },
      {
        "id": "product-C",
        "name": "sample-product-C",
        //...
      },
      //...
    ],
    "title": "Discover Title",
    "slot": {
      "div": "onsite-discover",
      "maxInteraction": 10,
      "timeToWait": 5
    },
    "automaticPagination": {
      "useAutomaticCalc": true,
      "multiplierSizeCard": 1.2,
      "marginRerender": 600,
      "max": -1,
      "enabled": true
    },
    "viewUrl": "//recs.chaordicsystems.com/v0/discover/view?viewId=<view-id>"
  }