Làm thế nào để liệt kê các sản phẩm theo thứ tự giảm dần?


18

Điều này có vẻ đơn giản nhưng đang chứng minh điều khác - tôi chỉ muốn liệt kê tất cả các sản phẩm trong cửa hàng của tôi từ cao -> thấp

Để làm như vậy, tôi đã đi đến:

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

Bây giờ điều này sắp xếp mọi sản phẩm từ thấp đến cao cho tất cả các sản phẩm - nhưng dường như không có cách nào để chọn thứ tự tăng dần so với giảm dần.

Có cái gì đó trong khu vực quản trị tôi đang xem hoặc tôi phải sửa đổi một tệp để làm điều này?


Nếu tôi hiểu chính xác lời giải thích của bạn, bạn chỉ cần nhấp lại vào pricecột để sắp xếp các sản phẩm từ cao xuống thấp .
Mr_Green

Bạn có thể cải thiện việc sắp xếp sản phẩm của mình bằng cách sử dụng tập lệnh này fmeaddons.com/magento/iêu

Câu trả lời:


42

Bạn không thể thay đổi hướng đặt hàng mặc định cho danh sách sản phẩm từ cấu hình .

Tuy nhiên, bạn có thể thay đổi hướng từ bố cục XML .

Dưới đây là một vài ví dụ mà bạn có thể đặt trong tệp XML bố trí của mình, ví dụ 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>

Hơn nữa, bạn có thể thêm XML bố cục dưới dạng Thiết kế tùy chỉnh của danh mục của mình trong phần phụ trợ . Cài đặt này sẽ ghi đè lên những gì bạn đã đặt trong tệp XML:

Đặt hướng đặt hàng mặc định bằng cách sử dụng XML thiết kế tùy chỉnh


6

Câu hỏi được gắn thẻ CE 1.7.0.2 nhưng giải pháp này hữu ích cho những người trên 1.9.1.1 vì vậy tôi đang thêm nó vào đây.

Chúng tôi đã có một vấn đề ngược lại khi chúng tôi cần hiển thị các sản phẩm rẻ nhất trước tiên khi được sắp xếp theo Giá. Đối với mối quan tâm đầu tiên của OP, điều này không áp dụng vì trong Magento CE 1.9, nó đã được mặc định giảm dần nên điều này thực sự không cần thiết. Mối quan tâm thứ hai, đối với cách chọn tăng dần so với giảm dần, có thể được thực hiện thông qua tệp XML hoặc Cập nhật bố cục tùy chỉnh. Thứ hai là giải pháp ưa thích trong hầu hết các trường hợp và hầu hết mọi người sẽ tránh được rắc rối của FTP khi tải lên tệp XML để cập nhật cài đặt.

Đây là giao diện trong Danh mục> Quản lý Danh mục> Danh mục > Thiết kế tùy chỉnh> Cập nhật bố cục tùy chỉnh :

Hiển thị sản phẩm rẻ nhất trước, KHÔNG đắt nhất Đây là mã:

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

Để chọn tăng dần so với giảm dần, chỉ cần thay đổi asc thành desc .

Như một tùy chọn, bạn cũng có thể thay đổi giá thành sắp xếp mà bạn cần. Bạn có thể xóa nó để nó sẽ mặc định thành asc trên bất kỳ tùy chọn Sắp xếp danh sách sản phẩm nào được thiết lập làm mặc định.


3

Các giải pháp ở trên dường như không tạo ra sự khác biệt với CE 1.8, vì vậy tôi đã phải giải quyết vấn đề này bằng cách ghi đè chức năng mô hình danh mục trong mã / 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;
}

Hi vọng điêu nay co ich. :-)


Xin chào, chúng tôi có thể thay đổi thứ tự sắp xếp hiện tại thông qua tập tin thanh công cụ không?
Jordy S Hóa học

Trong trường hợp của tôi, một danh mục hiển thị các sản phẩm mới đầu tiên;
Jordy S Hóa trị

3

Xml sau đây hoạt động với tôi trong 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>

Tôi nghĩ rằng tôi đã đăng bài vì cả hai giải pháp trên đều không phù hợp với tôi trong Magento 1.8 (Cộng đồng).

'SetDefaultOrder' có thể lấy bất kỳ mã thuộc tính nào tôi nghĩ và không bắt buộc nếu bạn chỉ muốn sử dụng mặc định từ quản trị viên.

Hy vọng nó hữu ích cho ai đó.


1

Đi tới / app / code / core / Mage / Catalog / Model / path và thêm mã dưới đây vào Product.php

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

Bạn cũng có thể sử dụng điều này cho trọng lượng. Chỉ cần viết 'trọng lượng' thay cho 'giá'. Để tăng dần, chỉ cần viết 'ASC' thay cho 'DESC'.


không bao giờ thay đổi tập tin cốt lõi.
func0der
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.