วิธีการแสดงรายการสินค้าจากมากไปน้อย


18

สิ่งนี้ดูเรียบง่าย แต่เป็นการพิสูจน์อย่างอื่น - ฉันแค่ต้องการแสดงรายการผลิตภัณฑ์ทั้งหมดในร้านของฉันจากสูง -> ต่ำ

เมื่อต้องการทำเช่นนั้นฉันไปที่:

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

ตอนนี้จะเรียงลำดับทุกผลิตภัณฑ์จากต่ำไปสูงสำหรับผลิตภัณฑ์ทั้งหมด - แต่ดูเหมือนจะไม่มีวิธีการเลือกจากน้อยไปมากเทียบกับลำดับจากมากไปน้อย

มีบางสิ่งในพื้นที่ของผู้ดูแลระบบที่ฉันมองเห็นหรือฉันต้องแก้ไขไฟล์เพื่อทำสิ่งนี้หรือไม่?


ถ้าผมเข้าใจคำอธิบายที่ถูกต้องแล้วคุณก็ควรจะคลิกpriceคอลัมน์อีกครั้งในการจัดเรียงสินค้าสูงไปต่ำ
Mr_Green

คุณสามารถปรับปรุงการจัดเรียงผลิตภัณฑ์ของคุณโดยใช้สคริปต์นี้fmeaddons.com/magento/ …

คำตอบ:


42

คุณไม่สามารถเปลี่ยนทิศทางเพื่อเริ่มต้นสำหรับรายการสินค้าจากการกำหนดค่า

คุณสามารถแต่เปลี่ยนทิศทางจากรูปแบบ XML

นี่เป็นตัวอย่างไม่กี่ที่คุณสามารถวางไว้ในไฟล์ XML รูปแบบของคุณเช่น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>

นอกจากนี้คุณสามารถเพิ่มรูปแบบ XML เป็นออกแบบที่กำหนดเองของหมวดหมู่ของคุณในแบ็กเอนด์ การตั้งค่านี้จะเขียนทับสิ่งที่คุณตั้งไว้ในไฟล์ XML:

กำหนดทิศทางการสั่งซื้อเริ่มต้นโดยใช้ XML ออกแบบที่กำหนดเอง


6

คำถามถูกแท็ก CE 1.7.0.2 แต่โซลูชันนี้มีประโยชน์สำหรับผู้ใช้บน 1.9.1.1 ดังนั้นฉันจะเพิ่มที่นี่

เรามีปัญหาตรงข้ามที่เราต้องแสดงผลิตภัณฑ์ที่ถูกที่สุดก่อนเมื่อเรียงตามราคา สำหรับความกังวลแรกของ OP สิ่งนี้ไม่ได้ใช้เพราะใน Magento CE 1.9 มันมีค่าเริ่มต้นที่จะลดระดับลงดังนั้นจึงไม่จำเป็นต้องใช้จริง ข้อกังวลประการที่สองสำหรับวิธีการเลือกจากน้อยไปมากเทียบกับมากไปหาน้อยสามารถทำได้ผ่านไฟล์ XML หรือการอัพเดตเลย์เอาต์ที่กำหนดเอง หลังเป็นโซลูชันที่ต้องการในกรณีส่วนใหญ่และคนส่วนใหญ่จะหลีกเลี่ยงความยุ่งยากในการ FTP เพื่ออัปโหลดไฟล์ XML เพื่ออัปเดตการตั้งค่า

นี่คือลักษณะที่ปรากฏในแค็ตตาล็อก> จัดการหมวดหมู่> หมวดหมู่ > การออกแบบที่กำหนดเอง> การปรับปรุงเค้าโครงที่กำหนดเอง :

แสดงผลิตภัณฑ์ที่ถูกที่สุดก่อนไม่แพงที่สุด นี่คือรหัส:

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

ในการเลือกจากน้อยไปมากจากมากไปน้อย VS เพียงการเปลี่ยนแปลงเก่าก่อนที่จะเรียง

คุณสามารถเปลี่ยนราคาเป็นการจัดเรียงตามที่คุณต้องการ คุณสามารถลบมันเพื่อให้มันจะเริ่มต้นกับเก่าก่อนในรายการผลิตภัณฑ์ใด ๆ จัดเรียงตามตัวเลือกที่ตั้งค่าไว้เป็นค่าเริ่มต้น


3

การแก้ปัญหาข้างต้นดูเหมือนจะไม่ได้สร้างความแตกต่างกับ CE 1.8 ดังนั้นฉันจึงต้องแก้ไขปัญหานี้โดยการแทนที่ฟังก์ชั่นโมเดลแคตตาล็อกในรหัส / local /.../ Catalog / Model / Category.php

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

หวังว่านี่จะช่วยได้ :-)


สวัสดีเราสามารถเปลี่ยนลำดับการจัดเรียงปัจจุบันผ่านไฟล์ toolbar.phtml ได้หรือไม่?
Jordy S Chemparathy

ในกรณีของฉันหมวดหมู่หนึ่งแสดงผลิตภัณฑ์ใหม่ก่อน
Jordy S Chemparathy

3

xml ต่อไปนี้ใช้ได้กับฉันใน CE 1.8:

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

คิดว่าฉันจะโพสต์เนื่องจากโซลูชันทั้งสองข้างต้นไม่ได้ผลสำหรับฉันใน Magento 1.8 (ชุมชน)

'setDefaultOrder' สามารถรับรหัสแอททริบิวต์ที่ฉันคิดว่าไม่จำเป็นถ้าคุณต้องการใช้ค่าเริ่มต้นจากผู้ดูแลระบบ

หวังว่ามันจะเป็นประโยชน์กับใครบางคน


1

ไปที่ / app / code / core / Mage / Catalog / Model / path และเพิ่มรหัสด้านล่างใน Product.php

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

คุณสามารถใช้สิ่งนี้กับน้ำหนักได้ด้วย เพียงเขียน 'น้ำหนัก' แทน 'ราคา' สำหรับการเพิ่มขึ้นเพียงเขียน 'ASC' แทน 'DESC'


ไม่เคยเปลี่ยนไฟล์หลัก
func0der
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.