首页 文章

Magento2获得产品系列

提问于
浏览
2

我试图为所有(实际过滤的列表,但这是不相关的)产品获得 store view specific 产品属性值,如下所示:

<?php

/* @var \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $collectionFactory */
$collection = $collectionFactory->create()->setStoreId(3)->load();

foreach ($collection as $product) {
    var_dump($product->getSku());
    var_dump($product->getName());
}

SKU按预期返回(因为它是一般的)但产品名称不是 - 而是返回 NULL .

它在adminhtml产品编辑controller中使用builder正常工作 . 唯一的区别是编辑控制器与 Model\Product 模型一起工作;由于某种原因,集合与 Model\Product\Interceptor 一起使用 . 尝试使用 Model\ProductFactory (这是在编辑控制器中完成的方式)在循环中加载每个产品 - 这样做 $product->getName() 返回相应的值(但是我无法获得其他相关的产品属性) . 当然在环路中再次装载产品是错误的 .

那么 question :对于给定的商店视图,检索产品和获取产品属性(描述,重量等)值的预期方式是什么?

1 回答

  • 7
    <?php
    
    $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
    
    $productCollection = $objectManager->create('Magento\Catalog\Model\ResourceModel\Product\CollectionFactory');
    
    $collection = $productCollection->create()
                ->addAttributeToSelect('*')
                ->load();
    
    foreach ($collection as $product){
        echo 'Name  =  '.$product->getName().'<br>';
    }  
    
    ?>
    

相关问题