Wie liste ich Produkte in absteigender Reihenfolge auf?


18

Dies schien einfach, beweist aber etwas anderes - ich möchte nur alle Produkte in meinem Shop von hoch -> niedrig auflisten

Dazu ging ich zu:

Configuration -> Catalog -> Product Listing Sort by -> (I Selected) "Price"

Dies sortiert nun jedes Produkt von niedrig nach hoch für alle Produkte - aber es scheint keine Möglichkeit zu geben, zwischen aufsteigender und absteigender Reihenfolge zu wählen.

Befindet sich etwas im Administrationsbereich, das ich übersehen habe, oder muss ich eine Datei ändern, um dies zu tun?


Wenn ich Ihre Erklärung richtig verstanden habe, sollten Sie einfach priceerneut auf die Spalte klicken , um die Produkte von hoch nach niedrig zu sortieren .
Mr_Green

Sie können Ihre Produkte Sortierung mithilfe dieses Skript verbessern fmeaddons.com/magento/...

Antworten:


42

Sie können die Standardreihenfolge für Produktlisten nicht über die Konfiguration ändern .

Sie können jedoch die Richtung in Layout-XML ändern .

Hier einige Beispiele, die Sie in Ihre Layout-XML-Datei einfügen können, z local.xml.

<?xml version="1.0"?>
<layout version="0.1.0">
    <!-- Change default direction for simple searches -->
    <catalogsearch_result_index>
        <reference name="search_result_list">
            <action method="setDefaultDirection"><dir>desc</dir></action>
        </reference>
    </catalogsearch_result_index>

    <!-- Change default direction for advanced searches -->
    <catalogsearch_advanced_result>
        <reference name="search_result_list">
            <action method="setDefaultDirection"><dir>desc</dir></action>
        </reference>
    </catalogsearch_advanced_result>

    <!-- Change default direction for a category without layered navigation -->
    <catalog_category_default>
        <reference name="product_list">
            <action method="setDefaultDirection"><dir>desc</dir></action>
        </reference>
    </catalog_category_default>

    <!-- Change default direction for a category with layered navigation -->
    <catalog_category_layered>
        <reference name="product_list">
            <action method="setDefaultDirection"><dir>desc</dir></action>
        </reference>
    </catalog_category_layered>

    <!-- Change default direction for category with ID 3 -->
    <CATEGORY_3>
        <reference name="product_list">
            <action method="setDefaultDirection"><dir>desc</dir></action>                                   
        </reference>
    </CATEGORY_3>
</layout>

Darüber hinaus können Sie im Backend Layout XML als Custom Design Ihrer Kategorie hinzufügen . Diese Einstellung überschreibt das, was Sie in der XML-Datei festgelegt haben:

Legen Sie die Standardreihenfolge mithilfe von Custom Design XML fest


6

Die Frage ist mit CE 1.7.0.2 markiert, aber diese Lösung ist nützlich für diejenigen unter 1.9.1.1, also füge ich sie hier hinzu.

Wir hatten ein umgekehrtes Problem, bei dem wir zuerst die billigsten Produkte nach Preis sortieren mussten. Für das erste Anliegen des OP gilt dies nicht, da es in Magento CE 1.9 standardmäßig absteigend ist, sodass dies eigentlich nicht erforderlich ist. Das zweite Problem, bei dem es darum geht, zwischen aufsteigend und absteigend zu wählen, kann über eine XML-Datei oder das benutzerdefinierte Layout-Update gelöst werden. Letzteres ist in den meisten Fällen die bevorzugte Lösung, und die meisten Benutzer würden den Aufwand beim FTP-Upload einer XML-Datei zum Aktualisieren der Einstellungen vermeiden.

So sieht es in Katalog> Kategorien verwalten> Kategorie > Benutzerdefiniertes Design> Benutzerdefiniertes Layout-Update aus :

Zeigt zuerst die billigsten Produkte, NICHT die teuersten Hier ist der Code:

<reference name="product_list_toolbar">
    <action method="setDefaultDirection"><string>asc</string></action>
    <action method="setDefaultOrder"><string>price</string></action>
</reference>

Wählen aufsteigend vs absteigend, nur ändern asc zu ab .

Optional können Sie den Preis auch auf die von Ihnen benötigte Sortierung ändern . Sie können es entfernen , so dass es auf dem Standard wird asc auf jeder Produkliste Sortieren nach Option , die als Standard eingerichtet ist.


3

Die obigen Lösungen schienen mit CE 1.8 keinen Unterschied zu machen, daher musste ich dieses Problem lösen, indem ich die Funktionalität des Katalogmodells in code / local /.../ Catalog / Model / Category.php überschrieb

/**
 * Override category products collection
 * to sort by price descending
 *
 * @return Varien_Data_Collection_Db
 */
public function getProductCollection()
{  
    $collection = parent::getProductCollection()->setOrder('price', 'DESC');
    return $collection;
}

Hoffe das hilft. :-)


Hallo, können wir die aktuelle Sortierreihenfolge über die toolbar.phtml-Datei ändern?
Jordy S Chemparathy

In meinem Fall zeigt eine Kategorie zuerst neue Produkte;
Jordy S Chemparathy

3

Die folgende XML-Datei hat in CE 1.8 für mich funktioniert:

<layout>
    <catalog_category_default>
      <reference name="product_list_toolbar">
          <action method="setDefaultDirection"><string>asc</string></action>
          <action method="setDefaultOrder"><string>price</string></action>
      </reference>
    </catalog_category_default>

    <catalog_category_layered>
      <reference name="product_list_toolbar">
        <action method="setDefaultDirection"><string>asc</string></action>
        <action method="setDefaultOrder"><string>price</string></action>
      </reference>
    </catalog_category_layered>

    <catalogsearch_result_index>
      <reference name="search_result_list">
        <action method="setDefaultDirection"><string>asc</string></action>
        <action method="setDefaultOrder"><string>price</string></action>
      </reference>
    </catalogsearch_result_index>
    <catalogsearch_advanced_result>
      <reference name="search_result_list">
        <action method="setDefaultDirection"><string>asc</string></action>
        <action method="setDefaultOrder"><string>price</string></action>
      </reference>
    </catalogsearch_advanced_result>
</layout>

Dachte, ich würde posten, da die beiden oben genannten Lösungen in Magento 1.8 (Community) nicht für mich funktionierten.

'setDefaultOrder' kann jeden Attributcode annehmen, den ich denke, und ist nicht erforderlich, wenn Sie nur die Standardeinstellung von admin verwenden möchten.

Hoffe, es ist nützlich für jemanden.


1

Gehen Sie zu / app / code / core / Mage / Catalog / Model / path und fügen Sie den folgenden Code in Product.php ein

public function getRelatedProductCollection()
    {
$collection = $this->getLinkInstance()->useRelatedLinks()
        ->getProductCollection()
        ->setIsStrongMode();
    $collection->setProduct($this);
    $collection->setOrder('price', 'DESC');
    return $collection;
    }

Sie können dies auch für das Gewicht verwenden. Schreiben Sie einfach "Gewicht" anstelle von "Preis". Zum Aufsteigen schreiben Sie einfach 'ASC' anstelle von 'DESC'.


Ändern Sie niemals die Kerndateien.
func0der
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.