Magento 2:如何按商店ID过滤产品集合
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Magento 2:如何按商店ID过滤产品集合相关的知识,希望对你有一定的参考价值。
我正在尝试展示品牌特定的产品。品牌是我的属性之一,是强制性的,并附属于每个产品。
我为每个品牌在一个网站下创建了不同的商店,并为每个品牌创建了不同的URL。所以,我想为每个品牌商店展示明智的产品品牌。
那么,哪种最简单的方法来过滤产品的属性,即品牌。
答案
使用以下代码按商店ID筛选产品集合:
$objectManager = MagentoFrameworkAppObjectManager::getInstance();
$productCollectionFactory = $objectManager->get('MagentoCatalogModelResourceModelProductCollectionFactory');
$collection = $productCollectionFactory->create();
$collection->addAttributeToSelect('*')
$collection->addStoreFilter($storeid)
$collection->addAttributeToFilter('attribute_code');
另一答案
use MagentoFrameworkDataOptionSourceInterface;
class Productlist implements OptionSourceInterface{
/**
* Get products
*
* @return array
*/
public function toOptionArray(){
$objectManager = MagentoFrameworkAppObjectManager::getInstance();
$store=$objectManager->create('MagentoStoreModelStoreRepository');
$productCollectionFactory =$objectManager->create('MagentoCatalogModelProduct')->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;
}
以上是关于Magento 2:如何按商店ID过滤产品集合的主要内容,如果未能解决你的问题,请参考以下文章
过滤 Magento 集合而不是产品,使用 distinct
Magento 1.9 Multi Store不同的超级属性值