Jak uzyskać zapasy każdego produktu z list.phtml w Magento 2?
26
Dodaj poniższy kod do swojego list.phtml
pliku
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$StockState = $objectManager->get('\Magento\CatalogInventory\Api\StockStateInterface');
echo $StockState->getStockQty($product->getId(), $product->getStore()->getWebsiteId());
?>
LUB
<?php
$stockItem = $product->getExtensionAttributes()->getStockItem();
print_r($stockItem->getQty());
?>
Jak wspomniano w niektórych komentarzach, chcesz użyć wstrzykiwania zależności. Nie używaj menedżera obiektów; innymi słowy, nie rób tego, co podają inne odpowiedzi. Poniższą technikę można zastosować w dowolnym miejscu. W przypadku bloków ustaw klasę na klasę w układzie XML, który rozszerza oryginał, i wprowadź odpowiednie informacje.
Wstaw
StockRegistryInterface
interfejs, do którego potrzebujesz dostępu:Aby użyć go gdzieś:
Dla porównania, Magento2 używa tego dokładnego interfejsu w całym katalogu, jeśli chodzi o pobieranie informacji o zapasach produktów.
Pamiętaj, że wszystko w nawiasach kwadratowych wymaga modyfikacji.
źródło
Jak zdobyć zapasy każdego produktu w Magento 2
dla kontrolera lub bloku wtrysku \ Magento \ CatalogInventory \ Api \ StockStateInterface
a następnie użyj funkcji getStockQty, aby uzyskać ilość
jeśli chcesz uzyskać ilość w pliku .phtml, użyj
źródło
Poniższy skrypt pomoże uzyskać ilość zapasów produktu, ilość min i szczegóły zapasów w magento2.
źródło
Jeśli chcesz
$productobj
po zapisaniu produktu od strony zaplecza, abyś mógł łatwo użyćcatalog_product_save_after
zdarzenia.Zakładam, że już wiesz, jak utworzyć moduł
M2
.W tej chwili musisz opracować nowy moduł dla M2
Następnie utwórz ten
events.xml
plik poniżej ścieżkiapp\code\YOUR_NAMESPACE\YOURMODULE\etc\adminhtml
I utwórz plik obserwatora
Productsaveafter.php
poniżej ścieżkiapp \ code \ YOUR_NAMESPACE \ YOURMODULE \ Observer \
źródło