Как получить всю информацию о продукте по идентификатору продукта в magento2? Я хочу отображать отдельные детали продукта с изображением на главной странице. Любая помощь будет оценена по достоинству.Как получить информацию о продукте с идентификатора продукта в magento2 или magento2.0?
1
A
ответ
0
Попробуйте ввести код. Это может вам помочь.
<?php
$productId = 10;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$currentproduct = $objectManager->create('Magento\Catalog\Model\Product')->load($productId);
?>
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();
Вы не должны использовать диспетчер объектов, кроме вас действительно есть причины для этого. Лучше использовать Injection Dependency, см. Документация: http://devdocs.magento.com/guides/v2.0/extension-dev-guide/depend-inj.html – bpoiss
Вы абсолютно правы. Thanx для драгоценного ответа. –
Как получить идентификатор продукта динамически без статических значений –