Собственный сорт коллекции Magento? - PullRequest
1 голос
/ 19 апреля 2011

Вот в чем дело, у меня есть коллекция товаров, которую мне нужно отсортировать по размеру.Значения атрибутов размера: XS, S, M, L, XL.Когда я просто ставлю

addAttributeToSort('size', 'DESC')

, он сортирует их по алфавиту в порядке значений атрибутов размера (XS, XL, S, M, L).

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

Лучшее, о чем я мог подумать, - это создать какое-то новое поле выбора во время процесса выбора, которое через команду case будет иметь значения 1,2,3,4,5, в зависимости от значения размера,и сортировать по этому.Но я не знаю, как это сделать, или если это вообще возможно в Magento.

Ответы [ 2 ]

2 голосов
/ 20 апреля 2011

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

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

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

Спасибо, Джо

1 голос
/ 20 апреля 2011

Интересный вопрос. Из моего более раннего вопроса о sorting вы заметите, что Magento по умолчанию использует операторы SQL ORDER BY для сортировки. Это затруднит достижение того, что вам нужно (ИМХО) с использованием подхода addAttributeToSort().

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

Вам необходимо создать свой собственный пользовательский модуль и обновить макет xml, чтобы он указывал на новый блок, например.

<block type="navigation/dropdown" name="product_list" template="catalog/product/list_dropdown.phtml"/>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...