Получить Produest по идентификаторам категории, переданные в качестве параметра запроса

magento.stackexchange https://magento.stackexchange.com//questions/62992

  •  12-12-2019
  •  | 
  •  

Вопрос

Я хочу использовать URL http://mydomain.test/name.html? Cat= 9,10,40 Мне нужно получить все продукты из категории «название категории» и категории с IDS 9, 10 и 40.

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

Это было полезно?

Решение

Если вы хотите, чтобы все продукты для категории 9, вы можете сделать это:

$category_id = 9;
$category = Mage::getModel('catalog/category')->load($category_id);
$products = Mage::getResourceModel('catalog/product_collection')
        ->setStoreId(Mage::app()->getStore()->getId())
        ->addCategoryFilter($category);
.

Вы можете сделать это для других категорий.

Чтобы распечатать продукты, которые вы можете сделать что-то подобное:

foreach ($products as $_product) { ?>
    <a href="<?php echo $_product->getProductUrl() ?>">
        <img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(200); ?>" width="200" height="200" alt="" />
    </a>
    <a href="<?php echo $_product->getProductUrl(); ?>">
        <?php echo $_product->getName(); ?>
    </a>
<?php } ?>
.

Если вы хотите, чтобы список попробовал что-то подобное:

$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(
        array('finset' => '9'),
        array('finset' => '10'),
        array('finset' => '40')
    )
    ->addAttributeToSort('created_at', 'desc');
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top