2011-11-30 38 views
6

Tôi đang tạo mẫu để hiển thị các sản phẩm nổi bật trên trang chủ và tôi muốn kiểm soát thứ tự của sản phẩm.Magento: Sắp xếp bộ sưu tập sản phẩm

Đây là những gì tôi đang sử dụng tại thời điểm này để lấy một bộ sưu tập sản phẩm dựa vào phân loại:

<?php 
    $_productCollection = $this->getLoadedProductCollection(); 
?> 

Không phân loại cụ thể nào cả.

Khi tôi đang đi để sắp xếp các sản phẩm, tôi mong đợi này để làm việc:

<?php 
    $_productCollection = $this->getLoadedProductCollection()->addAttributeToSort('name', 'ASC'); 
?> 

Nhưng không có sự khác biệt ở tất cả. Tôi đang làm gì sai?

Cảm ơn bạn trước!

+2

bản sao có thể có của [Magento - chỉ tải các sản phẩm có thể định cấu hình được] (http://stackoverflow.com/questions/5280392/magento-load-only-configurable-products) – clockworkgeek

+0

Không có bản quyền; câu hỏi đó là về hiệu suất, câu hỏi này là về phân loại. – Ivar

+4

Tôi không nên sử dụng thông báo "trùng lặp" mặc định, nó gây hiểu nhầm. Tôi có nghĩa là để cho thấy rằng 'getLoadedProductCollection' nhận được một bộ sưu tập đã được tải và cần phải được đặt lại trước khi bạn có thể điều chỉnh thứ tự sắp xếp (hoặc bộ lọc). – clockworkgeek

Trả lời

8

sử dụng tính năng này tôi đã thử nghiệm theo cách tương tự.

$collection = Mage::getModel('catalog/product') 
      ->getCollection() 
      ->addAttributeToSort('name', Varien_Data_Collection::SORT_ORDER_ASC); 

cho thứ tự giảm dần:

$collection = Mage::getModel('catalog/product') 
       ->getCollection() 
       ->addAttributeToSort('name', Varien_Data_Collection::SORT_ORDER_DESC); 

cho sản phẩm với thể loại của nó:

$collection = Mage::getModel('catalog/category')->load($categoryId) 
      ->getProductCollection() 
      ->addAttributeToSort('name', Varien_Data_Collection::SORT_ORDER_ASC); 

Hoặc bạn có thể tìm sự giúp đỡ thêm về magento wiki.

+0

bạn có thể sử dụng bất cứ nơi nào bạn muốn tôi có nghĩa là khi bạn đang đối phó với bất kỳ tình huống trên.] –

Các vấn đề liên quan