내림차순으로 제품을 나열하는 방법은 무엇입니까?


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 파일에서 설정 한 내용을 덮어 씁니다.

Custom Design XML을 사용하여 기본 주문 방향 설정


6

질문은 CE 1.7.0.2로 태그되어 있지만이 솔루션은 1.9.1.1의 사람들에게 유용하므로 여기에 추가하겠습니다.

가격별로 정렬 할 때 가장 저렴한 제품을 먼저 표시해야하는 반대 문제가있었습니다. OP의 첫 번째 관심사 인 경우 Magento CE 1.9에서는 이미 기본적으로 내림차순이므로 실제로 필요하지 않기 때문에 적용되지 않습니다. 두 번째 관심사는 오름차순과 내림차순을 선택하는 방법에 대해 XML 파일 또는 사용자 정의 레이아웃 업데이트를 통해 수행 할 수 있습니다. 후자는 대부분의 경우 선호되는 솔루션이며 대부분의 사람들은 설정을 업데이트하기 위해 XML 파일을 업로드하는 번거 로움을 피할 수 있습니다.

카탈로그> 카테고리 관리> 카테고리 > 사용자 정의 디자인> 사용자 정의 레이아웃 업데이트 에서 다음과 같이 표시됩니다 .

가장 비싸지 않은 가장 저렴한 제품을 먼저 표시 코드는 다음과 같습니다.

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

오름차순 대 내림차순을 선택하려면 ascdesc로 변경하십시오 .

옵션으로 가격 을 필요한 정렬로 변경할 수도 있습니다 . 기본값 으로 설정된 제품 목록 정렬 기준 옵션에서 기본값이 asc 가되도록 제거 할 수 있습니다 .


3

위의 솔루션은 CE 1.8과 차이가없는 것처럼 보이므로 코드 / 로컬 / ... / 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 / 경로로 이동하여 Product.php에 아래 코드를 추가하십시오.

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

체중에도 사용할 수 있습니다. '가격'대신 '무게'를 쓰십시오. 오름차순으로 'DESC'대신 'ASC'를 쓰십시오.


핵심 파일을 변경하지 마십시오.
func0der
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.