Example #1
0
 /**
  * @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);
     }
 }