2015-12-14 3 views
0

У меня есть пользовательский модуль с изменением в каталог по умолчанию/RESOURCE/PRODUCT/СРАВНИТЬ/ITEM/collection.php, но линия ниже:Порядок сортировки по имени collection.php (Magento)

->order('ai.sort_order ASC');

Измените порядок позиции с позицией атрибутов, но несколько из них (около 10 атрибутов) - это всего лишь текст (а не выпадающая, выберите или цена) и не могут правильно заказывать позицию iquals на странице продукта. (мне нужно оставить страницу для сравнения продуктов в том же порядке со страницы продукта списка атрибутов)

как я могу это сделать?

ответ

1

Чтобы создать сортировать по позиции записи ниже коды после получения сбора продукта в app/design/frontend/<theme_name>/default/template/catalog/product/list.phtml

$_productCollection = new Varien_Data_Collection(); 
$sortedCollection = array(); 
foreach ($_defaultProductCollection as $key => $_product) { 
    if(!isset($sortedCollection[$positions[$_product->getId()]])){ 
     $sortedCollection[$positions[$_product->getId()]] = array(); 
    } 
    $sortedCollection[$positions[$_product->getId()]][] = $_product; 
} 
ksort($sortedCollection); 
foreach ($sortedCollection as $_products) { 
    foreach ($_products as $_product) { 
     $_productCollection->addItem($_product); 
    } 
} 

Надеется, что это будет работать для вас.

+0

что мне нужно в сравнении/item/collection.php, этот list.phtml будет сгенерирован где? в моей теме я не нашел list.phtml на странице продукта или на экране сравнения, index.php/catalog/product_compare/index/ –

+0

вы можете использовать этот код в любом месте после получения объекта productCollection. –

0

коллекции EAV работать с атрибутами, метод сортировки немного отличается здесь, а

$componentQuantityCollection->addAttributeToSort('sku', 'ASC'); 

Для не EAV коллекций используют один из следующих методов

$kitCollection->getSelect()->order('related_sku', 'DESC'); 
$kitCollection->setOrder('related_sku', 'DESC'); 

Я надеюсь, что это помочь тебе.

Смежные вопросы