首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magento 2:如何通过存储ID筛选产品集合

Magento 2:如何通过存储ID筛选产品集合
EN

Stack Overflow用户
提问于 2016-11-24 17:39:58
回答 3查看 12.1K关注 0票数 0

我试图展示品牌特有的产品。品牌是我的属性之一,这是强制性的,并附在每一个产品。

我为每个品牌在一个网站下创建了不同的商店,也为每个品牌创建了不同的URL。因此,我想展示产品品牌明智的每一个品牌商店。

因此,哪一种最简单的方式来过滤产品的属性即品牌。

我使用的是Magento 2.1.2,MySQL 6,PHP7.0

EN

回答 3

Stack Overflow用户

发布于 2017-04-03 08:44:49

使用以下代码按存储ID筛选产品集合:

代码语言:javascript
复制
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();  
$productCollectionFactory = $objectManager->get('\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory');
$collection = $productCollectionFactory->create();
$collection->addAttributeToSelect('*')
$collection->addStoreFilter($storeid)
$collection->addAttributeToFilter('attribute_code');
票数 4
EN

Stack Overflow用户

发布于 2019-06-03 12:56:15

使用此代码可以通过存储id和属性代码筛选产品集合。

代码语言:javascript
复制
use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory;

protected $collectionFactory

public function __construct(CollectionFactory $collectionFactory)
{ 
  $this->collectionFactory =$collectionFactory; 
}

 public function productCollection($storeId ,$attributeCode)
 { 
  $collection = $collectionFactory->create();
  $collection->addAttributeToSelect('*')
  $collection->addStoreFilter($storeId) 
  $collection->addAttributeToFilter($attributeCode); 
  return $collection;
 }
票数 1
EN

Stack Overflow用户

发布于 2018-04-03 10:57:15

代码语言:javascript
复制
use Magento\Framework\Data\OptionSourceInterface;
class Productlist implements OptionSourceInterface{
    /**
    * Get products
    *
    * @return array
    */
    public function toOptionArray(){
        $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
        $store=$objectManager->create('\Magento\Store\Model\StoreRepository');
        $productCollectionFactory =$objectManager->create('\Magento\Catalog\Model\Product')->getCollection();
        $storeId='3';
        $productCollectionFactory->addAttributeToSelect('name');
        $rootCategoryId = $store->getById($storeId)->getRootCategoryId();
        $productCollectionFactory->addAttributeToSelect('*');
        $productCollectionFactory->addCategoriesFilter(array('eq' => $rootCategoryId));
        $options = [];
        foreach ($productCollectionFactory as $product) {
            $options[] = ['label' => $product->getName(), 'value' => $product->getId()];
        }
        return $options;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40792145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档