2015-05-18 2 views
0

Я создал пользовательский атрибут (его код sort_order_product) в magento, который хранит числа, такие как 1,2,3,4,5 ... Я хочу получить продукты, отсортированные в соответствии с sort_order_product, я выборку товаров с использованием запросаСортировка коллекции пурпурных изделий в соответствии с пользовательским атрибутом

$collection = Mage::getModel('catalog/product') 
      ->getCollection() 
      ->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left') 
      ->addAttributeToSelect('*') 
      ->addAttributeToFilter('category_id', array('in' => $categoryIds)) 
      ->setOrder('sort_order_product', 'ASC'); 

Но это не дает желаемого результата. Пожалуйста, дайте мне знать мою ошибку. Спасибо заранее.

ответ

0

От администратора вы можете выполнить следующие шаги:

перейти в Каталог-> Attributes-> Управление атрибутами, чем нажать на sort_order_product для редактирования и редактирования с экрана

набор Используется в листинге продукта = Да

Используется для сортировки в товарном листинге = Да

и сохраните атрибут и очистите кеш. , если требуется, чем повторная индексация данных.

Теперь фильтр коллекции, как:

$collection = Mage::getModel('catalog/product') 
     ->getCollection() 
     ->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left') 
     ->addAttributeToSelect('*') 
     ->addAttributeToFilter('category_id', array('in' => $categoryIds)) 
     ->addAttributeToSort('sort_order_product', 'ASC'); 
+0

Я сделал эти шаги, но затем также не предоставляет список продуктов в соответствии с порядком сортировки пользовательского атрибута. – user0509

+0

убедитесь, что атрибут имеет целочисленный тип в базе данных –

+0

В какой таблице хранятся пользовательские атрибуты? – user0509

0

Это работало после настройки «Input Validation для владельца магазина» на «целое число».