Magento Artikelliste Ausverkaufte Artikel als ans Ende sortieren (show out of stock last) / Filter Saleable Products

Gepostet am Oktober 4, 2012

Sortieren von Ausverkauften Artikeln an das Ende eine Liste / Grid (Simple Products)

Änderung in folgender Datei: app/code/core/Mage/catalog/block/product/list.php
Der Code sollte nicht direkt in der list.php geändert werden, diese Datei wir von Magento automatisch überschrieben wenn du eine neue Datei „app/code/local/Mage/catalog/block/product/list.php“ erstellst und den Inhalt von „app/code/core/Mage/catalog/block/product/list.php“ hinein kopierst.

Folgende Codezeile sollte in der neu erstellten Datei ersetzt werden:

1
$this->_productCollection = $layer->getProductCollection();

durch:

1
$this->_productCollection = $layer->getProductCollection()->joinField('inventory_in_stock', 'cataloginventory_stock_item', 'is_in_stock', 'product_id=entity_id','is_in_stock>=0', 'left')->setOrder('inventory_in_stock','desc');

Sortieren von Ausverkauften Artikeln an das Ende eine Liste / Grid (Configurable Products)

Leider funktioniert der oben gezeigte Code nur bei Simple Products. Um die Sortierung auch auf konfigurierbare Artikel anzuwenden gehen Sie wie folgt vor:

Folgende Codezeile sollte in der neu erstellten Datei ersetzt werden:

1
$this->_productCollection = $layer->getProductCollection();

durch:

1
$this->_productCollection = $layer->getProductCollection()->joinField('stock_status','cataloginventory/stock_status','stock_status','product_id=entity_id', 'stock_status=1', 'left')->setOrder('stock_status','desc');

Filtern einer Produktliste ohne Ausverkaufte Produkte (not Saleble and not in Stock)

1
2
3
4
$this->_productCollection = $layer->getProductCollection()->joinField('stock_status','cataloginventory/stock_status','stock_status','product_id=entity_id', array(
    'stock_status' => Mage_CatalogInventory_Model_Stock_Status::STATUS_IN_STOCK,
    'website_id' => Mage::app()->getWebsite()->getWebsiteId(),
))->setOrder('stock_status','desc');
1
2
3
4
$productCollection = $productCollection->getProductCollection()->joinField('stock_status','cataloginventory/stock_status','stock_status','product_id=entity_id', array(
    'stock_status' => Mage_CatalogInventory_Model_Stock_Status::STATUS_IN_STOCK,
    'website_id' => Mage::app()->getWebsite()->getWebsiteId(),
))->setOrder('stock_status','desc');

Tags: , ,

Leave a Reply

 

Posts of Current Category



Facebook: