Magento2: Artan değil azalan fiyata göre sıralamak için varsayılan


12

Tamam, kategorilerimi fiyata göre sıraladım. Magento 2 bunu varsayılan olarak fiyat artışına ayarlar. Ama fiyatın inişe geçmesini tercih ederim.

Bunu temamda özelleştirerek catalog_category_view.xmlve bir argüman koyarak yapabileceğimden eminim product_list_toolbarama bunu tam olarak anlayamıyorum. Herhangi bir yardım?


2
mage2.pro/t/topic/1095 ve mage2.pro/t/topic/1087/2 bu iki bağlantıyı kullanın . size yardımcı olacaktır
Manashvi Birla

Yanıtlar:


24

Dosyayı kopyalayın:

satıcı / Magento / modül-katalog / görünüm / kullanıcı arayüzü / düzeni / catalog_category_view.xml

için

Uygulamanın / tasarım / kullanıcı arayüzü / {{Vender_Namespace}} / {{THEME_NAME}} / Magento_Catalog / düzeni / catalog_category_view.xml

ve temanıza ekleyin:

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="content">
            <referenceBlock name="category.products.list">
                <action method="setDefaultDirection">
                    <argument name="dir" xsi:type="string">desc</argument>
                </action>
            </referenceBlock>
        </referenceContainer>
        <move element="category.view.container" destination="content" before="-"/>
    </body>
</page>

Manashvi'nin bu işlevselliği kontrol eden dosyalar için çekirdeğin doğru yerlerine işaret ettiği bağlantılar, ancak bir çözüm sunmuyorlar. Ben sadece bu dosyadaki koda dayalı bir tahmin aldı böylece çekirdek kodu herhangi bir yerde bulamadık:

satıcı / Magento / modül-katalog / Blok / Ürün / productlist / Toolbar.php

ve diğer .xml dosyalarındaki diğer yapılandırmalarda sözdizimini kullandım.

$block->setDefaultDirection('desc')Dosyayı aramayı denedim :

satıcı / Magento / modül-katalog / görüş / kullanıcı arayüzü / templates / ürün / liste / araç çubuğu / sorter.phtml

ama bu işe yaramadı. Ben nedenini izlemedim, ama varsayılan çalıştı ayarlamak için xml kullanarak, ben sadece taşındı.


1
Sadece kısa bir soru @circlesix çözümünüz harika çalışıyor, ancak bunu sadece birkaç kategoriye uygulamak istiyorum. Yönetici panelindeki her bir kategori için ReferenceContainer bölümüne Custom Layout Update bölümüne girebileceğimi düşündüm, ancak bunun bir etkisi yok. Herhangi bir fikir?
caffeinehigh

Henüz bir çözüm bulamadım, bunu yapmanın daha iyi bir yolunu bulduğumda buraya göndereceğim.
circlesix

1
@ user1837290, yalnızca referenceContainerbelirli kategorilerinizin yöneticisinin "Düzen Güncellemesi XML" alanına başlamayı ve bitişi koyabilirsiniz . Temanızdaki sıralamayı küresel olarak geçersiz kılmadığınız sürece çalışmalıdır. İlgili: magento.stackexchange.com/q/167048/2415
Scruffy Paws

1
@circlesix sadece bir bloğa referans verirken isim niteliği sağlamanız gerekir
Miguel Felipe Guillen Calo

1
Sadece yorum yapmak ve Magento 2.3'ten itibaren hala işe yaradığını söylemek istedim, sadece benim için sorunu çözdü!
Daniel Black

5

Daha kısa versiyonu da kullanabilirsiniz. Belirli kategoriler için ayrı dosyalar kullanabilirsiniz: catalog_category_view_id_X.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
    <referenceBlock name="category.products.list">
        <action method="setDefaultDirection">
            <argument name="dir" xsi:type="string">desc</argument>
        </action>
    </referenceBlock>
</body>
</page>

Özel bir düzen dosyası yapmak istemiyorsanız, çözümü (yalnızca referans bloğunu kullanarak ve içerik içeren) kategorideki Özel XML'e de ekleyebilirsiniz.
Phil Birnie
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.