Para o meu módulo personalizado, recebo o produto por fabricante. Para o modelo que eu copiei list.phtml
.
No arquivo de modelo, a paginação aparece, mas mostra todo o produto, em vez do limite selecionado por página. A classificação também não está funcionando.
Como posso fazer funcionar?
É o meu arquivo de bloco:
protected function _getProductCollection()
{
if (is_null($this->_productCollection)) {
$layer = $this->getLayer();
$brand_id = $this->getRequest()->getParam('id');
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToSelect('*');
$collection->addFieldToFilter(array(
array('attribute' => 'manufacturer', 'eq' => $brand_id)
));
}
return $collection;
}
magento-1.8
frontend
sorting
pagination
Piyush
fonte
fonte
Você também deve usar os seguintes filtros:
Portanto, seu código completo se torna:
fonte
Pode não ser a situação no seu caso, mas pode ajudar alguém que está tendo esse problema. Eu tive esse problema ao testar alterações personalizadas no
getProductCollection()
.Consegui corrigi-lo removendo o código de log que eu adicionei que anotava a contagem da coleção retornada. Acredito que tudo o que interroga a carga da coleção resulta no
getProductCollection()
método forçará a coleção a carregar seus produtos prematuramente e impedirá que modificações posteriores na ordem da coleção e na limitação do resultado sejam aplicadas aos controles de paginação.fonte
$collection->getSize()
. Ele executará uma separaçãoSELECT COUNT(*)
com os filtros de coleção atuais.Você deve substituir
_prepareLayout()
e definir os dados como abaixo do snap.entre em contato se você tiver alguma dúvida.
fonte
Vá para a seção Gerenciar categoria e defina a opção Âncora como "Sim".
fonte