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

[16 июля 2019 г.]    Российская сборка Magento 2.52.2
Magento 2: модули и услуги
magereport.com: составление перечня необходимых для установки заплаток SUPEE
#1 enrai
  • Группа: Пользователь
  • Сообщений: 10
  • Регистрация: 10.02.2012

25.03.2012 20:16

Здравствуйте. Я допиливаю мадженту под свои нужды. Сейчас кручусь вокруг layered navigation, делаю ей отличное от стандартного поведение (очень долго пояснять что именно, надеюсь так поймете). В общем споткнулся на addAttributeToFilter. Когда этим методом добавляю фильтрацию атрибута к простому товару, то все ок. Но когда я пытаюсь добавить этим методом атрибут потомка сгруппированного товара, то в ответ возвращается ноль строк. Подозреваю, что применение этого метода непосредственно к коллекции сгруппированных товаров ничего не возвращает, так как у сгруппированного товара нет этого атрибута, этот атрибут принадлежит потомкам сгруппированного товара.

Подскажите, пожалуйста, как можно отфильтровать сгруппированные товары по атрибуту его потомка. Заранее благодарен.

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

25.03.2012 20:20

Кого/что вы обозначили указательным местоимением «его»?

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

25.03.2012 20:23

Мне нужно применить фильтр к коллекции сгруппированных товаров, непосредственно к атрибутам потомков этих самых сгруппированных товаров.

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

25.03.2012 20:25

Что вы обозначили техническим термином «потомок товара»?

#5 enrai
  • Группа: Пользователь
  • Сообщений: 10
  • Регистрация: 10.02.2012

25.03.2012 20:32

Ок.. Есть три простых товара:
- Нож, размер лезвия 8см
- Нож, размер лезвия 10см
- Нож, размер лезвия 12см

У каждого из этих трех товаров есть атрибут "цвет".

Так же есть сборный товар "Ножи", который включает в себя все три вышеописанных товара.
Допустим мы имеем целую коллекцию подобных сборных товаров. Как мне программно получить все сборные товары, которые включают в себя ножи синего цвета?

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

25.03.2012 20:40

Надо выбрать из всех товаров магазина отвечающие требуемым критериям простые товары, а затем вызвать для множества идентификаторов этих товаров метод Mage_Catalog_Model_Product_Type_Grouped::getParentIdsByChild.

#7 enrai
  • Группа: Пользователь
  • Сообщений: 10
  • Регистрация: 10.02.2012

25.03.2012 20:46

А как быть, если у меня на всех простых товарах стоит опция "не показывать по отдельности" и эти простые товары не относятся ни к одной категории? И как это сделать не в ущерб производительности? Да и выбрать мне нужно только из определенной категории, в которой размещены сборные товары.

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

25.03.2012 20:48

Одна тема — один вопрос.

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