Obtener producto por Id | Magento 2

Obtener producto por Id | Magento 2

Magento 2, es la versión actualizada de magento 1.9, trae muchas mejoras, la curva de aprendizaje puede se un poco complicada, pero el resultado es increíble. Empezaré a colocar una serie de mini tutoriales que uso día a día.

El día de hoy veremos como obtener un producto por medió de su ID.

Usando $objectManager

si conoces magento 1, sabras que se puede obtener el producto por medio de un objeto, en magento 2  es necesario instanciar el manejador de objetos, este manejador de objetos es una clase singleton por lo que puede ser llamada en donde sea:


$productId = 100;
$objectManager = MagentoFrameworkAppObjectManager::getInstance();
$product = $objectManager->get('MagentoCatalogModelProduct')->load($productId);

Usando  Factory

Se puede obtener el producto con el siguiente código:


...
protected $_productFactory;  
    ...
    public function __construct(
        ...
        MagentoCatalogModelProductFactory $productFactory
    ) {
        ...
        $this->_productFactory = $productFactory->create();
        ...
    }

    public getProductByid($id)
    {
      return $this->_productFactory->load($id);
    }


// Usar en cualquier parte del módulo o phtml
$product = $this->getProductByid($id);

Existen más formas de obtener un producto por el Id pero estas 2 me parecen las más adecuadas ya que la primera sigue el mismo principio de Magento 1 y la segunda se construye dentro de nuestro módulo personalizado.