2016-01-20 2 views
1

Как получить всю информацию о продукте по идентификатору продукта в magento2? Я хочу отображать отдельные детали продукта с изображением на главной странице. Любая помощь будет оценена по достоинству.Как получить информацию о продукте с идентификатора продукта в magento2 или magento2.0?

ответ

0

Попробуйте ввести код. Это может вам помочь.

<?php 
    $productId = 10; 
    $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); 
    $currentproduct = $objectManager->create('Magento\Catalog\Model\Product')->load($productId); 
?> 
+0

Вы не должны использовать диспетчер объектов, кроме вас действительно есть причины для этого. Лучше использовать Injection Dependency, см. Документация: http://devdocs.magento.com/guides/v2.0/extension-dev-guide/depend-inj.html – bpoiss

+0

Вы абсолютно правы. Thanx для драгоценного ответа. –

+0

Как получить идентификатор продукта динамически без статических значений –

2

Для этой цели лучше использовать Service Layer в Magento 2.

protected $_productRepository; 

public function __construct(
    ... 
    ... 
    \Magento\Catalog\Model\ProductRepository $productRepository, 
    ... 
) 
{ 
    $this->_productRepository = $productRepository; 
    ... 
    ... 
} 

public function getProductById($id) 
{ 
    return $this->_productRepository->getById($id); 
} 
0
use Magento\Catalog\Model\ProductFactory; 
/** 
* @var ProductFactory 
*/ 
protected $_modelProductFactory; 
public function __construct(
    ...  
    ProductFactory $modelProductFactory, 
    ... 
) 
{   
    $this->_modelProductFactory = $modelProductFactory; 
    ... 
} 

public function getProductInformation($productId) 
{ 
    return $this->_modelProductFactory->create()->load($productId); 
} 
0

Если вы wan't, чтобы получить только несколько атрибутов о продукте и хотите, чтобы избежать нагрузки продукт, вы можете сделать это с помощью коллекции. Просто впрыснуть класс \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory так:

public function __construct(
    Context = $context, 
    //... 
    \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $collectionFactory, 
    //... 
    array $data = [] 
) { 
    $this->_collection = $collectionFactory(); 
    parent::__construct($context, $data); 
} 

, а затем создать простую коллекцию так:

$productID = 10; 
$product = $this->_collection 
    ->create() 
    ->addAttributeToSelect(['some_attribute']) 
    ->addAttributeToFilter('entity_id', $productID) 
    ->getFirstItem(); 
return $product->getSomeAttribute();