/** * @param \Magento\Catalog\Model\Category $category * @param int $storeId * @return $this */ public function getProductCollection(\Magento\Catalog\Model\Category $category, $storeId) { /** @var $layer \Magento\Catalog\Model\Layer */ $layer = $this->catalogLayer->setStore($storeId); $collection = $category->getResourceCollection(); $collection->addAttributeToSelect('url_key')->addAttributeToSelect('name')->addAttributeToSelect('is_anchor')->addAttributeToFilter('is_active', 1)->addIdFilter($category->getChildren())->load(); /** @var $productCollection \Magento\Catalog\Model\ResourceModel\Product\Collection */ $productCollection = $this->collectionFactory->create(); $currentCategory = $layer->setCurrentCategory($category); $layer->prepareProductCollection($productCollection); $productCollection->addCountToCategories($collection); $category->getProductCollection()->setStoreId($storeId); $products = $currentCategory->getProductCollection()->addAttributeToSort('updated_at', 'desc')->setVisibility($this->visibility->getVisibleInCatalogIds())->setCurPage(1)->setPageSize(50); return $products; }
/** * @param \Magento\Catalog\Model\Category $category * @param boolean $recursive * @return \Magento\Catalog\Model\Category[] */ public function getChildren(Category $category, $recursive = false) { return $category->isObjectNew() ? [] : $category->getResourceCollection()->addAttributeToSelect('url_path')->addAttributeToSelect('url_key')->addAttributeToSelect('name')->addIdFilter($this->getChildrenIds($category, $recursive)); }
/** * {@inheritdoc} */ public function getResourceCollection() { $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getResourceCollection'); if (!$pluginInfo) { return parent::getResourceCollection(); } else { return $this->___callPlugins('getResourceCollection', func_get_args(), $pluginInfo); } }