Es bastante básico, pero no puedo encontrar un ejemplo de trabajo en Stackexchange o google. Quiero cargar un producto de un ayudante o bloque. Ya probé algunas cosas como:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->create('\Magento\Catalog\Api\Data\ProductInterface');
$product->get('<SKU>');
$product->getName();
Esto no devuelve nada. También intenté cargar todos los modelos y API disponibles, pero nada parece funcionar con los SKU.
Use Magento\Catalog\Api\ProductRepositoryInterface to get it in your constructor.
? ¿Qué debo hacer? Muchas graciasEn lugar de usar el administrador de objetos directamente, inyecte ProductFactory:
Entonces úsalo así:
o para hacer una carga completa (lo anterior lo carga usando una colección):
fuente
load()
y las colecciones es la forma "Magento 1", mejor use el repositorio como lo sugiere @RiccardoT.Api/Data/Product
), que es un modelo de Producto convertido en un DTO tonto. Algo a considerar, ya que son bastante diferentes.$product = $this->productFactory->create(); $product->load($product->getIdBySku($sku)); $product->getThumbnailUrl()
para mostrar la imagen en miniatura del producto, pero no funciona.productFactory
Me gusta la respuesta de @ phoenix128-riccardot, pero agregaría una excepción, en caso de que el producto no exista:
No pude agregarlo como comentario (reputación muy baja), lo siento.
fuente
Puedes probar eso
fuente
Prueba esto:
fuente
Uso de la inyección de dependencia (DI)
Aquí está el código de ejemplo para obtener la información del producto por Id. De producto y SKU en Magento 2 mediante inyección de dependencia.
En esto, podríamos necesitar inyectar el objeto de la clase \ Magento \ Catalog \ Model \ ProductRepository en el constructor de la clase de bloque de nuestro módulo y acceder a él desde el archivo de vista (.phtml).
Ruta de archivo de muestra: app / code / YourCompanyName / YourModuleName / Block / YourCustomBlock.php
Ahora, podemos usar las funciones en nuestro archivo de vista (.phtml) de la siguiente manera.
Usando Object Manager
Aquí está el código de ejemplo para obtener la información del producto por ID de producto y SKU en Magento 2 usando el administrador de objetos.
fuente
fuente