Produkte nach neuesten sortieren, Rabatt, meistverkaufte, Bewertungen "in der Produktlistenseite

10

Auf der Produktlistenseite sehen wir die Sortierung nach "Position, Name, Preis" wie im Standard-Magento.

Wie sortiere ich nach

  1. neueste Produkte (kürzlich hochgeladen)
  2. Rabatt (Produkte mit dem höchsten Rabatt zuerst)
  3. Bestseller (meistverkaufte Produkte zuerst)
  4. Bewertungen (hoch bewertete Produkte werden zuerst angezeigt)

Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen ...

Baby in Magento
quelle

Antworten:

7

für -> Zuletzt angesehen siehe hier

für -> Sortieren nach Bewertung

Kopieren Sie die Datei

app/code/core/Mage/Catalog/Block/Product/List.php zu

app/code/local/Mage/Catalog/Block/Product/List.php

in list.phpfind für diese Zeile

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

was sein wird um line no 86den folgenden Code nach , dass

$this->_productCollection->joinField('rating_summary', 'review_entity_summary', 'rating_summary', 'entity_pk_value=entity_id', array('entity_type'=>1, 'store_id'=> Mage::app()->getStore()->getId()), 'left')

jetzt kopieren

app/code/core/Mage/Catalog/Model/Config.php zu

app/code/local/Mage/Catalog/Model/Config.php

in config.php nach diesem Code suchen

$options = array(
    'position'  => Mage::helper('catalog')->__('Position')
);

ersetzen mit

$options = array(
    'position'  => Mage::helper('catalog')->__('Position'),
    'rating_summary' => Mage::helper('catalog')->__('Rating')
);

- >> für BESTSELLER

folgen Sie diesem Verfahren einen Ordner Namensgebung erstellen Inchoound in diesem Ordner Ort Catalogund innerhalb Katalog erstellen 3 Ordner Block, etcund ModelIn Blockadd Productin ProductAdd Listund in Listeine Datei erstellen und benennen Sie es als Toolbar.phpund Ad diesen Code hinein

<?php
class Inchoo_Catalog_Block_Product_List_Toolbar extends Mage_Catalog_Block_Product_List_Toolbar
{
    public function setCollection($collection)
    {
        parent::setCollection($collection);

        if ($this->getCurrentOrder()) {
            if($this->getCurrentOrder() == 'qty_ordered') {
                $this->getCollection()->getSelect()
                     ->joinLeft(
                            array('sfoi' => $collection->getResource()->getTable('sales/order_item')),
                             'e.entity_id = sfoi.product_id',
                             array('qty_ordered' => 'SUM(sfoi.qty_ordered)')
                         )
                     ->group('e.entity_id')
                     ->order('qty_ordered ' . $this->getCurrentDirection());
            } else {
                $this->getCollection()
                     ->setOrder($this->getCurrentOrder(), $this->getCurrentDirection())->getSelect();
            }
        }

        return $this;
    }
}

etcErstellen Sie jetzt im Ordner eine Datei mit dem Namen config.xmlund fügen Sie diesen Code hinzu

<config>
    <modules>
        <Inchoo_Catalog>
            <version>0.1.0</version>
        </Inchoo_Catalog>
    </modules>
    <global>
        <blocks>
            <catalog>
                <rewrite>
                    <product_list_toolbar>Inchoo_Catalog_Block_Product_List_Toolbar</product_list_toolbar>
                </rewrite>
            </catalog>
        </blocks>
        <models>
            <catalog>
                <rewrite>
                    <config>Inchoo_Catalog_Model_Config</config>
                </rewrite>
            </catalog>
            <catalog_resource>
                <rewrite>
                    <product_collection>Inchoo_Catalog_Model_Resource_Product_Collection</product_collection>
                </rewrite>
            </catalog_resource>
        </models>
    </global>
</config>

Jetzt in Modeleinen Dateinamen erstellen Config.phpund diesen Code hinzufügen.

<?php class Inchoo_Catalog_Model_Config extends Mage_Catalog_Model_Config
{
    public function getAttributeUsedForSortByArray()
    {
        return array_merge(
            parent::getAttributeUsedForSortByArray(),
            array('qty_ordered' => Mage::helper('catalog')->__('Sold quantity'))
        );
    }
}

Erstellen Sie auch einen ResourceOrdner in Modelund in einem ResourceOrdner, Producterstellen Sie einen Ordner, erstellen Sie einen Dateinamen Collection.phpund fügen Sie folgenden Code hinzu.

<?php
class Inchoo_Catalog_Model_Resource_Product_Collection extends Mage_Catalog_Model_Resource_Product_Collection
{
    protected function _getSelectCountSql($select = null, $resetLeftJoins = true)
    {
       $this->_renderFilters();
       $countSelect = (is_null($select)) ?
           $this->_getClearSelect() :
           $this->_buildClearSelect($select);

       if(count($countSelect->getPart(Zend_Db_Select::GROUP)) > 0) {
           $countSelect->reset(Zend_Db_Select::GROUP);
       }

       $countSelect->columns('COUNT(DISTINCT e.entity_id)');
       if ($resetLeftJoins) {
           $countSelect->resetJoinLeft();
       }
       return $countSelect;
    }
}

Aktivieren Sie nun endlich dieses Modul, indem Sie app/etc/moduleseine Datei erstellen und Inchoo_Catalog.xmldiesen Code hinzufügen.

<?xml version="1.0"?>
<!--
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to [email protected] so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    Mage
 * @package     Mage_Connect
 * @copyright   Copyright (c) 2014 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
-->
<config>
    <modules>
        <Inchoo_Catalog>
            <active>true</active>
            <codePool>community</codePool>
            <depends />
        </Inchoo_Catalog>
    </modules>
</config>

und SALEich schlage Ihnen diese Erweiterung vor, da ich keinen programmatischen Weg finden kann, dies zu erreichen.

dh47
quelle
Hallo, vielen Dank für die Antwort, ich werde überprüfen und Ihnen bald sagen ....
Baby in Magento
Gibt es noch etwas, was ich tun muss, um die Option "Bewertung" in "Sortieren nach" auf der Produktlistenseite zu erhalten? Ich habe Cache- und Indexverwaltung durchgeführt, aber die Bewertungsoption wird nicht unter "Sortieren nach"
auf der Produktlistenseite
pastebin.com/5403TsLa => list.php pastebin.com/Z7WK7C1m => config.php bitte oben Dateien überprüfen ....
Baby - in Magento
hmm der Code funktioniert gut für mich Ich kann nicht verstehen, was an deinem liegt
dh47
Ich werde es noch einmal überprüfen ...
Baby in Magento