Пользовательский фильтр атрибутов от OPTION_ID, а не по метке

magento.stackexchange https://magento.stackexchange.com/questions/12302

  •  16-10-2019
  •  | 
  •  

Вопрос

У меня очень странная проблема. Я создал пользовательский атрибут с именем "taille_ecran", который означает на английском «размер экрана». Метки этого атрибута - это цифры, такие как 1,2, 1,6, 2, 5, 6 и т. Д.

Когда я пытаюсь добавить пользовательский фильтр, как это:

$_productCollection->addAttributeToSelect('taille_ecran');
$_productCollection->addFieldToFilter(array(
    array('attribute'=>'taille_ecran','lteq'=>$_GET['max_size']),
));

Фильтры фильтры по опционе_ид Thoses MABLES в «TAILL_ECRAN» вместо значений метки. На самом деле, вот идентификатор моих ярлыков:

31 => 1,2 41 => 5 и т. Д. ...

Когда я попытался получить этикетки «lteq» до 7 лет, результат нет, и когда я попробую 35, я получаю 1 результат, который составляет 1,2.

Я также пытаюсь распечатать это значение в моем списке продуктов:

echo $_product->getTailleEcran();

// print 31 when it's for 1.2...

Мне очень трудно ясно объяснить, что происходит. У меня нет этой проблемы с другим атрибутом.

Заранее спасибо за помощь !

Это было полезно?

Решение 3

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

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

Надеюсь, это поможет!

Другие советы

Попробуй это:

$attribute = Mage::getSingleton('catalog/config')->getAttribute(Mage_Catalog_Model_Product::ENTITY, 'taille_ecran');
$source = $attribute->getSource();
$optionId = $source->getOptionId($_GET['max_size']);
$_productCollection->addAttributeToFilter('taille_ecran', array('lteq'=>$optionId));

То, чего вы хотите достичь, не поддерживается Magento. Опционные фильтры основаны на option id, это означает, что вы не в состоянии фильтровать по значению.

Если вы хотите это, вы должны создать свой собственный атрибут, добавьте его как decimal и иметь свою собственную модель источника с value = key, так что у вас все еще есть select В бэкэнде, но вы можете отфильтровать по значению.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top