{"metadata":{"image":[],"title":"","description":""},"api":{"url":"/hotsites","auth":"required","examples":{"codes":[]},"method":"get","results":{"codes":[{"name":"","code":"HTTP/1.1 200 OK\n\n{\n    \"requestId\": \"02aa0fd9-5961-4862-bbad-0288de8e7e43\",\n    \"searchId\": \"02aa0fd9-5961-4862-bbad-0288de8e7e43\",\n    \"filters\": [\n        {\n            \"id\": 1,\n            \"attribute\": \"Categoria\",\n            \"type\": \"discrete\",\n            \"fType\": 1,\n            \"values\": [\n                {\n                    \"label\": \"DIY\",\n                    \"size\": 1,\n                    \"idO\": \"DIY\",\n                    \"id\": 8,\n                    \"applyLink\": \"/engage/search/v3/hotsites?apikey=apikey&name=teste&filter=d:1:8\"\n                }\n            ]\n        },\n        {\n            \"id\": 2,\n            \"attribute\": \"Preço\",\n            \"type\": \"continuous\",\n            \"fType\": 2,\n            \"values\": [\n                {\n                    \"size\": 1,\n                    \"unityId\": 3,\n                    \"unN\": \"rs\",\n                    \"min\": {\n                        \"value\": 45,\n                        \"unity\": \"rs\",\n                        \"minN\": 45\n                    },\n                    \"max\": {\n                        \"value\": 45,\n                        \"unity\": \"rs\",\n                        \"maxN\": 45\n                    },\n                    \"applyLink\": \"/engage/search/v3/hotsites?apikey=apikey&name=teste&filter=c:2:3:45:45\"\n                }\n            ]\n        },\n        {\n            \"id\": 42,\n            \"attribute\": \"Brand\",\n            \"type\": \"discrete\",\n            \"values\": [\n                {\n                    \"label\": \"Canecas da gabi\",\n                    \"size\": 1,\n                    \"id\": 48,\n                    \"applyLink\": \"/engage/search/v3/hotsites?apikey=apikey&name=teste&filter=d:42:48\"\n                }\n            ]\n        },\n        {\n            \"id\": 10,\n            \"attribute\": \"Marca\",\n            \"type\": \"discrete\",\n            \"values\": [\n                {\n                    \"label\": \"Canecas da gabi\",\n                    \"size\": 1,\n                    \"id\": 20,\n                    \"applyLink\": \"/engage/search/v3/hotsites?apikey=apikey&name=teste&filter=d:10:20\"\n                }\n            ]\n        }\n    ],\n    \"size\": 1,\n    \"pagination\": {\n        \"first\": \"/engage/search/v3/hotsites?apikey=apikey&name=teste&page=1\",\n        \"last\": \"/engage/search/v3/hotsites?apikey=apikey&name=teste&page=1\"\n    },\n    \"products\": [\n        {\n            \"id\": \"1212\",\n            \"name\": \"Caneca La Vie En Rose\",\n            \"price\": 45,\n            \"oldPrice\": 45,\n            \"url\": \"//apikey.com.br/canecas-da-mari/prd/caneca-la-vie-en-rose\",\n            \"images\": {\n                \"default\": \"//www.apikey.com.br/imagens/1562859231011.jpg\"\n            },\n            \"installment\": [],\n            \"status\": \"AVAILABLE\",\n            \"clickUrl\": \"/engage/search/v3/clicks?apikey=apikey&trackingId=eyJzZWFyY2hJZCI6ImU4OTI4Y2FhLWQ5OTItNDI2Yy1iNDA5LTU5ZGVlMGFjNzhmNiIsIm9yaWdpbiI6ImF1dG9jb21wbGV0ZSIsInByb2R1Y3QiOnsicmFua2luZyI6MiwicGlkIjoiMTIxNDciLCJza3VzIjpbXX19\",\n            \"collectInfo\": {\n                \"skuList\": [],\n                \"productId\": \"1212\"\n            },\n            \"cId\": \"DIY\",\n            \"iId\": 380,\n            \"skus\": [\n                {\n                    \"sku\": \"1212-1\",\n                    \"specs\": {},\n                    \"properties\": {\n                        \"oldPrice\": 45,\n                        \"status\": \"available\",\n                        \"images\": {\n                            \"default\": \"//www.apikey.com.br/imagens/1562859231128.jpg\"\n                        },\n                        \"price\": 45,\n                        \"url\": \"//apikey.com.br/canecas-da-mari/prd/caneca-la-vie-en-rose\"\n                    }\n                }\n            ],\n            \"categories\": [\n                {\n                    \"id\": \"DIY\",\n                    \"name\": \"DIY\",\n                    \"parents\": [],\n                    \"used\": true\n                }\n            ],\n            \"customBusiness\": {\n                 \"search\": {\n                    \"ads\": {\n                       \"boost\": true\n                    }\n                 },\n                 \"ads\": {\n                    \"clickLink\": \"https://api-ads.percycle.com/click/impulse/123?placement=search&chaordicShowcaseName=search&chaordicShowcaseId=b3fcd192-586b-4284-a222-4103676fc7c4&nm_ads_type=boost\",\n                    \"pageViewLink\": \"https://api-ads.percycle.com/page-view/impulse/123?placement=search&chaordicShowcaseName=search&chaordicShowcaseId=b3fcd192-586b-4284-a222-4103676fc7c4\",\n                    \"view\": \"https://api-ads.percycle.com/view/impulse/123?placement=search&chaordicShowcaseName=search&chaordicShowcaseId=b3fcd192-586b-4284-a222-4103676fc7c4\"\n                 }\n            },\n            \"tags\": [],\n            \"specs\": {},\n            \"created\": \"2019-07-12 02:10:04\",\n            \"brand\": \"Canecas da Mari\",\n            \"description\": \"Caneca na cor rosa bebê, para todos que veem a vida cor de rosa!\",\n            \"details\": {\n                \"brand\": [\n                    \"Canecas da Mari\"\n                ],\n                \"categoryName\": [\n                    \"DIY\"\n                ]\n            }\n        }\n    ],\n    \"hotsite\": {\n        \"title\": \"\",\n        \"description\": \"\",\n        \"sortRule\": \"automatic\"\n    },\n    \"queries\": {\n        \"original\": \"teste\",\n        \"normalized\": \"teste\",\n        \"processed\": \"teste\",\n        \"queryType\": \"found\"\n    }\n}","language":"json","status":200},{"name":"","code":"HTTP/1.1 404 Not Found\n{\n \"message\": \"Not found\"\n}","language":"json","status":404},{"status":401,"language":"json","code":"HTTP/1.1 401 Unauthorized\n{\n    \"code\": 1008,\n    \"message\": \"Invalid Secret Key\"\n}"},{"status":400,"language":"json","code":"HTTP/1.1 400 Bad Request\n{\n \"message\": \"Invalid request: missing parameters\"\n}"},{"status":500,"language":"json","code":"HTTP/1.1 500 Internal Server Error\n{\n \"message\": \"Error: Internal Server Error\"\n}"}]},"settings":"58bd78f5816ab10f00d45fd6","params":[{"name":"apikey","type":"string","default":"","desc":"Não sabe qual a apiKey da sua loja? Solicite ao responsável técnico de integração enviando um email para atendimento:::at:::chaordic.com.br","required":true,"in":"query","ref":"","_id":"58bd9ff8b52dbe2500b3d620"},{"name":"secretkey","type":"string","default":"","desc":"Não sabe qual a secretKey da sua loja? Solicite ao responsável técnico de integração enviando um email para [email protected]","required":true,"in":"query","ref":"","_id":"592edd06ff3b470039985b7c"},{"name":"name","type":"string","default":"","desc":"Nome do hotsite","required":true,"in":"query","ref":"","_id":"58bd9ff8b52dbe2500b3d61f"},{"name":"page","type":"int","default":"1","desc":"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.","required":false,"in":"query","ref":"","_id":"58bd9ff8b52dbe2500b3d61e"},{"name":"resultsPerPage","type":"int","default":"20","desc":"Número de produtos retornados por página.","required":false,"in":"query","ref":"","_id":"58bd9ff8b52dbe2500b3d61d"},{"name":"sortBy","type":"string","default":"relevance","desc":"Método de ordenação. Os métodos de ordenação suportados são: <ul> <li><b>relevance</b>: Relevância; </li> <li><b>pid</b>: Id de produto </li> <li><b>ascPrice</b>: Menor preço;</li> <li><b>descPrice</b>: Maior preço;</li> <li><b>descDate</b>: Lançamentos;</li> <li><b>ascSold</b>: Menor venda;</li> <li><b>descSold</b>: Maior venda;</li> <li><b>ascReview</b>: Menor avaliação;</li> <li><b>descReview</b>: Maior avaliação;</li> <li><b>descDiscount</b>: Maiores descontos.</li> </ul>","required":false,"in":"query","ref":"","_id":"58bda01fb8497c1b00224a1e"},{"name":"clid","type":"string","default":"","desc":"Lista de IDs de produtos em que o usuário clicou. Ativa a personalização da lista de resultados. Para enviar mais de um ID, insira um campo adicional.","required":false,"in":"query","ref":"","_id":"5aecffcb0c435b00035862f2"},{"name":"hide","type":"string","default":"","desc":"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. <br> Valores permitidos: <li>quickFilters</li> <li>banners</li> <li>adSearches</li> <li>suggestions</li> <li>filters</li>","required":false,"in":"query","ref":"","_id":"58bda04fb8497c1b00224a20"},{"name":"productFormat","type":"string","default":"complete","desc":"Define o formato de resposta dos produtos. Por padrão todos os campos são ativos.  <ul> <li><b>onlyIds</b>: retorna apenas id de produto</li>    <ul>   <li><b>id</b>: id do produto</li>   </ul> <li><b>complete</b>: retorna todos os campos   <ul>   <li><b>id</b>: id do produto</li>   <li><b>status</b>: status do produto</li>   <li><b>name</b>: nome/título do produto</li>   <li><b>price</b>: preço de venda do produto</li>   <li><b>oldPrice</b>: preço original do produto</li>   <li><b>description</b>: descrição do produto</li>   <li><b>url</b>: url do produto</li>   <li><b>images</b>: imagens do produto</li>   <li><b>installment</b>: objeto de parcelamento do produto</li>   <li><b>details</b>: objeto com lista de atributos do produto</li>   <li><b>skus</b>: lista de skus do produto</li>   <li><b>customBusiness.search</b>: informações ligadas ao processamento de features específicas do serviço de busca.<b>Opcional</b></li>   <li><b>customBusiness.ads</b>: informações do cadastro de patrocínio.<b>Opcional</b></li>   </ul> </li>  <li><b>compact</b>: retorna apenas alguns campos   <ul>   <li><b>id</b>: id do produto</li>   <li><b>name</b>: nome/título do produto</li>   <li><b>price</b>: preço de venda do produto</li>   <li><b>oldPrice</b>: preço original do produto</li>   <li><b>url</b>: url do produto</li>   <li><b>images</b>: imagens do produto</li>   <li><b>installment</b>: objeto de parcelamento do produto</li>   <li><b>customBusiness.search</b>: informações ligadas ao processamento de features específicas do serviço de busca.<b>Opcional</b></li>   <li><b>customBusiness.ads</b>: informações do cadastro de patrocínio.<b>Opcional</b></li>   </ul> </li>  </ul> Valores permitidos: <li>onlyIds</li> <li>complete</li> <li>compact</li>","required":false,"in":"query","ref":"","_id":"58bda04fb8497c1b00224a1f"},{"name":"showOnlyAvailable","type":"boolean","default":"false","desc":"Define se o resultado de busca vai ser composto apenas por produtos com status disponível.","required":false,"in":"query","ref":"","_id":"5a0da700ad5fc3001cc7dcde"},{"name":"filter","type":"string","default":"","desc":"Define qual filtro será aplicado. Pode ser aplicado filtro discreto ou contínuo. <ul><li><b>d:<id atributo>:<id valor></b>: filtro discreto que retorna os produtos que possuem atributo <id atributo> com valor <id valor></li> <li><b>c:<id atributo>:<id unidade>:<valor min>:<valor max></b>: filtro contínuo que retorna os produtos que possuem atributo do tipo <id atributo> com valor entre <valor min> e <valor max>  e que a unidade de medida do valor seja <id unidade></li> </ul>","required":false,"in":"query","ref":"","_id":"5d39d1437b1f0502ab54ff05"},{"name":"deviceId","type":"string","default":"","desc":"Identificador único do device.","required":false,"in":"query","ref":"","_id":"5da96b25cd1d410042302ce5"},{"name":"userId","type":"string","default":"","desc":"Id do usuário. Deve ser o mesmo identificador utilizado no site.","required":false,"in":"query","ref":"","_id":"5da96b25cd1d410042302ce4"}]},"next":{"description":"","pages":[]},"title":"/hotsites","type":"endpoint","slug":"hotsite","excerpt":"Hotsite é uma página configurada com produtos selecionados e associada a consultas específicas que permite a adição de banners. Esta requisição é utilizada para obter um conjunto de produtos cadastrado em um hotsite, a partir de seu nome. O gerênciamento do cadastro de hotsites é feito no [dashboard](https://busca.chaordic.com.br/search/#/hotsites), caso não tenha acesso ao dashboard, solicite ao responsável técnico de integração enviando um email para [email protected]","body":"<h3>Como fazer a consulta?</h3>\nPara realizar uma consulta, você deve passar o nome do hotsite cadastrado\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"https://api.linximpulse.com/engage/search/v3/hotsites?apiKey=<loja>&secretKey=<secretKey>&name=minhapagina\",\n      \"language\": \"curl\"\n    }\n  ]\n}\n[/block]\n<h3>Como é a resposta?</h3>\nA resposta segue o mesmo formato das consultas **search**. Os produtos retornados estarão no campo **products**. O formato/conteúdo de cada produto no **products** está listado acima 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**.\n\nExistem outros campos que são retornados conforme a resposta para aquela consulta. Os principais campos estão descritos abaixo.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Campo\",\n    \"h-1\": \"Descrição\",\n    \"0-0\": \"**suggestions**\",\n    \"1-0\": \"**filters**\",\n    \"2-0\": \"**quickFilters**\",\n    \"3-0\": \"**banners**\",\n    \"4-0\": \"**adSearches**\",\n    \"4-1\": \"Lista de produtos patrocinados para a consulta. Esta lista pode ser exibida em um layout diferenciado. O formato de resposta é o mesmo do objeto **products**.\",\n    \"0-1\": \"Algumas consultas podem possuir sugestões de consultas relacionadas.\",\n    \"1-1\": \"Lista de filtros retornados pela consulta. Cada filtro pode ser de um tipo, identificaod no campo **type**. Os valores possíveis são:\\n<ul>\\n<li>discrete: Não há a noção de ordem entre os valores. Ex.: marca, cor.</li>\\n<li> continuous: Os valores podem ser agrupados de maneira ordenada. Ex.: preço, peso.</li>\\n<li>range: Os valores podem ser agrupados de maneira ordenada mas cada produto atende a uma faixa de valores. Ex.: suporte de tv (tamanhos 32\\\" a 50\\\").</li>\\n<ul>\",\n    \"2-1\": \"Permite que algumas consultas exibam de maneira destacada um conjunto pré-determinado de filtros para que o usuário possa direcionar o seu foco. Recomenda-se o uso em consultas muito genéricas. Por exemplo, a consulta \\\"samsung\\\" pode ser feita por um usuário buscando tvs, notebooks ou celulares. Neste caso, a utilização de um quickFilter ajudaria o usuário a direcionar o seu interesse. O retorno é uma lista de opções que o usuário pode selecionar para filtrar os produtos retornados pela consulta.\",\n    \"3-1\": \"Banner a ser exibido na página de resultados. Algumas consultas podem ter banners associados a ela, neste caso eles serão retornados neste campo.\"\n  },\n  \"cols\": 2,\n  \"rows\": 5\n}\n[/block]\nAlguns campos existentes na resposta possuem valores padrões. Abaixo descrevemos alguns desses campos.\n\nO campo **queries** traz informações referentes à consulta realizada, como por exemplo a consulta original e normalizada. Um dos campos retornados é o **queryType**, onde você pode identificar qual o tipo de consulta foi realizada. Os possíveis valores retornados estão descritos abaixo. Observe, também, o código de resposta da pode variar conforme este tipo.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Valor\",\n    \"h-1\": \"Code\",\n    \"h-2\": \"Descrição\",\n    \"0-0\": \"**found**\",\n    \"1-0\": \"**corrected**\",\n    \"2-0\": \"**aproximated**\",\n    \"3-0\": \"**notfound**\",\n    \"3-1\": \"404\",\n    \"0-2\": \"Houve ao menos um produto com os termos pesquisados.\",\n    \"1-2\": \"Foi identificado um erro de digitação na consulta enviada e ela foi corrigida (ex.: \\\"notebok\\\" pode ser corrigido para \\\"notebook\\\").\",\n    \"2-2\": \"Nenhum produto possui todos os termos da consulta, busca-se então por produtos com parte dos termos consultados. (ex.: \\\"notebook sony vaio\\\" pode ser corrigido para \\\"notebook sony\\\").\",\n    \"3-2\": \"Não houve nenhum produto com os termos pesquisados.\"\n  },\n  \"cols\": 3,\n  \"rows\": 4\n}\n[/block]\nO campo **pagination** traz informações referentes à paginação. Em casos onde o resultado possui muitos produtos, estes são segmentados por páginas. Este campo é um objeto que pode possuir os campos abaixo:\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"**first**\",\n    \"1-0\": \"**last**\",\n    \"2-0\": \"**next**\",\n    \"3-0\": \"**previous**\",\n    \"0-1\": \"Url da primeira página de resultados. Por padrão seu número é 1.\",\n    \"1-1\": \"Url da última página de resultados.\",\n    \"2-1\": \"Url da próxima página de resultados. Por padrão seu valor é a página atual+1.\",\n    \"3-1\": \"Url da página anterior de resultados. Por padrão seu valor é a página atual-1\"\n  },\n  \"cols\": 2,\n  \"rows\": 4\n}\n[/block]\n\n[block:api-header]\n{\n  \"title\": \"Tracking de eventos\"\n}\n[/block]\n# Eventos de click\n\nCada produto do resultado da busca contém um campo chamado **clickUrl**.\n\nEste campo fornece uma URL da API de Busca, na rota /clicks que deverá ser usada para registrar todos os eventos de click dos usuários da aplicação com os produtos do resultado da busca. É por meio destes registros que geramos métricas de performance da busca, além de melhorar as estratégias para acertar em cheio cada resultado.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n    id: \\\"10005354\\\",\\n  \\tname: \\\"oculos\\\",\\n  \\tprice: 249.98,\\n  \\toldPrice: 249.98,\\n  \\turl: \\\"...\\\",\\n  \\timages: {\\n        template-418481: \\\"...\\\",\\n      \\t1000x1000: \\\"...\\\"\\n  \\t},\\n  \\tinstallment: {\\n        count: 6,\\n      \\tprice: 41.66\\n  \\t},\\n  \\tstatus: \\\"AVAILABLE\\\",\\n  \\tclickUrl: \\\"/searchapi/v3/clicks?apikey=loja&trackingId=eyJzZWFyY2hJZCI6IjQ1NTE5MDkwLTQxMDktNGM1MC1hNGZmLTYwMGM0YTZhOWVkZiIsIm9yaWdpbiI6InNlYXJjaCIsInByb2R1Y3QiOnsicmFua2luZyI6MSwicGlkIjoiMTAwMDUzNTciLCJza3VzIjpbXX19\\\",\\n  \\tcategories: [\\n      {\\n        id: \\\"ÓCULOS DE SOL\\\",\\n        name: \\\"ÓCULOS DE SOL\\\",\\n        parents: [ ],\\n        used: true\\n      }\\n\\t  ],\\n    tags: [\\n      {\\n        id: \\\"oculos_de_sol\\\",\\n        name: \\\"ÓCULOS DE SOL\\\",\\n        parents: [ ]\\n      }\\n    ],\\n    specs: { },\\n    created: \\\"2018-08-02 11:52:51\\\",\\n    brand: null,\\n    collectInfo: {\\n      skuList: [ ],\\n      productId: \\\"10005354\\\"\\n    },\\n    cId: \\\"84\\\",\\n    iId: 10641,\\n    skus: [\\n\\t\\t\\t\\t{\\n\\t\\t\\t\\t\\t\\tsku: \\\"2067712\\\",\\n            specs: { },\\n            properties: {\\n                stock: 1,\\n                name: \\\"oculos\\\",\\n                oldPrice: 249.98,\\n                url: \\\"...\\\",\\n                price: 249.98,\\n                eanCode: \\\"7909140245889\\\",\\n                status: \\\"available\\\",\\n                details: {\\n                    referenceId: \\\"7909140245889\\\",\\n                    measurement: {\\n                        unit: \\\"un\\\",\\n                        multiplier: 1\\n                    }\\n                },\\n                installment: {\\n                    price: 41.66,\\n                    count: 6\\n                },\\n                images: {\\n                    template-418481: \\\"...\\\",\\n                    1000x1000: \\\"...\\\"          \\n                }\\n            }\\n    \\t\\t}\\n    ],\\n    details: {\\n        productReference: [\\n        \\t\\t\\\"...\\\"\\n        ],\\n        clusterHighlights: [\\n            {\\n                178: \\\"Mais Vistos\\\",\\n                192: \\\"Todos produtos\\\",\\n                246: \\\"lightbox-oculos\\\",\\n                247: \\\"modal-oculos\\\"\\n            }\\n\\t\\t\\t\\t],\\n\\t\\t\\t\\tbrand: [\\n          \\\"...\\\"\\n        ],\\n        referenceId: [\\n          \\\"7909140245889\\\"\\n        ],\\n        measurement: [\\n        \\t\\t{\\n                unit: \\\"un\\\",\\n                multiplier: 1\\n\\t\\t\\t\\t\\t\\t}\\n        ],\\n        categoryName: [\\n        \\t\\t\\\"ÓCULOS DE SOL\\\"\\n        ]\\n    },\\n    description: \\\"...\\\"\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nAo clickUrl deverá ser adicionada a URL base da API no início e ao final os parâmetros exigidos pela rota de click. Detalhes dos parâmetros da rota de click podem ser encontados em [/clicks](doc:clicks).\n\nPor exemplo:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"https://api.linximpulse.com/engage/searchapi/v3/clicks?apikey=loja&trackingId=eyJzZWFyY2hJZCI6IjQ1NTE5MDkwLTQxMDktNGM1MC1hNGZmLTYwMGM0YTZhOWVkZiIsIm9yaWdpbiI6InNlYXJjaCIsInByb2R1Y3QiOnsicmFua2luZyI6MSwicGlkIjoiMTAwMDUzNTciLCJza3VzIjpbXX19&deviceid=teste&source=desktop\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\nÉ 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.","updates":[],"order":7,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"_id":"5d00029d39c2920014e31710","__v":23,"project":"55c3572a57f7f32d0016ec3d","createdAt":"2017-03-06T15:27:23.498Z","githubsync":"","parentDoc":null,"user":"5760739a30e27d0e00002a9f","category":{"sync":{"isSync":false,"url":""},"pages":[],"title":"API de busca","slug":"api-de-busca","order":8,"from_sync":false,"reference":false,"_id":"5d00029d39c2920014e316e3","project":"55c3572a57f7f32d0016ec3d","createdAt":"2017-03-06T13:18:21.954Z","__v":0,"version":"5d00029d39c2920014e31722"},"version":{"version":"3-search","version_clean":"3.0.0-search","codename":"API de Busca pelo time de Integração","is_stable":false,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["5d00029d39c2920014e316db","5d00029d39c2920014e316dc","5d00029d39c2920014e316dd","5d00029d39c2920014e316de","5d00029d39c2920014e316df","5d00029d39c2920014e316e0","5d00029d39c2920014e316e1","5d00029d39c2920014e316e2","5d00029d39c2920014e316e3","5d00029d39c2920014e316e4","5d00029d39c2920014e316e5","5d00029d39c2920014e316e6"],"_id":"5d00029d39c2920014e31722","project":"55c3572a57f7f32d0016ec3d","__v":0,"forked_from":"590a413d12d47a3700f83c8e","createdAt":"2017-05-03T20:44:45.480Z","releaseDate":"2017-05-03T20:44:45.480Z"}}

get/hotsites

Hotsite é uma página configurada com produtos selecionados e associada a consultas específicas que permite a adição de banners. Esta requisição é utilizada para obter um conjunto de produtos cadastrado em um hotsite, a partir de seu nome. O gerênciamento do cadastro de hotsites é feito no [dashboard](https://busca.chaordic.com.br/search/#/hotsites), caso não tenha acesso ao dashboard, solicite ao responsável técnico de integração enviando um email para [email protected]

Definition

{{ api_url }}{{ page_api_url }}

Parameters

Query Params

apikey:
required
string
Não sabe qual a apiKey da sua loja? Solicite ao responsável técnico de integração enviando um email para [email protected]
secretkey:
required
string
Não sabe qual a secretKey da sua loja? Solicite ao responsável técnico de integração enviando um email para [email protected]
name:
required
string
Nome do hotsite
page:
integer1
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:
integer20
Número de produtos retornados por página.
sortBy:
stringrelevance
Método de ordenação. Os métodos de ordenação suportados são: <ul> <li><b>relevance</b>: Relevância; </li> <li><b>pid</b>: Id de produto </li> <li><b>ascPrice</b>: Menor preço;</li> <li><b>descPrice</b>: Maior preço;</li> <li><b>descDate</b>: Lançamentos;</li> <li><b>ascSold</b>: Menor venda;</li> <li><b>descSold</b>: Maior venda;</li> <li><b>ascReview</b>: Menor avaliação;</li> <li><b>descReview</b>: Maior avaliação;</li> <li><b>descDiscount</b>: Maiores descontos.</li> </ul>
clid:
string
Lista de IDs de produtos em que o usuário clicou. Ativa a personalização da lista de resultados. Para enviar mais de um ID, 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. <br> Valores permitidos: <li>quickFilters</li> <li>banners</li> <li>adSearches</li> <li>suggestions</li> <li>filters</li>
productFormat:
stringcomplete
Define o formato de resposta dos produtos. Por padrão todos os campos são ativos. <ul> <li><b>onlyIds</b>: retorna apenas id de produto</li> <ul> <li><b>id</b>: id do produto</li> </ul> <li><b>complete</b>: retorna todos os campos <ul> <li><b>id</b>: id do produto</li> <li><b>status</b>: status do produto</li> <li><b>name</b>: nome/título do produto</li> <li><b>price</b>: preço de venda do produto</li> <li><b>oldPrice</b>: preço original do produto</li> <li><b>description</b>: descrição do produto</li> <li><b>url</b>: url do produto</li> <li><b>images</b>: imagens do produto</li> <li><b>installment</b>: objeto de parcelamento do produto</li> <li><b>details</b>: objeto com lista de atributos do produto</li> <li><b>skus</b>: lista de skus do produto</li> <li><b>customBusiness.search</b>: informações ligadas ao processamento de features específicas do serviço de busca.<b>Opcional</b></li> <li><b>customBusiness.ads</b>: informações do cadastro de patrocínio.<b>Opcional</b></li> </ul> </li> <li><b>compact</b>: retorna apenas alguns campos <ul> <li><b>id</b>: id do produto</li> <li><b>name</b>: nome/título do produto</li> <li><b>price</b>: preço de venda do produto</li> <li><b>oldPrice</b>: preço original do produto</li> <li><b>url</b>: url do produto</li> <li><b>images</b>: imagens do produto</li> <li><b>installment</b>: objeto de parcelamento do produto</li> <li><b>customBusiness.search</b>: informações ligadas ao processamento de features específicas do serviço de busca.<b>Opcional</b></li> <li><b>customBusiness.ads</b>: informações do cadastro de patrocínio.<b>Opcional</b></li> </ul> </li> </ul> Valores permitidos: <li>onlyIds</li> <li>complete</li> <li>compact</li>
showOnlyAvailable:
booleanfalse
Define se o resultado de busca vai ser composto apenas por produtos com status disponível.
filter:
string
Define qual filtro será aplicado. Pode ser aplicado filtro discreto ou contínuo. <ul><li><b>d:<id atributo>:<id valor></b>: filtro discreto que retorna os produtos que possuem atributo <id atributo> com valor <id valor></li> <li><b>c:<id atributo>:<id unidade>:<valor min>:<valor max></b>: filtro contínuo que retorna os produtos que possuem atributo do tipo <id atributo> com valor entre <valor min> e <valor max> e que a unidade de medida do valor seja <id unidade></li> </ul>
deviceId:
string
Identificador único do device.
userId:
string
Id do usuário. Deve ser o mesmo identificador utilizado no site.

Result Format


Documentation

<h3>Como fazer a consulta?</h3> Para realizar uma consulta, você deve passar o nome do hotsite cadastrado [block:code] { "codes": [ { "code": "https://api.linximpulse.com/engage/search/v3/hotsites?apiKey=<loja>&secretKey=<secretKey>&name=minhapagina", "language": "curl" } ] } [/block] <h3>Como é a resposta?</h3> A resposta segue o mesmo formato das consultas **search**. Os produtos retornados estarão no campo **products**. O formato/conteúdo de cada produto no **products** está listado acima 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**. Existem outros campos que são retornados conforme a resposta para aquela consulta. Os principais campos estão descritos abaixo. [block:parameters] { "data": { "h-0": "Campo", "h-1": "Descrição", "0-0": "**suggestions**", "1-0": "**filters**", "2-0": "**quickFilters**", "3-0": "**banners**", "4-0": "**adSearches**", "4-1": "Lista de produtos patrocinados para a consulta. Esta lista pode ser exibida em um layout diferenciado. O formato de resposta é o mesmo do objeto **products**.", "0-1": "Algumas consultas podem possuir sugestões de consultas relacionadas.", "1-1": "Lista de filtros retornados pela consulta. Cada filtro pode ser de um tipo, identificaod no campo **type**. Os valores possíveis são:\n<ul>\n<li>discrete: Não há a noção de ordem entre os valores. Ex.: marca, cor.</li>\n<li> continuous: Os valores podem ser agrupados de maneira ordenada. Ex.: preço, peso.</li>\n<li>range: Os valores podem ser agrupados de maneira ordenada mas cada produto atende a uma faixa de valores. Ex.: suporte de tv (tamanhos 32\" a 50\").</li>\n<ul>", "2-1": "Permite que algumas consultas exibam de maneira destacada um conjunto pré-determinado de filtros para que o usuário possa direcionar o seu foco. Recomenda-se o uso em consultas muito genéricas. Por exemplo, a consulta \"samsung\" pode ser feita por um usuário buscando tvs, notebooks ou celulares. Neste caso, a utilização de um quickFilter ajudaria o usuário a direcionar o seu interesse. O retorno é uma lista de opções que o usuário pode selecionar para filtrar os produtos retornados pela consulta.", "3-1": "Banner a ser exibido na página de resultados. Algumas consultas podem ter banners associados a ela, neste caso eles serão retornados neste campo." }, "cols": 2, "rows": 5 } [/block] Alguns campos existentes na resposta possuem valores padrões. Abaixo descrevemos alguns desses campos. O campo **queries** traz informações referentes à consulta realizada, como por exemplo a consulta original e normalizada. Um dos campos retornados é o **queryType**, onde você pode identificar qual o tipo de consulta foi realizada. Os possíveis valores retornados estão descritos abaixo. Observe, também, o código de resposta da pode variar conforme este tipo. [block:parameters] { "data": { "h-0": "Valor", "h-1": "Code", "h-2": "Descrição", "0-0": "**found**", "1-0": "**corrected**", "2-0": "**aproximated**", "3-0": "**notfound**", "3-1": "404", "0-2": "Houve ao menos um produto com os termos pesquisados.", "1-2": "Foi identificado um erro de digitação na consulta enviada e ela foi corrigida (ex.: \"notebok\" pode ser corrigido para \"notebook\").", "2-2": "Nenhum produto possui todos os termos da consulta, busca-se então por produtos com parte dos termos consultados. (ex.: \"notebook sony vaio\" pode ser corrigido para \"notebook sony\").", "3-2": "Não houve nenhum produto com os termos pesquisados." }, "cols": 3, "rows": 4 } [/block] O campo **pagination** traz informações referentes à paginação. Em casos onde o resultado possui muitos produtos, estes são segmentados por páginas. Este campo é um objeto que pode possuir os campos abaixo: [block:parameters] { "data": { "0-0": "**first**", "1-0": "**last**", "2-0": "**next**", "3-0": "**previous**", "0-1": "Url da primeira página de resultados. Por padrão seu número é 1.", "1-1": "Url da última página de resultados.", "2-1": "Url da próxima página de resultados. Por padrão seu valor é a página atual+1.", "3-1": "Url da página anterior de resultados. Por padrão seu valor é a página atual-1" }, "cols": 2, "rows": 4 } [/block] [block:api-header] { "title": "Tracking de eventos" } [/block] # Eventos de click Cada produto do resultado da busca contém um campo chamado **clickUrl**. Este campo fornece uma URL da API de Busca, na rota /clicks que deverá ser usada para registrar todos os eventos de click dos usuários da aplicação com os produtos do resultado da busca. É por meio destes registros que geramos métricas de performance da busca, além de melhorar as estratégias para acertar em cheio cada resultado. [block:code] { "codes": [ { "code": "{\n id: \"10005354\",\n \tname: \"oculos\",\n \tprice: 249.98,\n \toldPrice: 249.98,\n \turl: \"...\",\n \timages: {\n template-418481: \"...\",\n \t1000x1000: \"...\"\n \t},\n \tinstallment: {\n count: 6,\n \tprice: 41.66\n \t},\n \tstatus: \"AVAILABLE\",\n \tclickUrl: \"/searchapi/v3/clicks?apikey=loja&trackingId=eyJzZWFyY2hJZCI6IjQ1NTE5MDkwLTQxMDktNGM1MC1hNGZmLTYwMGM0YTZhOWVkZiIsIm9yaWdpbiI6InNlYXJjaCIsInByb2R1Y3QiOnsicmFua2luZyI6MSwicGlkIjoiMTAwMDUzNTciLCJza3VzIjpbXX19\",\n \tcategories: [\n {\n id: \"ÓCULOS DE SOL\",\n name: \"ÓCULOS DE SOL\",\n parents: [ ],\n used: true\n }\n\t ],\n tags: [\n {\n id: \"oculos_de_sol\",\n name: \"ÓCULOS DE SOL\",\n parents: [ ]\n }\n ],\n specs: { },\n created: \"2018-08-02 11:52:51\",\n brand: null,\n collectInfo: {\n skuList: [ ],\n productId: \"10005354\"\n },\n cId: \"84\",\n iId: 10641,\n skus: [\n\t\t\t\t{\n\t\t\t\t\t\tsku: \"2067712\",\n specs: { },\n properties: {\n stock: 1,\n name: \"oculos\",\n oldPrice: 249.98,\n url: \"...\",\n price: 249.98,\n eanCode: \"7909140245889\",\n status: \"available\",\n details: {\n referenceId: \"7909140245889\",\n measurement: {\n unit: \"un\",\n multiplier: 1\n }\n },\n installment: {\n price: 41.66,\n count: 6\n },\n images: {\n template-418481: \"...\",\n 1000x1000: \"...\" \n }\n }\n \t\t}\n ],\n details: {\n productReference: [\n \t\t\"...\"\n ],\n clusterHighlights: [\n {\n 178: \"Mais Vistos\",\n 192: \"Todos produtos\",\n 246: \"lightbox-oculos\",\n 247: \"modal-oculos\"\n }\n\t\t\t\t],\n\t\t\t\tbrand: [\n \"...\"\n ],\n referenceId: [\n \"7909140245889\"\n ],\n measurement: [\n \t\t{\n unit: \"un\",\n multiplier: 1\n\t\t\t\t\t\t}\n ],\n categoryName: [\n \t\t\"ÓCULOS DE SOL\"\n ]\n },\n description: \"...\"\n}", "language": "json" } ] } [/block] Ao clickUrl deverá ser adicionada a URL base da API no início e ao final os parâmetros exigidos pela rota de click. Detalhes dos parâmetros da rota de click podem ser encontados em [/clicks](doc:clicks). Por exemplo: [block:code] { "codes": [ { "code": "https://api.linximpulse.com/engage/searchapi/v3/clicks?apikey=loja&trackingId=eyJzZWFyY2hJZCI6IjQ1NTE5MDkwLTQxMDktNGM1MC1hNGZmLTYwMGM0YTZhOWVkZiIsIm9yaWdpbiI6InNlYXJjaCIsInByb2R1Y3QiOnsicmFua2luZyI6MSwicGlkIjoiMTAwMDUzNTciLCJza3VzIjpbXX19&deviceid=teste&source=desktop", "language": "http" } ] } [/block] É 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.

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}