É bem básico, mas não consigo encontrar um exemplo de trabalho no Stackexchange ou no google. Quero carregar um produto de um auxiliar ou bloco. Eu já tentei algumas coisas como:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->create('\Magento\Catalog\Api\Data\ProductInterface');
$product->get('<SKU>');
$product->getName();
Isso não retorna nada. Também tentei carregar todos os modelos e APIs disponíveis, mas nada parece funcionar com os SKUs.
Use Magento\Catalog\Api\ProductRepositoryInterface to get it in your constructor.
? O que devo fazer? Muito obrigadoEm vez de usar o gerenciador de objetos diretamente, injete o ProductFactory:
Em seguida, use-o assim:
ou para fazer um carregamento completo (o acima é carregado usando uma coleção):
fonte
load()
e coleções é a maneira "Magento 1", use melhor o repositório como sugerido por @RiccardoT.Api/Data/Product
), que é um modelo de Produto convertido em um DTO simplificado. Algo a considerar, pois são bem diferentes.$product = $this->productFactory->create(); $product->load($product->getIdBySku($sku)); $product->getThumbnailUrl()
para exibir a imagem em miniatura do produto, mas não está funcionando.productFactory
Eu gosto da resposta da @ phoenix128-riccardot, mas adicionaria uma exceção, caso o produto não exista:
Não foi possível adicioná-lo como um comentário (reputação muito baixa), desculpe.
fonte
Você pode tentar isso
fonte
Tente o seguinte:
fonte
Usando Injeção de Dependência (DI)
Aqui está o código de exemplo para obter as informações do produto por ID do produto e SKU no Magento 2 usando injeção de dependência.
Nisso, podemos precisar injetar o objeto da classe \ Magento \ Catalog \ Model \ ProductRepository no construtor da classe de bloco do nosso módulo e acessá-lo no arquivo view (.phtml).
Caminho do arquivo de amostra: app / code / YourCompanyName / YourModuleName / Block / YourCustomBlock.php
Agora, podemos usar as funções em nosso arquivo view (.phtml) da seguinte maneira.
Usando o Gerenciador de Objetos
Aqui está o código de exemplo para obter as informações do produto por ID do produto e SKU no Magento 2 usando o gerenciador de objetos.
fonte
fonte