Como obter a quantidade de estoque de cada produto no list.phtml no Magento 2?
26
Adicione o código abaixo no seu list.phtml
arquivo
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$StockState = $objectManager->get('\Magento\CatalogInventory\Api\StockStateInterface');
echo $StockState->getStockQty($product->getId(), $product->getStore()->getWebsiteId());
?>
OU
<?php
$stockItem = $product->getExtensionAttributes()->getStockItem();
print_r($stockItem->getQty());
?>
Como alguns comentários mencionaram, você deseja usar a injeção de dependência. Não use o gerenciador de objetos; em outras palavras, não faça o que qualquer outra resposta afirma. A seguinte técnica pode ser aplicada em qualquer lugar. Para Blocos, defina a classe como sua classe no layout XML, que estende o original e injete as informações corretas.
Injete a
StockRegistryInterface
interface na qual você precisa acessar:Para usá-lo em algum lugar:
Para referência, o Magento2 usa essa interface exata em todo o catálogo quando se trata de recuperar informações de estoque do produto.
Observe que qualquer coisa entre colchetes precisa ser modificada.
fonte
Como obter a quantidade de estoque de cada produto no Magento 2
para controlador ou bloco de injeção \ Magento \ CatalogInventory \ Api \ StockStateInterface
e use a função getStockQty para obter o qty
Se você deseja obter uma quantidade no arquivo .phtml, use
fonte
O script abaixo ajudará a obter a quantidade do estoque do produto, a quantidade mínima e os detalhes do estoque no magento2.
fonte
Se desejar,
$productobj
depois de salvar o produto do lado de back-end para que você possa usar facilmente ocatalog_product_save_after
evento.Estou assumindo que você já sabe como criar um módulo
M2
.Agora você precisa desenvolver um novo módulo para M2
Em seguida, crie este
events.xml
arquivo no caminho abaixoapp\code\YOUR_NAMESPACE\YOURMODULE\etc\adminhtml
E crie seu arquivo observador
Productsaveafter.php
no caminho abaixoapp \ code \ YOUR_NAMESPACE \ YOURMODULE \ Observer \
fonte