Agregar bloque de navegación en capas a la página personalizada

9

En Magento, el bloque de navegación en capas funciona muy bien en la página de la lista de productos.

¿Cómo se puede copiar este bloque con éxito en una página personalizada, donde hay una lista personalizada de productos?

Nota: Solo agregar el bloque al XML y llamarlo no getChildHtml('blockname')funciona.

pzirkind
fuente
2
Debe agregar una categoría predeterminada al código de bloque de navegación en capas, ya que la navegación en capas se crea a partir de los productos de la categoría actual.
Sander Mangel
+1 para la ayuda, ¿qué pasa si hay varios productos de varias categorías (por ejemplo, productos de oferta)?
pzirkind
2
Haría una categoría especial para eso. Puede haber otras formas, ¡pero esta es definitivamente la más fácil y escalable!
Sander Mangel
1
Si realmente quisiera, tendría que crear una categoría personalizada. La navegación por capas realmente espera que haya una categoría con la que trabajar, no tomará una simple ProductCollection sin anular una gran cantidad de clases.
Rick Kuipers el

Respuestas:

5

Básicamente, lo que tienes que hacer es extend/overwritedesde Mage_Catalog_Block_Product_List (List.php) y reescribir el getProductCollection()método:

protected function _getProductCollection()
{
    if (is_null($this->_productCollection)) {
        // Build collection and set it
        $collection = "...";
        $this->setProductCollection($collection);
    }

    return $this->_productCollection;
}

Cuando se hizo eso, sobrescribí tanto la Mage_Catalog_Model_Layerclase como la clase Mage_Catalog_Model_Categorye introduje una nueva variable:

protected $_customProductCollection;

He sobrescrito el getProductCollection()en ambas clases y agregué esto al comienzo del método:

if(isset($this->_customProductCollection)){
    return $this->_customProductCollection;
}

También tengo un método que me permite configurar esto "customProductCollection"dentro de estas dos clases. Una vez que se establece, el resto de los datos de la navegación / categoría en capas se basa en esta colección.

Mira la pregunta inicial + respuesta aquí .

Buena suerte ;)

Kenny
fuente
¿Cuál es este método para configurar una colección de productos personalizados y desde dónde se llama?
easymoden00b