Plugin não funciona com coleções
Opened this issue · 5 comments
Ao usar uma coleção paginada, ao invés de do controle <vtex.cmc:searchResult />
, o plugin não funciona. Isso acontece porque a URL a ser carregada no caso de coleções paginadas no placeholder é do tipo
/paginaprateleira?pc=147&ps=6&sa=False&tt=Vitrine&sl=85e23371-f0a2-43c2-a6ac-e5464c462fb3&cc=3&sm=0&PageNumber=
A expressão regular na função getSearchUrl
está ajustada apenas para o caso em que a URL das páginas é do tipo /buscapagina...
. Ou seja, a função precisa ser modificada.
Por ora, é possível passar uma função para a propriedade searchUrl
que componha corretamente a URL no caso de coleções paginadas, mas o ideal é mexer na função getSearchUrl
.
Ok, vou corrigir, se possível mande um pull request. Abraços
Então, eu acho que consigo dar fork no final de semana. Mas aconteceu um negócio estranho, se liga. Eu fiz o seguinte:
$(".prateleira[id*=ResultItems]").infinityScroll({
searchUrl: (function()
{
var url, content, preg;
jQuery("script:not([src])").each(function(){
content=jQuery(this)[0].innerHTML;
preg=/\/paginaprateleira\?.+&PageNumber=/i;
if(content.search(/\/paginaprateleira?/i)>-1)
{
url=preg.exec(content);
return false;
}
});
if(typeof(url)!=="undefined" && typeof(url[0])!=="undefined")
return url[0];
else
{
log("Não foi possível localizar a url de busca da página.\n Tente adicionar o .js ao final da página. \n[Método: getSearchUrl]");
return "";
}
})()
});
A função executa e pega a URL certinho, o problema parece ser com a VTEX. O get retorna um erro 500 (erro ao renderizar controle vtex)
ao pedir a URL /paginaprateleira?pc=147&ps=6&sa=False&tt=Vitrine&sl=85e23371-f0a2-43c2-a6ac-e5464c462fb3&cc=3&sm=0&PageNumber=2
.
A URL parece ter sido montada certinha.
Tirei o firendly error. A URL /paginaprateleira
retorna 404. Olha só um exemplo da tag script que vem na página quando há uma coleção paginada ao invés de um controle <vtex.cmc:searchResult />
:
<script type="text/javascript">
var pagecount_1dc930e011d44a0db64017053bdbd7c2;
$(document).ready(function () {
pagecount_1dc930e011d44a0db64017053bdbd7c2 = 9
$('#PagerTop_1dc930e011d44a0db64017053bdbd7c2').pager({ pagenumber: 1, pagecount: pagecount_1dc930e011d44a0db64017053bdbd7c2, buttonClickCallback: PageClick_1dc930e011d44a0db64017053bdbd7c2 });
$('#PagerBottom_1dc930e011d44a0db64017053bdbd7c2').pager({ pagenumber: 1, pagecount: pagecount_1dc930e011d44a0db64017053bdbd7c2, buttonClickCallback: PageClick_1dc930e011d44a0db64017053bdbd7c2 });
if (window.location.hash != '') PageClick_1dc930e011d44a0db64017053bdbd7c2(window.location.hash.replace(/\#/, ''));
});
PageClick_1dc930e011d44a0db64017053bdbd7c2 = function (pageclickednumber) {
window.location.hash = pageclickednumber;
$('#ResultItems_1dc930e011d44a0db64017053bdbd7c2').load('/paginaprateleira?pc=147&ps=6&sa=False&tt=Vitrine&sl=85e23371-f0a2-43c2-a6ac-e5464c462fb3&cc=3&sm=0&PageNumber=' + pageclickednumber,
function () {
$('#PagerTop_1dc930e011d44a0db64017053bdbd7c2').pager({ pagenumber: pageclickednumber, pagecount: pagecount_1dc930e011d44a0db64017053bdbd7c2, buttonClickCallback: PageClick_1dc930e011d44a0db64017053bdbd7c2 });
$('#PagerBottom_1dc930e011d44a0db64017053bdbd7c2').pager({ pagenumber: pageclickednumber, pagecount: pagecount_1dc930e011d44a0db64017053bdbd7c2, buttonClickCallback: PageClick_1dc930e011d44a0db64017053bdbd7c2 });
bindQuickView();
});
}
</script>
Não é estranho que a URL retorne 404? Parece que algo foi tirado do sistema. Paginação em coleções não funciona?
Eu troquei /paginaprateleira
por /buscapagina
e funcionou. A funcionalidade deve ter sido atualizada, mas a tag script não.
Olá, tudo bem? atualmente a vtex no smartcheckout está utilizando só com o return url, pois dessa forma de trocar /paginaprateleira por /buscapagina nas coleções a busca vai funcionar só que vai dar problema, pois a busca é uma busca já a pagina prateleira é especifica, então pelo menos na versão smart checkout que foi o ultimo update o interessante é urilizar somente o url[0], mas meu agradeço muito por vocês terem criado esse plugin e disponibilizado, ajuda muito!