2010-09-24 2 views
1

В настоящее время я пытаюсь выполнить специальную функцию сортировки для страницы категории Magento.Сортировка категории Magento по атрибутам

У меня есть несколько атрибутов, которые мне нужно использовать для сортировки:

Первый атрибут с именем дизайнеров. Этот атрибут устанавливается на настраиваемом продукте.

Следующие атрибуты называются цветом и размером. Они не настроены на настраиваемый продукт, а на «простых продуктах», которые я объединяю, чтобы создать настраиваемый продукт.

$attributes_designers = $this->getRequest()->getParam('designers'); 
$attributes_colors = $this->getRequest()->getParam('color'); 
$attributes_sizes = $this->getRequest()->getParam('size'); 

$currentCategory = Mage::getModel('catalog/layer')->getCurrentCategory(); 
$_productCollection = $currentCategory->getProductCollection(); 

if(count($attributes_designers)>0 and !in_array("ALL",$attributes_designers)) {   
    $_productCollection->addAttributeToFilter('designer',$attributes_designers); 
} 
if(count($attributes_colors)>0 and !in_array("ALL",$attributes_colors)) {   
    $_productCollection->addAttributeToFilter('color',$attributes_colors); 
} 
if(count($attributes_sizes)>0 and !in_array("ALL",$attributes_sizes)) {   
    $_productCollection->addAttributeToFilter('size',$attributes_sizes); 
} 
if(isset($_GET['order'])) $_productCollection->setOrder($this->getRequest()->getParam('order'), $this->getRequest()->getParam('dir')); 

$_productCollection->load(); 

К сожалению, я не могу получить цвет и размер атрибут работать, так как они не установлены на конфигурируемый продукт, но это дети.

У кого-нибудь есть идея, как заставить это работать?

Заранее спасибо

ответ

3

две вещи:

  • Я полагаю, вы знаете это, но только, чтобы убедиться, что вы можете легко сделать любой из ваших атрибутов отсортированных путем редактирования атрибута в каталоге >> Атрибуты >> Управление атрибутами, редактирование одного и нижнего параметра называется «Используется для сортировки в товарном листинге», которое вы должны установить на «Да».
  • Как вы выяснили, Magento не хочет сортировать настраиваемый продукт по любым значениям в простых продуктах, которые были связаны с ним. Это на самом деле имеет большой смысл. Если вы пытаетесь сортировать по цвету, и у вас есть конфигурируемый продукт с двумя простыми продуктами, один из которых имеет цвет «Apple Red», а другой - с «Zealot Black», то как это будет выглядеть? Это просто не может сделать логический смысл делать то, что вы надеетесь. Он сортируется только на основе атрибутов, назначаемых настраиваемому продукту.
+0

Prattski - В настоящее время я перечисляю цвет атрибута, и затем я хочу показать все элементы в категории с цветом «Браун». Проблема заключается в том, что этот цвет определяется для дочернего элемента конфигурируемого произведения. Вы не знаете, как это решить? Спасибо – Kristian

+1

Вы можете сделать это, если вы настроите цвет как фильтрующий атрибут (фильтруемый с результатами). Magento рассмотрит все цвета простых продуктов, связанных с вашим настраиваемым продуктом. Если вы правильно настроили, вы увидите цветовой фильтр в левой части окна категории. – Prattski

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