Comment obtenir la quantité de stock de chaque produit dans list.phtml dans Magento 2?
26
Ajoutez le code ci-dessous dans votre list.phtml
fichier
<?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());
?>
Comme certains commentaires l'ont mentionné, vous souhaitez utiliser l'injection de dépendance. N'utilisez pas le gestionnaire d'objets; en d'autres termes, ne faites pas ce que disent les autres réponses. La technique suivante peut être appliquée n'importe où. Pour les blocs, définissez la classe sur votre classe dans le format XML de mise en page, qui étend l'original et injectez les bonnes informations.
Injectez l'
StockRegistryInterface
interface où vous avez besoin d'accéder:Pour l'utiliser quelque part:
Pour référence, Magento2 utilise cette interface exacte dans tout le catalogue lorsqu'il s'agit de récupérer des informations sur les stocks de produits.
Notez que tout ce qui est entre crochets doit être modifié.
la source
Comment obtenir la quantité de stock de chaque produit dans Magento 2
pour contrôleur ou injection de bloc \ Magento \ CatalogInventory \ Api \ StockStateInterface
puis utilisez la fonction getStockQty pour obtenir la quantité
si vous voulez obtenir la quantité dans le fichier .phtml, utilisez
la source
Le script ci-dessous sera utile pour obtenir la quantité de stock du produit, la quantité minimale et les détails du stock dans magento2.
la source
Si vous voulez après
$productobj
avoir enregistré le produit du côté backend afin que vous puissiez facilement utiliser l'catalog_product_save_after
événement.Je suppose que vous savez déjà comment créer un module dans
M2
.Pour le moment, vous devez développer un nouveau module pour M2
Ensuite, créez ce
events.xml
fichier dans le chemin ci-dessousapp\code\YOUR_NAMESPACE\YOURMODULE\etc\adminhtml
Et créez votre fichier d'observateur
Productsaveafter.php
dans le chemin ci-dessousapp \ code \ YOUR_NAMESPACE \ YOURMODULE \ Observer \
la source