Magento возвращает список категорий из коллекции

0

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

Наш магазин имеет категории для продуктов, например, "фары", "противотуманные фары" и т.д.

Я создал новые категории для каждой модели автомобиля и модели, например "Audi"> "Audi A3". Из этих подкатегорий я загружу коллекцию продуктов, которые принадлежат к этой конкретной марке и модели, поэтому make = "audi" model = "a3".

Следующий код загружает коллекцию продуктов для каждой марки и модели.

<?php
// get current category name
$_catname = Mage::getSingleton('catalog/layer')->getCurrentCategory()->getName();
// Instantiate a category collection object
$_products = Mage::getModel('catalog/product')->getCollection();
// Select which fields to load into the category
// select fields to load
$_products->addAttributeToSelect('name');
$_products->addAttributeToSelect('sku');
$_products->addAttributeToSelect('model');
$_products->addAttributeToSelect('small_image');
$_products->addAttributeToFilter('model',$_catname);

// Load the collection
$_products->load();

foreach($_products as $product){
echo 'Name:'.$product->name.' sku:'.$product->sku.' Model:'.$product-    >model.;
}

?> 

Это отображает список всех продуктов нашего магазина, у которых есть модель, которая равна названию категории. Итак, для Audi A3 он возвращает список продуктов с моделью = "a3"

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

Поэтому продукты могут существовать в разных категориях. Например, коллекция показывает все продукты, относящиеся к "Audi A3". Это может включать в себя фару, противотуманную фару и задний фонарь. Все 3 продукта существуют в своих отдельных категориях, но загружаются в коллекцию для новой категории "Audi A3".

Я хотел бы получить список категорий, в которых существуют эти продукты.

Возможно, это невозможно, поскольку коллекция загружается в новую категорию, и это то, о чем я не уверен.

  • 1
    Здравствуйте, Фрэнк, не могли бы вы объяснить, какой тип результата вы хотите получить из коллекции продукта? Потому что я не могу получить ваш вопрос?
  • 0
    Я хотел бы список категорий, к которым принадлежат продукты в коллекции. Например, коллекции будут возвращать продукты для «Audi A3». Эта коллекция содержит фары, задние фонари и т. Д., Которые все относятся к своей категории. Я хотел бы список категорий, которые существуют из возвращенной коллекции.
Теги:
collections
magento
product

2 ответа

1

Надеюсь у тебя все хорошо.

Для получения продукта конкретной категории

$categoryIds = array(2,4);//category id

$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))

Получить продукт для определенного идентификатора продукта

$productids = array(52,62);//product ids
$collection = Mage::getResourceModel('catalog/product_collection');
$collection->addFieldToFilter('entity_id',array( 'in' => $productids));

Надеюсь, это сделает ваш день!

Приветствия !!! :П :)

0

Вам нужно пройти через коллекцию и сделать что-то вроде:

$categories = array();
foreach ($_products as $_product){
   $categoryIds = $_product->getCategoryIds();
   foreach ($categoryIds as $categoryId){
       $categories[]=$categoryId;
   }
}
$categoriesIds = array_unique($categories);

Я не тестировал, но считаю, что он работает без или с некоторыми изменениями.

  • 0
    опять это просто возвращает значение «массив». Странный?
  • 0
    если вы используете плоский каталог и добавили товары без переиндексации, это может произойти. Вы также можете проверить, установлена ли категория для продукта и магазина, в котором вы его запускаете. если вы импортируете свои продукты с помощью сценария, может случиться так, что они будут затронуты только в хранилище администратора ... и многими другими предостережениями :), не стесняйтесь комментировать или редактировать исходное сообщение с дополнительной информацией.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню