コード例 #1
0
ファイル: LayerPlugin.php プロジェクト: smile-sa/elasticsuite
 /**
  * Apply sort params to the collection.
  *
  * @param \Magento\Catalog\Model\Layer                                       $layer      Catalog / search layer.
  * @param \Magento\Catalog\Model\ResourceModel\Collection\AbstractCollection $collection Product collection.
  *
  * @return $this
  */
 private function setSortParams(\Magento\Catalog\Model\Layer $layer, \Magento\Catalog\Model\ResourceModel\Collection\AbstractCollection $collection)
 {
     $searchQuery = $this->queryFactory->get();
     if (!$searchQuery->getQueryText() && $layer->getCurrentCategory()) {
         $categoryId = $layer->getCurrentCategory()->getId();
         $collection->addSortFilterParameters('position', 'category.position', 'category', ['category.category_id' => $categoryId]);
     }
     return $this;
 }
コード例 #2
0
ファイル: Stock.php プロジェクト: pradeep-wagento/magento2
 /**
  * Add stock status information to products
  *
  * @param AbstractCollection $productCollection
  * @return void
  */
 public function addStockStatusToProducts(AbstractCollection $productCollection)
 {
     $websiteId = $this->storeManager->getStore($productCollection->getStoreId())->getWebsiteId();
     foreach ($productCollection as $product) {
         $productId = $product->getId();
         $stockStatus = $this->stockRegistryProvider->getStockStatus($productId, $websiteId);
         $status = $stockStatus->getStockStatus();
         $product->setIsSalable($status);
     }
 }
コード例 #3
0
ファイル: Collection.php プロジェクト: Doability/magento2dev
 /**
  * Set Order field
  *
  * @param string $attribute
  * @param string $dir
  * @return $this
  */
 public function setOrder($attribute, $dir = Select::SQL_DESC)
 {
     if ($attribute == 'price') {
         $this->addAttributeToSort($attribute, $dir);
     } else {
         parent::setOrder($attribute, $dir);
     }
     return $this;
 }
コード例 #4
0
 /**
  * Load collection
  *
  * @param bool $printQuery
  * @param bool $logQuery
  * @return $this
  */
 public function load($printQuery = false, $logQuery = false)
 {
     if ($this->isLoaded()) {
         return $this;
     }
     if ($this->_loadWithProductCount) {
         $this->addAttributeToSelect('all_children');
         $this->addAttributeToSelect('is_anchor');
     }
     parent::load($printQuery, $logQuery);
     if ($this->_loadWithProductCount) {
         $this->_loadProductCount();
     }
     return $this;
 }