Para mi módulo personalizado tengo producto por fabricante. Para la plantilla que he copiado list.phtml
.
En la plantilla aparece la paginación del archivo, pero muestra todos los productos en lugar del límite seleccionado por página. La clasificación tampoco funciona.
¿Cómo puedo hacer que funcione?
Es mi archivo de bloque:
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;
}
fuente
También debe usar los siguientes filtros:
Entonces su código completo se convierte en:
fuente
Puede que esta no sea la situación en su caso, pero podría ayudar a alguien más que tenga este problema. Tuve este problema al probar cambios personalizados en
getProductCollection()
.Pude solucionarlo eliminando el código de registro que había agregado que señalaba el recuento de la colección devuelta. Creo que cualquier cosa que cuestione los resultados de la carga de la Colección en el
getProductCollection()
método obligará a la colección a cargar sus productos de forma prematura y evitará que se apliquen modificaciones posteriores al pedido de la colección y la limitación de los resultados para los controles de paginación.fuente
$collection->getSize()
. Realizará una separaciónSELECT COUNT(*)
con los filtros de colección actuales.Debe anular
_prepareLayout()
y establecer los datos como se muestra a continuación.Avísame si tienes alguna consulta.
fuente
Vaya a la sección Administrar categoría y establezca la opción de anclaje en "Sí".
fuente