Ürünleri azalan sırada nasıl listeleyebilirim?


18

Bu basit görünüyordu ama aksi kanıtlıyor - sadece mağazamdaki tüm ürünleri listeden listelemek istiyorum -> düşük

Bunu yapmak için:

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

Şimdi bu, her ürünü tüm ürünler için düşükten yükseğe doğru sıralar - ancak artan ve azalan düzen arasında seçim yapmanın bir yolu yoktur.

Yönetici alanında göz ardı ettiğim bir şey var mı veya bunu yapmak için bir dosyayı değiştirmek zorunda mıyım?


Ben doğru açıklama anlaşılan, sadece tıklamanız gerekmektedir priceürünlerini sıralamak için tekrar sütunu yüksek için düşük .
Mr_Green

Bu komut dosyasını kullanarak ürün sıralamalarını geliştirebilirsiniz fmeaddons.com/magento/…

Yanıtlar:


42

Sen olamaz ürün listeleri için varsayılan düzen yönünü değiştirmek yapılandırmasından .

Sen olabilir ancak yönünü değiştirmek düzen XML .

Düzen XML dosyanıza koyabileceğiniz birkaç örnek aşağıda verilmiştir 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>

Ayrıca arka uçta kategorinizi Özel Tasarım olarak düzen XML'si ekleyebilirsiniz . Bu ayar, XML dosyasında belirlediğiniz ayarların üzerine yazacaktır:

Özel Tasarım XML kullanarak varsayılan sipariş yönünü ayarlama


6

Soru CE 1.7.0.2 olarak etiketlenmiştir, ancak bu çözüm 1.9.1.1 üzerinde olanlar için yararlıdır, bu yüzden buraya ekliyorum.

Fiyat ile sıralandığında en ucuz ürünleri ilk göstermemiz gereken tam tersi bir sorun yaşadık. OP'nin ilk endişesi için bu geçerli değildir çünkü Magento CE 1.9'da zaten alçalma varsayılanıdır, bu aslında gerekli değildir. İkinci endişe, artan veya azalan seçmenin bir yolu için, bir XML dosyası veya Özel Düzen Güncellemesi aracılığıyla yapılabilir. İkincisi çoğu durumda tercih edilen çözümdür ve çoğu insan, ayarları güncellemek için bir XML dosyası yüklemek için FTP'nin zorlanmasından kaçınır.

Katalog> Kategorileri Yönet> Kategori > Özel Tasarım> Özel Düzen Güncellemesinde şu şekilde görünür :

En ucuz ürünleri önce gösterir, en pahalı değil İşte kod:

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

Artan veya azalanları seçmek için asc'yi desc olarak değiştirin .

Bir seçenek olarak, fiyatı ihtiyacınız olan sıralamaya göre de değiştirebilirsiniz . O varsayılan geçecek biçimde kaldırabilirsiniz asc sırala varsayılan olarak ayarlandı seçeneği ile herhangi Ürünler Listesindeki üzerinde.


3

Yukarıdaki çözümler CE 1.8 ile bir fark yaratmadı, bu yüzden kod / local /.../ Katalog / Model / Category.php katalog modeli işlevselliğini geçersiz kılarak bu sorunu çözmek zorunda kaldı

/**
 * 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;
}

Bu yardımcı olur umarım. :-)


Merhaba, geçerli sıralama düzenini toolbar.phtml dosyası aracılığıyla değiştirebilir miyiz?
Jordy S Chemparathy

Benim durumumda bir kategori önce yeni ürünleri gösteriyor;
Jordy S Chemparathy

3

Aşağıdaki xml benim için CE 1.8'de çalıştı:

<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>

Yukarıdaki çözümlerin Magento 1.8'de (Topluluk) benim için çalışmadığından yayınlayacağımı düşündüm.

'setDefaultOrder' bence herhangi bir öznitelik kodunu alabilir ve sadece admin'den varsayılanı kullanmak istiyorsanız gerekli değildir.

Umarım birisi için yararlıdır.


1

/ App / code / core / Mage / Katalog / Model / yola gidin ve Product.php dosyasına aşağıdaki kodu ekleyin

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

Bunu ağırlık için de kullanabilirsiniz. 'Fiyat' yerine 'ağırlık' yazmanız yeterlidir. Artan için 'DESC' yerine 'ASC' yazmanız yeterlidir.


Asla çekirdek dosyaları değiştirmeyin.
func0der
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.