Как программно упорядочить заказанные товары по алфавиту?

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Aladdin
  • Группа: Пользователь
  • Сообщений: 4
  • Регистрация: 27.02.2012

27.02.2012 10:30

У продуктов есть аттрибут, скажем, Vendor. Текстовое поле.
Я могу отсортировать products через addAttributeToSort.
Но у Quote Items такой возможности нет.
Как можно решить эту проблему?

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

27.02.2012 10:47

Такие задачи решаются стандартно.
Перед загрузкой коллекции (в вашем случае - Mage_Sales_Model_Resource_Quote_Item_Collection) указываете коллекции добавить к элементам колллекции при их загрузке требуемое вам свойство и задаёте упорядочивание по этому свойству.

#3 Aladdin
  • Группа: Пользователь
  • Сообщений: 4
  • Регистрация: 27.02.2012

27.02.2012 15:10

Спасибо за быстрый ответ.

У меня в итоге получился такой код:


class Mage_Sales_Model_Resource_Quote_Item_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
{
public function _initSelect()
{
parent::_initSelect();
$this->getSelect()->join(
array('link_table' => $this->getTable('catalog/product')),
'link_table.entity_id = main_table.product_id',
array('sku'));
return $this;
}


В этом фрагменте я "зацепил" таблицу продуктов.
Дальше мне надо подцепить атрибут продукта с название "vendor"?
Я на правильном пути?

Может есть у кого-нибудь подобный код чтобы не изобретать колесо?

#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

27.02.2012 15:18

Magento использует модель хранения EAV, поэтому свойства товара хранятся вовсе не в таблице catalog/product.
Посмотрите, как добавляются свойства товаров в коллекцию товаров.

Поделиться темой: