¿Cómo obtener la cantidad de stock de cada producto en list.phtml en Magento 2?
26
Agregue el siguiente código en su list.phtml
archivo
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$StockState = $objectManager->get('\Magento\CatalogInventory\Api\StockStateInterface');
echo $StockState->getStockQty($product->getId(), $product->getStore()->getWebsiteId());
?>
O
<?php
$stockItem = $product->getExtensionAttributes()->getStockItem();
print_r($stockItem->getQty());
?>
Como algunos comentarios han mencionado, desea utilizar la inyección de dependencia. No use el administrador de objetos; en otras palabras, no haga lo que dice ninguna de las otras respuestas. La siguiente técnica se puede aplicar en cualquier lugar. Para los bloques, configure la clase a su clase en el diseño XML, que extiende el original, e inyecte la información correcta.
Inyecte la
StockRegistryInterface
interfaz donde necesita acceso:Para usarlo en alguna parte:
Como referencia, Magento2 utiliza esta interfaz exacta en todo el catálogo cuando se trata de recuperar información de stock del producto.
Tenga en cuenta que cualquier cosa entre corchetes debe modificarse.
fuente
Cómo obtener la cantidad de stock de cada producto en Magento 2
para controlador o inyección de bloque \ Magento \ CatalogInventory \ Api \ StockStateInterface
y luego use la función getStockQty para obtener qty
si desea obtener la cantidad en el archivo .phtml, use
fuente
El siguiente script será útil para obtener la cantidad de stock del producto, la cantidad mínima y los detalles de stock en magento2.
fuente
Si lo desea
$productobj
después de guardar el producto desde el lado del backend para que pueda usar fácilmente elcatalog_product_save_after
evento.Supongo que ya sabes cómo crear un módulo
M2
.En este momento debe desarrollar un nuevo módulo para M2
Luego cree este
events.xml
archivo en la ruta a continuaciónapp\code\YOUR_NAMESPACE\YOURMODULE\etc\adminhtml
Y cree su archivo de observador
Productsaveafter.php
en la siguiente rutaapp \ code \ YOUR_NAMESPACE \ YOURMODULE \ Observer \
fuente