Magento перечисляет связанные простые продукты как настраиваемый продукт

Расскажу свою проблему на примере.

У меня есть настраиваемый продукт. Название: «тест»
И я создал 4 простых продукта разного размера. Они связаны.
Test-Small
Test-Medium
Test-Large
Test-XLarge

Я получаю все продукты с этим кодом:

$collection = Mage::getResourceModel('reports/product_collection')
        ->addAttributeToSelect('*')
        ->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id=entity_id', null, 'left')
        ->addStoreFilter()
        ->setOrder('created_at', 'desc')
        ->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds());

Я хочу эти 4 продукта как один. Со всеми атрибутами размера. Как один.

Если я добавлю в код атрибут «size=small», то «test» будет возвращен продукт.
Если я добавлю в код атрибут size=medium, снова будет возвращено test.
Если я добавлю в код атрибут size=large, снова будет возвращено test.
Если я добавлю в код атрибут size=xlarge, снова будет возвращено test.

Как я могу это сделать? Может быть, мне нужен расширенный sql, дайте мне знать, пожалуйста.


person Ibrahim Mumcu    schedule 07.04.2014    source источник


Ответы (1)


Я не совсем понимаю ваш вопрос, но вы можете отфильтровать коллекцию с помощью атрибута типа. например, type_id='configurable' или type_id='simple'.

->addAttributeToFilter('type_id', array('eq' => 'configurable'));
->addAttributeToFilter('type_id', array('eq' => 'simple'));

** РЕДАКТИРОВАТЬ следующие комментарии ниже

Итак, я думаю, что вы хотите сделать, это запустить коллекцию как есть, а затем из простого продукта узнать, что его настраивается с помощью функции

$productParentId = Mage::getResourceSingleton('каталог/product_type_configurable')->getParentIdsByChild($simpleProductId);

Функция вернет массив, и вам может понадобиться дополнительная логика, чтобы определить, какой настраиваемый продукт, но я ожидаю, что большинство магазинов работают только с одним настраиваемым продуктом для каждого простого продукта. Я использую $productParentId[0] для идентификации настраиваемых продуктов в моем магазине.

person Malachy    schedule 08.04.2014
comment
Я хочу применить атрибут размера к настраиваемому продукту. Но, как вы понимаете, его нет. (в этом примере) Итак, если я собираюсь применить атрибут размера к связанным простым продуктам, я хочу получить возвращаемый настраиваемый продукт. Я не знаю, как я могу это объяснить. @Малаки - person Ibrahim Mumcu; 08.04.2014