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.