The stock status visibility is controlled by the «Catalog
» → «Inventory
» → «Stock Options
» → «Display products availability in stock on Storefront
» backend config option:
The config field declaration:
The PHP constant:
The \Magento\CatalogInventory\Model\Configuration::isDisplayProductStockStatus()
method
The \Magento\CatalogInventory\Observer\DisplayProductStatusInfoObserver
:
The observer’s declaration:
The catalog_block_product_status_display
event is triggered by the \Magento\Catalog\Block\Product\AbstractProduct::displayProductStockStatus()
method
The \Magento\Catalog\Block\Product\AbstractProduct::displayProductStockStatus()
method is used by product templates.
The default template:
The template for the Grouped products:
The template for the Bundle products:
See also: Has it any sense to display the stock status for the virtual products?